¿Es posible enumerar todos los depósitos S3 utilizando un recurso boto3, es decir, boto3.resource('s3') ?
Sé que es posible hacerlo usando un cliente de servicio de bajo nivel:
import boto3 boto3.client('s3').list_buckets()Sin embargo, en un mundo ideal podemos operar en el nivel más alto de recursos. ¿Existe algún método que nos permita hacerlo y, si no, por qué?
Puede usar s3.buckets.all() :
s3 = boto3.resource('s3') for bucket in s3.buckets.all(): print(bucket.name)Usando la lista de comprensión:
s3 = boto3.resource('s3') buckets = [bucket.name for bucket in s3.buckets.all()] print(buckets)Obtenga .buckets.pages() del recurso S3 y luego recorra las páginas para tomar los cubos:
import boto3 buckets_iter = boto3.resource('s3').buckets.pages() buckets = [] for bucket in buckets_iter: buckets += bucket print(buckets)Espero que esto ayude.