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 fornece informações básicas para trabalhar com o Amazon S3 usando o. AWS SDK for Java 2.x Esta seção complementa os exemplos de Java v2 do Amazon S3 apresentados na seção Exemplos de código deste guia.

Clientes S3 no AWS SDK for Java 2.x

AWS SDK for Java 2.x Ele fornece diferentes tipos de clientes S3. A tabela a seguir mostra as diferenças e pode ajudá-lo a decidir o que é melhor para seus casos de uso.

Diferentes tipos de clientes do Amazon S3
Cliente S3 Descrição breve Quando usar Limitação/desvantagem

AWS CRTcliente S3 baseado

Interface: S3 AsyncClient

Construtor: S3 CrtAsyncClientBuilder

  • Fornece as mesmas API operações assíncronas do cliente assíncrono S3 baseado em Java, mas com maior desempenho.

  • Requer a aws-crt dependência.

  • Suporta transferências paralelas automáticas (multipartes).

Consulte Use um cliente S3 de alto desempenho: cliente S3 AWS CRT baseado em.

  • Seu aplicativo transfere objetos grandes (> 8 MB) e você deseja maximizar o desempenho.

  • Você quer fazer upload de objetos com tamanho de conteúdo desconhecido.

  • Você quer um pool de conexões e um balanceamento de DNS carga aprimorados, o que melhora a taxa de transferência e o desempenho.

  • Você quer maior confiabilidade de transferência no caso de uma falha na rede. Peças individuais com defeito são testadas novamente sem reiniciar a transferência desde o início.

  • Suporta menos configurações do que os clientes S3 baseados em Java.

  • Requer uma dependência adicional.

Cliente assíncrono S3 baseado em Java com várias partes habilitadas

Interface: S3 AsyncClient

Construtor: S3 AsyncClientBuilder

  • Fornece um API assíncrono.

  • Suporta transferências paralelas automáticas (várias partes) quando você ativa várias partes no momento da criação.

Consulte Configurar o cliente assíncrono S3 baseado em Java para usar transferências paralelas.

  • Seu aplicativo transfere objetos grandes e você deseja melhorar o desempenho.

  • você deseja fazer upload de um objeto com tamanho de conteúdo desconhecido.

  • Você quer maior confiabilidade de transferência no caso de uma falha na rede. Peças individuais com defeito são testadas novamente sem reiniciar a transferência desde o início.

  • Você precisa de opções de configuração que não estão disponíveis com o cliente S3 AWS CRT baseado.

Menos desempenho do que o cliente S3 AWS CRT baseado.

Cliente assíncrono S3 baseado em Java sem habilitação de várias partes

Interface: S3 AsyncClient

Construtor: S3 AsyncClientBuilder

  • Fornece um API assíncrono.

  • Você está transferindo objetos com menos de 8 MB.

  • Você quer um API assíncrono.

Sem otimização de desempenho.

Cliente de sincronização S3 baseado em Java

Interface: S3Client

Construtor: S3 ClientBuilder

  • Fornece um síncrono. API

  • Você está transferindo objetos com menos de 8 MB.

  • Você quer um síncrono. API

Sem otimização de desempenho.

nota

A partir da versão 2.18.x, o AWS SDK for Java 2.x usa endereçamento no estilo hospedado virtual ao incluir uma substituição de endpoint. Isso se aplica desde que o nome do bucket seja um DNS rótulo 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();