Blog
AWS SDK para Python (Boto3) – S3
- Publicado por: Jhonny
- Categoría: Blog
Integrar Amazon S3 en nuestra plataforma
Almacenar contenido multimedia de nuestros usuarios
S3
Es el servicio de almacenamiento en la nube de AWS, es muy utilizado para almacenar toda clase de contenido multimedia gracias a su capacidad de almacenamiento, velocidad de respuesta a una solicitud y su bajo costo.
Configuración
Debemos iniciar sesion en nuestra cuenta de AWS e ir al servicio “Simple Storage Service”. Allí veremos nuestros “buckets” que es donde se almacenará nuestro contenido, podemos crearlos y configurar sus permisos, si quieres que todo el mundo lo vea, si solo tú, configurar el caché, entre muchas cosas más.
Almacenar contenido multimedia en S3
Luego de crear nuestro bucket, ahora debemos crear un script para subir nuestro contenido multimedia a S3 utilizando la función put_object. Dicha función requiere de ciertos parámetros, entre ellos están:
- ACL: Con este parámetro indicaremos los permisos de nuestro contenido multimedia, los más comunes son “private” y “public-read”.
- Body: Viene siendo nuestro contenido en bytes.
- Bucket: Es el nombre del bucket que creamos en la configuración de S3.
- Key: Es la llave ( o nombre) del contenido que subiremos. Debemos tomar en cuenta que si intentamos utilizar la misma llave para dos archivos diferentes, el último archivo que subimos sobreescribirá al primero.
import boto3 client = boto3.client('s3', aws_access_key_id="TU_ACCESS_KEY_ID", aws_secret_access_key="TU_AWS_SECRET_ACCESS_KEY", region_name="TU_REGION_NAME") nombre_archivo = "unipython.jpg" ruta_archivo = "/path/to/%s" % nombre_archivo with open(ruta_archivo, 'rb') as archivo: client.put_object( ACL='public-read', Body=archivo, Bucket='unipython-storage', Key=nombre_archivo )
Con esas simples líneas de código, podemos almacenar vídeos e imágenes en nuestro Bucket y consultarlas en nuestra plataforma sin ningun tipo de inconveniente.
Felicidades! Has completado la clase 2 del Curso de AWS SDK para Python (Boto3). Sigue avanzando!