En Python, para nosotros poder consumir los servicios que AWS nos provee, haremos uso del SDK Boto3.
Este SDK nos ofrece 2 diferentes formas de acceder al API de AWS, esto mediante:
- Cliente: Acceso al servicio a bajo nivel.
- Resource: Acceso al servicio orientado a objetos, alto nivel.
Veamos un par de ejemplos.
Subir archivos al S3.
# Client
import boto3
s3 = boto3.client('s3')
s3.upload_file(<LOCAL_PATH>, <BUCKET_NAME>, <KEY>)
# Resource
import boto3
s3 = boto3.resource('s3')
s3_object = s3.Object(<BUCKET_NAME>, key=<KEY>)
s3_object.upload_file(<LOCAL_PATH>)
Listar todos los objetos en el Bucket.
# Client
import boto3
s3 = boto3.client('s3')
for obj in s3.list_objects(Bucket=<BUCKET_NAME>)['Contents']:
print(obj['Key'])
# Resource
s3 = boto3.resource('s3')
bucket = s3.Bucket(<BUCKET_NAME>)
for obj in bucket.objects.all():
print(obj.key)
Algo que me gustaría mencionar es que, a pesar de lo que uno puede llegar a pensar, el SDK boto3 no sigue los estandares de codificación en Python, por lo que es posible que llegues a toparte con método utilizando la nomenclatura CamelCase, snake_case u otras variates, así como parámetros con mayusculas, minúscula, guiones bajos o sin ellos.
Al comienzo puede ser algo difícil, es por ello que siempre recomiendo apoyarnos de la documentación oficial.
Aun que lo recomendable es siempre utilizar resource, por la gran facilidad y legibilidad que nos ofrece, habrá ocasiones en las cuales utilizar client no será de mucha más utilidad, es por ello nunca debemos descartar una opción u otra. Es cien por ciento valido tener scripts que hagan uso de ambos.
-
check_circle_outlineMódulo 1 | 3 clases
Introducción
expand_more -
check_circle_outlineMódulo 2 | 9 clases
Galería
expand_more -
check_circle_outlineMódulo 3 | 26 clases
Imágenes
expand_more -
check_circle_outlineMódulo 4.-
Examen del curso
expand_more-
done_all
Examen
Examen final del curso
-