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 sobre cómo 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 de ejemplos de código de esta guía.

Los clientes de S3 en el AWS SDK for Java 2.x

AWS SDK for Java 2.x Ofrece 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 S3 Descripción breve Cuándo se debe usar Limitación o inconveniente

AWS CRTcliente S3 basado en

Interfaz: S3 AsyncClient

Constructor: S3 CrtAsyncClientBuilder

  • Proporciona las mismas API operaciones asíncronas que el cliente asíncrono S3 basado en Java, pero con un mayor rendimiento.

  • aws-crtRequiere la dependencia.

  • Soporta transferencias paralelas automáticas (multiparte).

Consulte Utilice un cliente S3 eficiente: cliente S3 AWS CRT basado en.

  • Su aplicación transfiere objetos grandes (> 8 MB) y usted desea maximizar el rendimiento.

  • Desea cargar objetos con una longitud de contenido desconocida.

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

  • Desea mejorar la fiabilidad de las transferencias en caso de que se produzca un fallo en la red. Las piezas individuales que hayan fallado se vuelven a intentar sin reiniciar la transferencia desde el principio.

Cliente asíncrono S3 basado en Java con múltiples partes habilitadas

Interfaz: S3 AsyncClient

Constructor: S3 AsyncClientBuilder

  • Proporciona un sistema API asíncrono.

  • Admite transferencias paralelas automáticas (multiparte) cuando se habilita la multiparte en el momento de la creación.

Consulte Configure el cliente asíncrono S3 basado en Java para usar transferencias paralelas.

  • Su aplicación transfiere objetos grandes y usted desea mejorar el rendimiento.

  • desea cargar un objeto 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 piezas individuales que hayan fallado se vuelven a intentar sin reiniciar la transferencia desde el principio.

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

Tiene menos rendimiento que el cliente S3 AWS CRT basado.

Cliente asíncrono S3 basado en Java sin activación multiparte

Interfaz: S3 AsyncClient

Constructor: S3 AsyncClientBuilder

  • Proporciona un sistema API asíncrono.

  • Está transfiriendo objetos que pesan menos de 8 MB.

  • Quieres una API asíncrona.

Sin optimización del rendimiento.

Cliente de sincronización S3 basado en Java

Interfaz: S3Client

Constructor: S3 ClientBuilder

  • Proporciona un sincrónico. API

  • Está transfiriendo objetos que pesan menos de 8 MB.

  • Quieres un sincrónicoAPI.

Sin optimización del rendimiento.

nota

A partir de la versión 2.18.x, AWS SDK for Java 2.x utiliza un direccionamiento tipo alojamiento virtual al incluir una anulación de punto final. Esto se aplica siempre que el nombre del depósito sea una etiqueta válida. DNS

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();