Acceso entre regiones de 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.

Acceso entre regiones de Amazon S3

Cuando trabajas con buckets de Amazon Simple Storage Service (Amazon S3), normalmente sabes cuál es Región de AWS el bucket. La región con la que trabaja se determina al crear el cliente S3.

Sin embargo, a veces necesitará trabajar con un bucket específico, pero no sabe si se encuentra en la misma región que está configurada para el cliente S3.

En lugar de realizar más llamadas para determinar la región del depósito, puede utilizarla SDK para permitir el acceso a los depósitos de S3 en distintas regiones.

Configuración

El soporte para el acceso entre regiones pasó a estar disponible con la SDK versión 2.20.111 de. Use esta versión o una posterior en su archivo de compilación de Maven para la dependencia s3, como se muestra en el siguiente fragmento.

<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3</artifactId> <version>2.27.21</version> </dependency>

Después, cuando cree su cliente S3, habilite el acceso entre regiones, como se muestra en el fragmento. El acceso no está habilitado de forma predeterminada.

S3AsyncClient client = S3AsyncClient.builder() .crossRegionAccessEnabled(true) .build();

Cómo SDK proporciona acceso entre regiones

Cuando haces referencia a un depósito existente en una solicitud, por ejemplo, cuando utilizas el putObject método, SDK se inicia una solicitud a la región configurada para el cliente.

Si el bucket no existe en esa región específica, la respuesta al error incluye la región real en la que reside el bucket. A SDK continuación, utiliza la región correcta en una segunda solicitud.

Para optimizar las solicitudes futuras al mismo depósito, almacena en SDK caché este mapeo de regiones en el cliente.

Consideraciones

Cuando habilites el acceso al depósito entre regiones, ten en cuenta que la primera API llamada puede provocar un aumento de la latencia si el depósito no está en la región configurada por el cliente. Sin embargo, las llamadas posteriores se benefician de la información regional almacenada en caché, lo que mejora el rendimiento.

Al habilitar el acceso entre regiones, el acceso al bucket no se ve afectado. El usuario debe estar autorizado a acceder al bucket en cualquier región en la que resida.