Acesso entre regiões para 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á.

Acesso entre regiões para o Amazon S3

Quando você trabalha com os buckets do Amazon Simple Storage Service (Amazon S3), você geralmente conhece a Região da AWS do bucket. A região com a qual você trabalha é determinada quando você cria o cliente do S3.

No entanto, às vezes você pode precisar trabalhar com um bucket específico, mas não sabe se ele está localizado na mesma região definida para o cliente do S3.

Em vez de fazer mais chamadas para determinar a região do bucket, você pode usar o SDK para permitir o acesso aos buckets do S3 entre diferentes regiões.

Configuração

O suporte para acesso entre regiões foi disponibilizado com a versão 2.20.111 do SDK. Use essa versão ou uma versão posterior em seu arquivo de compilação do Maven para a dependência do s3, conforme mostrado no trecho a seguir.

<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3</artifactId> <version>2.20.111</version> </dependency>

Em seguida, ao criar seu cliente do S3, habilite o acesso entre regiões conforme mostrado no trecho. O acesso não está habilitado por padrão.

S3AsyncClient client = S3AsyncClient.builder() .crossRegionAccessEnabled(true) .build();

Como o SDK fornece acesso entre regiões

Quando você faz referência a um bucket existente em uma solicitação, como ao usar o método putObject, o SDK inicia uma solicitação para a região configurada para o cliente.

Se o bucket não existir nessa região específica, a resposta de erro incluirá a região real em que o bucket reside. Em seguida, o SDK usa a região correta em uma segunda solicitação:

Para otimizar futuras solicitações para o mesmo bucket, o SDK armazena em cache no cliente esse mapeamento de região.

Considerações

Ao habilitar o acesso ao bucket entre regiões, saiba que a primeira chamada de API pode resultar em maior latência se o bucket não estiver na região configurada do cliente. No entanto, as chamadas subsequentes se beneficiam das informações da região em cache, resultando em melhor desempenho.

Quando você ativa o acesso entre regiões, o acesso ao bucket não é afetado. O usuário deve estar autorizado a acessar o bucket em qualquer região em que ele resida.