

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Trabajo con Amazon S3
<a name="examples-s3"></a>

En esta sección se proporciona información básica para trabajar con Amazon S3 mediante AWS SDK for Java 2.x. Esta sección complementa los [ejemplos de Java v2 de Amazon S3](java_s3_code_examples.md) presentados en la sección *Ejemplos de código* de esta guía.

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

 AWS SDK for Java 2.x Proporciona diferentes tipos de clientes S3. La siguiente tabla muestra las diferencias y puede ayudarle a decidir qué es lo mejor para sus casos de uso.


**Diferentes tipos de clientes de Amazon S3**  

| Cliente de S3 | Descripción breve | Cuándo se debe usar | Limitation/drawback | 
| --- | --- | --- | --- | 
| **AWS CRT-based Cliente S3**<br />Interfaz: [S3AsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html)<br />Constructor: [S3CrtAsyncClientBuilder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html) | +  Proporciona las mismas operaciones de API asíncronas que el cliente asíncrono de Java-based S3, pero con un mayor rendimiento. <br />+  Requiere la dependencia de `aws-crt`. <br />+  Admite transferencias paralelas automáticas (multiparte). Consulte [Utilice un cliente S3 de alto rendimiento: cliente S3 basado en AWS CRT](crt-based-s3-client.md). |  +  La aplicación transfiere objetos grandes (más de 8 MB) y desea maximizar el rendimiento. <br />+  Desea cargar objetos con una longitud de contenido desconocida. <br />+  Desea mejorar la agrupación de conexiones y el equilibrio de carga de DNS, lo que mejora el rendimiento. <br />+  Desea mejorar la fiabilidad de las transferencias en caso de que se produzca un fallo en la red. Las partes individuales fallidas se reintentan sin reiniciar la transferencia desde el principio.   |  +  Admite [menos ajustes de configuración que](crt-based-s3-client.md#crt-based-s3-client-limitations) los clientes de S3. Java-based  <br />+  Requiere una dependencia adicional.   | 
| **Java-based Cliente asíncrono S3 con varias partes *habilitadas***<br />Interfaz: [S3AsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html)<br />Constructor: [S3AsyncClientBuilder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClientBuilder.html) | +  Proporciona una API asincrónica. <br />+  Admite transferencias paralelas automáticas (multiparte) cuando se habilita la multiparte en el momento de la creación. Consulte [Configuración del cliente asincrónico S3 basado en Java para usar transferencias paralelas](s3-async-client-multipart.md). |  +  La aplicación transfiere objetos grandes y desea maximizar el rendimiento. <br />+  Desea cargar objetos con una longitud de contenido desconocida. <br />+  Desea mejorar la fiabilidad de las transferencias en caso de que se produzca un fallo en la red. Las partes individuales fallidas se reintentan sin reiniciar la transferencia desde el principio. <br />+  Necesita [opciones de configuración](crt-based-s3-client.md#crt-based-s3-client-limitations) que no estén disponibles en el cliente AWS CRT-based S3.   | Tiene menos rendimiento que el cliente AWS CRT-based S3. | 
| **Java-based *Cliente asíncrono S3 sin activación multiparte***<br />Interfaz: [S3AsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html)<br />Constructor: [S3AsyncClientBuilder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClientBuilder.html) |  +  Proporciona una API asincrónica.   |  +  Transfiere objetos con menos de 8 MB. <br />+  Desea una API asincrónica.   | Sin optimización del rendimiento | 
| **Java-based Cliente de sincronización S3**<br />Interfaz: [S3Client](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3Client.html)<br />Constructor: [S3ClientBuilder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3ClientBuilder.html) |  +  Proporciona una API asincrónica.   |  +  Transfiere objetos con menos de 8 MB. <br />+  Desea una API asincrónica.   | Sin optimización del rendimiento | 

**nota**  
A partir de la versión 2.18.x, AWS SDK for Java 2.x utiliza un [direccionamiento de tipo alojamiento virtual al incluir una anulación de punto final](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#virtual-hosted-style-access). Esto se aplica siempre que el nombre del bucket sea una etiqueta DNS válida.   
Llame al método [`forcePathStyle`](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3BaseClientBuilder.html#forcePathStyle(java.lang.Boolean) con `true` en su constructor de clientes para forzar al cliente a utilizar el direccionamiento estilo ruta para los buckets.  
En el siguiente ejemplo se muestra un cliente de servicio configurado con una anulación de punto de conexión y utilizando direccionamiento estilo ruta.  

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

**Topics**
+ [Clientes de S3 en el SDK](#s3-clients)
+ [Carga de flujos en S3](best-practices-s3-uploads.md)
+ [Pre-signed direcciones URL](examples-s3-presign.md)
+ [Acceso entre regiones](s3-cross-region.md)
+ [Protección de la integridad de los datos con sumas de comprobación](s3-checksums.md)
+ [Utilizar un cliente S3 de alto rendimiento](crt-based-s3-client.md)
+ [Configuración de la compatibilidad con la transferencia paralela](s3-async-client-multipart.md)
+ [Transferir archivos y directorios](transfer-manager.md)
+ [Notificaciones de eventos de S3](examples-s3-event-notifications.md)