

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
<a name="examples-s3"></a>

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 do Java v2 do Amazon S3](java_s3_code_examples.md) apresentados na seção *Exemplos de código* deste guia.

## Clientes S3 no AWS SDK for Java 2.x
<a name="s3-clients"></a>

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


**Diferentes tipos de clientes do Amazon S3**  

| Cliente do S3 | Descrição breve | Quando usar | Limitation/drawback | 
| --- | --- | --- | --- | 
| **AWS CRT-based Cliente S3**<br />Interface: [S3AsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html)<br />Construtor: [S3CrtAsyncClientBuilder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html) | +  Fornece as mesmas operações de API assíncronas do cliente assíncrono Java-based S3, mas com maior desempenho. <br />+  Requer a dependência `aws-crt`. <br />+  Permite transferências paralelas automáticas (de várias partes). Consulte [Use um cliente S3 de alto desempenho: cliente S3 baseado em AWS CRT](crt-based-s3-client.md). |  +  A aplicação transfere objetos grandes (maiores de 8 MB) e você deseja maximizar o desempenho. <br />+  Você quer fazer upload de objetos com tamanho de conteúdo desconhecido. <br />+  Você quer um pool de conexões e um balanceamento de carga de DNS aprimorados, o que melhora o throughput e o desempenho. <br />+  Você quer maior confiabilidade de transferência no caso de uma falha na rede. As peças individuais com falha são testadas novamente sem reiniciar a transferência desde o início.   |  +  Suporta [menos configurações](crt-based-s3-client.md#crt-based-s3-client-limitations) do que os clientes Java-based S3. <br />+  Requer uma dependência adicional.   | 
| **Java-based *Cliente assíncrono S3 com várias partes habilitadas***<br />Interface: [S3AsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html)<br />Construtor: [S3AsyncClientBuilder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClientBuilder.html) | +  Fornece uma API assíncrona. <br />+  Permite transferências paralelas automáticas (de várias partes) quando você ativa várias partes no momento da criação. Consulte [Configurar o cliente assíncrono do S3 baseado em Java para usar transferências paralelas](s3-async-client-multipart.md). |  +  A aplicação transfere objetos grandes e você deseja melhorar o desempenho. <br />+  você quer fazer upload de objetos com tamanho de conteúdo desconhecido. <br />+  Você quer maior confiabilidade de transferência no caso de uma falha na rede. As peças individuais com falha são testadas novamente sem reiniciar a transferência desde o início. <br />+  Você precisa de [opções de configuração](crt-based-s3-client.md#crt-based-s3-client-limitations) que não estão disponíveis com o cliente AWS CRT-based S3.   | Menos desempenho do que o cliente AWS CRT-based S3. | 
| **Java-based *Cliente assíncrono S3 sem multipartes habilitado***<br />Interface: [S3AsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html)<br />Construtor: [S3AsyncClientBuilder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClientBuilder.html) |  +  Fornece uma API assíncrona.   |  +  Você está transferindo objetos com menos de 8 MB. <br />+  Você quer uma API assíncrona.   | Sem otimização do desempenho. | 
| **Java-based Cliente de sincronização S3**<br />Interface: [S3Client](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3Client.html)<br />Construtor: [S3ClientBuilder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3ClientBuilder.html) |  +  Fornece uma API síncrona.   |  +  Você está transferindo objetos com menos de 8 MB. <br />+  Você quer uma API síncrona.   | Sem otimização do 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#virtual-hosted-style-access) endpoint. Isso se aplica desde que o nome do bucket seja um rótulo DNS válido.   
Chame o método [`forcePathStyle`](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3BaseClientBuilder.html#forcePathStyle(java.lang.Boolean) 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();
```

**Topics**
+ [Clientes do S3 no SDK](#s3-clients)
+ [Fazer upload de fluxos para o S3](best-practices-s3-uploads.md)
+ [Pré-assinado URLs](examples-s3-presign.md)
+ [Acesso entre regiões](s3-cross-region.md)
+ [Proteção da integridade de dados com somas de verificação](s3-checksums.md)
+ [Usar um cliente do S3 de alta performance](crt-based-s3-client.md)
+ [Configuração de suporte de transferência paralela](s3-async-client-multipart.md)
+ [Transferir arquivos e diretórios](transfer-manager.md)
+ [Notificações de eventos do S3](examples-s3-event-notifications.md)