Quiero obtener una lista de todos los objetos (o un máximo de 1000) ubicados en foo-bucket/foo-dir, por ejemplo
Cubo: foo-cubo
Directorio: foo-dir
Veo que la API de Bucket.objects boto3 utiliza el filtrado (Bucket.objects.filter)
Me pregunto qué hace internamente. ¿Enumera todos los objetos y filtros? ¿O AWS proporciona una API que toma argumentos de filtro y devuelve los resultados filtrados?
La API de S3 admite un prefix en la solicitud ListObjects que filtrará las respuestas para incluir solo aquellos objetos cuyo nombre coincida con el prefix . Asi que:
import boto3 s3 = boto3.resource('s3') bucket = s3.Bucket('mybucket') for obj in bucket.objects.filter(Prefix='foo/bar/fie/baz/'): # do something with obj here Solo devolvería objetos cuyo nombre comience con el prefijo foo/bar/fie/baz/ .