Trabajo con Amazon S3 - AWS SDK for Java 2.x

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

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 presentados en la sección Ejemplos de código de esta guía.

Clientes S3 en el AWS SDK for Java 2.x

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 Limitación o inconveniente

AWS Cliente S3 basado en CRT

Interfaz: S3 AsyncClient

Constructor: S3 CrtAsyncClientBuilder

  • Proporciona las mismas operaciones de API asincrónicas que el cliente asincrónico de S3 basado en Java, pero con mayor rendimiento.

  • Requiere la dependencia de aws-crt.

  • Admite transferencias paralelas automáticas (multiparte).

Consulte Utilice un cliente S3 de alto rendimiento: cliente S3 basado en AWS CRT.

  • La aplicación transfiere objetos grandes (más de 8 MB) y desea maximizar el rendimiento.

  • Desea cargar objetos con una longitud de contenido desconocida.

  • Desea mejorar la agrupación de conexiones y el equilibrio de carga de DNS, lo que mejora el rendimiento.

  • 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.

Cliente asincrónico S3 basado en Java con multiparte habilitada

Interfaz: S3 AsyncClient

Constructor: S3 AsyncClientBuilder

  • Proporciona una API asincrónica.

  • 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.

  • La aplicación transfiere objetos grandes y desea maximizar el rendimiento.

  • Desea cargar objetos con una longitud de contenido desconocida.

  • 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.

  • Necesita opciones de configuración que no estén disponibles en el cliente S3 AWS basado en CRT.

Tiene menos rendimiento que el cliente S3 basado en AWS CRT.

Cliente asincrónico de S3 basado en Java sin multiparte habilitada

Interfaz: S3 AsyncClient

Constructor: S3 AsyncClientBuilder

  • Proporciona una API asincrónica.

  • Transfiere objetos con menos de 8 MB.

  • Desea una API asincrónica.

Sin optimización del rendimiento

Cliente asincrónico de S3 basado en Java

Interfaz: S3Client

Constructor: S3 ClientBuilder

  • Proporciona una API asincrónica.

  • Transfiere objetos con menos de 8 MB.

  • 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. Esto se aplica siempre que el nombre del bucket sea una etiqueta DNS válida.

Llame al método forcePathStyle 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();