

# Listar os objetos em um bucket do Amazon S3 on Outposts
<a name="S3OutpostsListObjects"></a>

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](s3-outposts-access-points-alias.md).

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](S3OutpostsIAM.md#S3OutpostsARN).

**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 Console de gerenciamento da AWS 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.

## Uso do AWS CLI
<a name="S3OutpostsListObjectsCLI"></a>

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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/list-objects-v2.html) 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](S3OutpostsIAM.md#S3OutpostsARN).

## Usar o AWS SDK para Java
<a name="S3OutpostsListObjectsJava"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html), 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();
        }
    }
}
```