Listar os objetos em um bucket do Amazon S3 on Outposts - Amazon S3 on Outposts

Listar os objetos em um bucket do Amazon S3 on Outposts

Objetos são as entidades fundamentais armazenadas no Amazon S3 on Outposts. Cada objeto está contido em um bucket. É necessário usar pontos de acesso para acessar qualquer objeto em um bucket do Outpost. Ao especificar o bucket para operações de objeto, use o nome do recurso da Amazon (ARN) do ponto de acesso ou o alias do ponto de acesso. Para obter mais informações sobre alias de pontos de acesso, consulte Usar um alias em estilo de bucket para seu ponto de acesso de bucket do S3 no Outposts.

O exemplo a seguir mostra o formato do ARN para pontos de acesso do S3 no Outposts, que inclui o código Região da AWS para a região em que o Outpost está hospedado, o ID da Conta da AWS, o ID do Outpost e o nome do ponto de acesso:

arn:aws:s3-outposts:region:account-id:outpost/outpost-id/accesspoint/accesspoint-name

Para obter mais informações sobre o S3 on Outposts, consulte ARNs de recurso para S3 no Outposts.

nota

Com o Amazon S3 on Outposts, os dados do objeto são sempre armazenados no Outpost. Quando a AWS instala um rack do Outpost, seus dados permanecem no local do Outpost para atender aos requisitos de residência de dados. Seus objetos nunca saem do Outpost e não estão em uma Região da AWS. Como o AWS Management Console está hospedado na região, você não pode usá-lo para fazer upload de objetos no Outpost nem os gerenciar. No entanto, você pode usar a API REST, a AWS Command Line Interface (AWS CLI) e os SDKs para fazer upload de objetos e gerenciá-los por meio de seus pontos de acesso.

Os exemplos a seguir mostram como listar os objetos em um bucket do S3 on Outposts usando a AWS CLI e o AWS SDK para Java.

O exemplo a seguir lista os objetos em um bucket do S3 on Outposts (s3-outposts:ListObjectsV2) usando a AWS CLI. Para usar esse comando, substitua cada user input placeholder por suas próprias informações. Para obter mais informações sobre esse comando, consulte list-objects-v2 na Referência da AWS CLI.

aws s3api list-objects-v2 --bucket arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-outposts-access-point
nota

Ao usar essa ação com o Amazon S3 on Outposts por meio de AWS SDKs, forneça o ARN do ponto de acesso do Outposts no lugar do nome do bucket, no seguinte formato: arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-Outposts-Access-Point. Para obter mais informações sobre o S3 on Outposts, consulte ARNs de recurso para S3 no Outposts.

O exemplo do S3 on Outposts a seguir lista objetos em um bucket usando o SDK para Java. Para usar esse exemplo, substitua cada user input placeholder por suas próprias informações.

Importante

Este exemplo usa ListObjectsV2, que é a última revisão da operação ListObjects da API. Recomendamos que você use essa operação de API revisada para o desenvolvimento de aplicações. Para compatibilidade com versões anteriores, o Amazon S3 continua a oferecer suporte à versão anterior desta operação de API.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.ListObjectsV2Request; import com.amazonaws.services.s3.model.ListObjectsV2Result; import com.amazonaws.services.s3.model.S3ObjectSummary; public class ListObjectsV2 { public static void main(String[] args) { String accessPointArn = "*** access point ARN ***"; try { // This code expects that you have AWS credentials set up per: // https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .enableUseArnRegion() .build(); System.out.println("Listing objects"); // maxKeys is set to 2 to demonstrate the use of // ListObjectsV2Result.getNextContinuationToken() ListObjectsV2Request req = new ListObjectsV2Request().withBucketName(accessPointArn).withMaxKeys(2); ListObjectsV2Result result; do { result = s3Client.listObjectsV2(req); for (S3ObjectSummary objectSummary : result.getObjectSummaries()) { System.out.printf(" - %s (size: %d)\n", objectSummary.getKey(), objectSummary.getSize()); } // If there are more than maxKeys keys in the bucket, get a continuation token // and list the next objects. String token = result.getNextContinuationToken(); System.out.println("Next Continuation Token: " + token); req.setContinuationToken(token); } while (result.isTruncated()); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }