Trabalhar com o Amazon S3 - AWS SDK for Java 2.x

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Trabalhar com o Amazon S3

Esta seção apresenta exemplos de como programar com o Amazon Simple Storage Service (S3) usando o AWS SDK for Java 2.x.

Os exemplos a seguir incluem somente o código necessário para demonstrar cada técnica. O código de exemplo completo está disponível em GitHub. A partir daí, você pode fazer download de um único arquivo de origem ou clonar o repositório de maneira local para obter todos os exemplos para compilação e execução.

nota

A partir da versão 2.18.x, o AWS SDK for Java 2.x usa endereçamento no estilo de host virtual ao incluir uma substituição de endpoint. Isso se aplica desde que o nome do bucket seja um rótulo DNS válido.

Chame o método forcePathStyle com true no seu construtor de clientes para forçar o cliente a usar o endereçamento no estilo de caminho para os buckets.

O exemplo a seguir mostra um cliente de serviço configurado com uma substituição de endpoint e usando o endereçamento no estilo de caminho.

S3Client client = S3Client.builder() .region(Region.US_WEST_2) .endpointOverride(URI.create("https://s3.us-west-2.amazonaws.com")) .forcePathStyle(true) .build();

Usar pontos de acesso ou pontos de acesso multirregionais

Depois que pontos de acesso Amazon S3 ou pontos de acesso multirregionais forem configurados, você poderá chamar métodos de objeto, como putObject e getObject, e fornecer o identificador do ponto de acesso em vez de um nome de bucket.

Por exemplo, se o identificador ARN de um ponto de acesso for arn:aws:s3:us-west-2:123456789012:accesspoint/test, você poderá usar o seguinte trecho de código para chamar o método putObject.

Path path = Paths.get(URI.create("file:///temp/file.txt")); s3Client.putObject(builder -> builder .key("myKey") .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint/test") , path);

No lugar da string ARN, você também pode usar o alias em estilo de bucket do ponto de acesso para o parâmetro bucket.

Para usar o ponto de acesso multirregional, substitua o parâmetro bucket pelo ARN do ponto de acesso multirregional que tenha o formato a seguir.

arn:aws:s3::account-id:accesspoint/MultiRegionAccessPoint_alias

Adicione a seguinte dependência do Maven para trabalhar com pontos de acesso multirregionais usando o SDK for Java. Pesquise a versão mais recente no Maven Central.

<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>auth-crt</artifactId> <version>VERSION</version> </dependency>