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 trabaja con buckets de Amazon Simple Storage Service (Amazon S3), normalmente sabe cuál es la Región de AWS del 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 hacer más llamadas para determinar la región del bucket, puede usar el SDK para habilitar el acceso a los buckets de S3 en distintas regiones.

Configuración

El acceso entre regiones comenzó a estar disponible con la versión 2.20.111 del SDK. 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.20.111</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 proporciona el SDK acceso entre regiones

Al hacer referencia a un bucket existente en una solicitud, como cuando utiliza el método putObject, el SDK 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 continuación, el SDK utiliza la región correcta en una segunda solicitud.

Para optimizar las futuras solicitudes al mismo bucket, el SDK almacena en caché esta asignación de regiones en el cliente.

Consideraciones

Cuando active el acceso a los buckets entre regiones, tenga en cuenta que la primera llamada a la API puede provocar un aumento de la latencia si el bucket no se encuentra en la región configurada del 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.