Listar buckets de uso geral do Amazon S3 - Amazon Simple Storage Service

Listar buckets de uso geral do Amazon S3

Para retornar uma lista de buckets de uso geral que você possui, é possível usar ListBuckets. Você pode listar buckets usando o console do Amazon S3, a AWS Command Line Interface ou os AWS SDKs. Para solicitações ListBuckets que usam a AWS CLI, os AWS SDKs e a API REST do Amazon S3, as Contas da AWS que usam a cota de serviço padrão para buckets (dez mil buckets) permitem solicitações paginadas e não paginadas. Independentemente de quantos buckets existam na conta, você pode criar tamanhos de página entre um e dez mil buckets para listar todos os seus buckets. Para solicitações paginadas, as solicitações ListBuckets retornam os nomes dos buckets e as Regiões da AWS correspondentes de cada bucket. Os exemplos da AWS Command Line Interface e do AWS SDK a seguir mostram como usar a paginação em sua solicitação ListBuckets. Observe que alguns AWS SDKs ajudam na paginação.

Permissões

Para listar todos os buckets de uso geral, você precisa ter a permissão s3:ListAllMyBuckets. Caso encontre um erro HTTP Access Denied (403 Forbidden), consulte Solucionar erros de acesso negado (403 Forbidden) no Amazon S3.

Importante

É altamente recomendável usar somente de solicitações ListBuckets paginadas. Solicitações ListBuckets não paginadas só são aceitas para Contas da AWS definidas com a cota de bucket de uso geral padrão de dez mil. Se você tiver uma cota de bucket de uso geral aprovada acima de dez mil, deverá enviar solicitações ListBuckets paginadas para listar os buckets da conta. Todas as solicitações ListBuckets não paginadas serão rejeitadas para Contas da AWS com uma cota de bucket de uso geral maior que dez mil.

  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. No painel de navegação à esquerda, escolha Buckets de uso geral.

  3. Na guia Buckets de uso geral, você pode ver uma lista dos buckets de uso geral.

  4. Para encontrar buckets por nome, insira um nome de bucket no campo Localizar buckets por nome.

Para usar a AWS CLI a fim de gerar uma lista de buckets de uso geral, você pode usar os comandos ls ou list-buckets. Os exemplos a seguir mostram como criar uma solicitação list-buckets paginada e uma solicitação ls não paginada. Para usar esses exemplos, substitua os espaços reservados de entrada do usuário.

exemplo – Listar todos os buckets em sua conta usando ls (não paginado)

O comando de exemplo a seguir mostra todos os buckets de uso geral em sua conta em uma única chamada não paginada. Essa chamada retorna uma lista de todos os buckets em sua conta (até dez mil resultados):

$ aws s3 ls

Para obter mais informações e exemplos, consulte Listar buckets e objetos.

exemplo – Listar todos os buckets em sua conta usando ls (paginado)

O comando de exemplo a seguir faz uma ou mais chamadas paginadas para listar todos os buckets de uso geral em sua conta, retornando cem buckets por página:

$ aws s3 ls --page-size 100

Para obter mais informações e exemplos, consulte Listar buckets e objetos.

exemplo – Listar todos os buckets em sua conta (paginado)

O exemplo a seguir fornece um comando list-buckets paginado para listar todos os buckets de uso geral em sua conta. As opções --max-items e --page-size limitam o número de buckets listados a cem por página.

$ aws s3api list-buckets / --max-items 100 / --page-size 100

Se o número de saída de itens (--max-items) for menor do que o número total de itens retornados pelas chamadas de API subjacentes, a saída incluirá um token de continuação, especificado pelo argumento starting-token que pode ser passado para um comando subsequente a fim de recuperar o próximo conjunto de itens. O exemplo a seguir mostra como usar o valor starting-token retornado pelo exemplo anterior. Você pode especificar o starting-code para recuperar os próximos cem buckets.

$ aws s3api list-buckets / --max-items 100 / --page-size 100 / --starting-token eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ==

exemplo – Listar todos os buckets em uma Região da AWS (paginado)

O exemplo de comando a seguir usa o parâmetro --bucket-region para listar até cem buckets em uma conta que está na região us-east-2. Solicitações feitas para um endpoint regional diferente do valor especificado no parâmetro --bucket-region não são permitidas. Por exemplo, se quiser limitar a resposta aos buckets em us-east-2, você deverá fazer a solicitação a um endpoint em us-east-2.

$ aws s3api list-buckets / --region us-east-2 / --max-items 100 / --page-size 100 / --bucket-region us-east-2

exemplo – Listar todos os buckets que começam com um prefixo de nome de bucket específico (paginado)

O exemplo de comando a seguir lista até cem buckets que têm um nome que começa com o prefixo amzn-s3-demo-bucket.

$ aws s3api list-buckets / --max-items 100 / --page-size 100 / --prefix amzn-s3-demo-bucket

Os exemplos a seguir mostram como listar buckets de uso geral usando os AWS SDKs

SDK for Python
exemplo – Solicitação ListBuckets (paginado)
import boto3 s3 = boto3.client('s3') response = s3.list_buckets(MaxBuckets=100)
exemplo – Resposta a ListBuckets (paginado)
import boto3 s3 = boto3.client('s3') response = s3.list_buckets(MaxBuckets=1,ContinuationToken="eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ==EXAMPLE--")
SDK for Java
import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.Bucket; import com.amazonaws.services.s3.model.ListBucketsPaginatedRequest; import com.amazonaws.services.s3.model.ListBucketsPaginatedResult; import java.util.List; public class ListBuckets { public static void main(String[] args) { final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); ListBucketsPaginatedRequest listBucketsPaginatedRequest = new ListBucketsPaginatedRequest().withMaxBuckets(1); ListBucketsPaginatedResult listBucketsPaginatedResult = s3.listBuckets(listBucketsPaginatedRequest); List<Bucket> buckets = listBucketsPaginatedResult.getBuckets(); System.out.println("Your Amazon S3 buckets are:"); for (Bucket b : buckets) { System.out.println("* " + b.getName() + " region: " + b.getRegion()); } System.out.println("continuation token: " + listBucketsPaginatedResult.getContinuationToken()); } }
SDK for Java 2.x
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.Bucket; import software.amazon.awssdk.services.s3.model.ListBucketsRequest; import software.amazon.awssdk.services.s3.model.ListBucketsResponse; import java.util.List; public class ListBuckets { public static void main(String[] args) { // Create an S3 client S3Client s3 = S3Client.builder() .region(Region.US_EAST_1) // Replace with your preferred region .credentialsProvider(DefaultCredentialsProvider.create()) .build(); try { // List buckets ListBucketsRequest listBucketsRequest = ListBucketsRequest.builder() .maxBuckets(10) .build(); ListBucketsResponse listBucketsResponse = s3.listBuckets(listBucketsRequest); List<Bucket> buckets = listBucketsResponse.buckets(); // Print bucket names System.out.println("Your Amazon S3 buckets are:"); for (Bucket bucket : buckets) { System.out.println(bucket.name()); System.out.println(bucket.getBucketRegion()); } } catch (Exception e) { System.err.println("Error listing buckets: " + e.getMessage()); e.printStackTrace(); } finally { // Close the S3 client to release resources s3.close(); } } }
SDK for Go
package main import ( "context" "fmt" "log" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/service/s3" ) func main() { cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("us-east-2")) if err != nil { log.Fatal(err) } client := s3.NewFromConfig(cfg) maxBuckets := 1000 resp, err := client.ListBuckets(context.TODO(), management portals3.ListBucketsInput{MaxBuckets: aws.Int32(int32(maxBuckets))}) if err != nil { log.Fatal(err) } fmt.Println("S3 Buckets:") for _, bucket := range resp.Buckets { fmt.Println("- Name:", *bucket.Name) fmt.Println("-BucketRegion", *bucket.BucketRegion) } fmt.Println(resp.ContinuationToken == nil) fmt.Println(resp.Prefix == nil) }