Obtención de información del estado de replicación - Amazon Simple Storage Service

Obtención de información del estado de replicación

El estado de replicación puede ayudarle a determinar el estado actual de un objeto que se replica. El estado de replicación de un objeto de origen devolverá PENDING, COMPLETED, o FAILED. Se devolverá el estado de replicación de una réplica REPLICA.

Información general sobre el estado de replicación

En la replicación, tiene un bucket de origen en el que configurar la replicación y el destino donde Amazon S3 replica objetos. Cuando solicita un objeto (utilizando el objeto GET) o los metadatos de un objeto (utilizando el objeto HEAD) de estos buckets, Amazon S3 devuelve el encabezado x-amz-replication-status en la respuesta, como se indica a continuación:

  • Al solicitar un objeto del bucket de origen, Amazon S3 devuelve el encabezado x-amz-replication-status si el objeto de su solicitud cumple los requisitos para la replicación.

    Por ejemplo, supongamos que en la configuración de replicación, usted especifica el prefijo del objeto TaxDocs en la configuración de replicación para indicar a Amazon S3 que replique objetos con el prefijo de nombre de clave TaxDocs. Cualquier objeto que cargue que tenga este prefijo de nombre de clave, por ejemplo, TaxDocs/document1.pdf se replicará. Para solicitudes de objetos con este prefijo de nombre de clave, Amazon S3 devuelve el encabezado x-amz-replication-status con uno de los siguientes valores para el estado de replicación del objeto: PENDING, COMPLETED o FAILED.

    nota

    Si la replicación de objetos genera un error después de cargar un objeto, no puede volver a intentar la replicación. Deberá cargar de nuevo el objeto. Los objetos pasan a un estado FAILED para problemas como la falta de permisos de rol de replicación, permisos de AWS KMS o permisos de bucket. En el caso de los errores temporales, como si un bucket o región no están disponibles, el estado de replicación no pasará a FAILED, sino que permanecerá PENDING. Después de que el recurso vuelva a estar en línea, S3 reanudará la replicación de esos objetos.

  • Cuando solicita un objeto desde un bucket de destino, si el objeto de la solicitud es una réplica creada por Amazon S3, este devuelve el x-amz-replication-status encabezado con el valor REPLICA.

nota

Antes de eliminar un objeto del bucket de origen que tiene activada la replicación, revise el estado de replicación del objeto para asegurarse de que el objeto haya sido replicado.

Si la configuración del ciclo de vida está habilitada en el bucket de origen, Amazon S3 suspende las acciones del ciclo de vida hasta que marque el estado de los objetos como COMPLETED o bien FAILED.

Estado de replicación si se replica en varios buckets de destino

Cuando se replican objetos en varios buckets de destino, el x-amz-replication-status encabezado actúa de manera diferente. El encabezado del objeto de origen solo devuelve un valor de COMPLETED cuando la replicación se realiza correctamente en todos los destinos. El encabezado permanece en el PENDING valor hasta que se complete la replicación para todos los destinos. Si uno o más destinos fallan la replicación, el encabezado devuelve FAILED.

Estado de replicación si la sincronización de modificación de réplica de Amazon S3 está habilitada

Cuando las reglas de replicación habilitan la sincronización de las réplicas de modificación de Amazon S3, las réplicas pueden informar estados distintos de REPLICA. Si los cambios de metadatos están en proceso de replicación, el encabezado de x-amz-replication-status devuelve PENDING. Si la sincronización de modificaciones de réplica no permite replicar metadatos, el encabezado devuelve FAILED. Si los metadatos se replican correctamente, las réplicas devuelven el encabezado REPLICA.

Hallazgo del estado de replicación

Para obtener el estado de replicación de los objetos de un bucket, puede utilizar la herramienta de Amazon S3 Inventory. Amazon S3 envía un archivo CSV al bucket de destino que especifique en la configuración del inventario. También puede usar Amazon Athena para consultar el estado de replicación en el informe de inventario. Para obtener más información acerca del Amazon S3 Inventory, consulte Inventario de Amazon S3.

Puede buscar el estado de replicación de un objeto utilizando la consola, la AWS Command Line Interface (AWS CLI) o el SDK de AWS.

En la consola de S3, puede ver el estado de replicación de un objeto en la página Detalles del objeto en Información general sobre la administración de objetos.

  1. Inicie sesión AWS Management Console Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. En la lista de Buckets, seleccione el nombre del bucket.

  3. En la lista Objects (Objetos), elija el nombre del objeto.

  4. En la pestaña Properties (Propiedades), busque Object management overview (Descripción de administración de objetos), aquí podrá ver el estado de la replicación.

Utilice el head-object comando para recuperar metadatos de objeto, como se indica a continuación.

aws s3api head-object --bucket source-bucket --key object-key --version-id object-version-id

El comando devuelve los metadatos del objeto, incluido el ReplicationStatus como se muestra en el siguiente ejemplo de respuesta.

{ "AcceptRanges":"bytes", "ContentType":"image/jpeg", "LastModified":"Mon, 23 Mar 2015 21:02:29 GMT", "ContentLength":3191, "ReplicationStatus":"COMPLETED", "VersionId":"jfnW.HIMOfYiD_9rGbSkmroXsFj3fqZ.", "ETag":"\"6805f2cfc46c0f04559748bb039d69ae\"", "Metadata":{ } }

Los siguientes fragmentos de código obtienen el estado de replicación con AWS SDK for Java y AWS SDK for .NET, respectivamente.

Java
GetObjectMetadataRequest metadataRequest = new GetObjectMetadataRequest(bucketName, key); ObjectMetadata metadata = s3Client.getObjectMetadata(metadataRequest); System.out.println("Replication Status : " + metadata.getRawMetadataValue(Headers.OBJECT_REPLICATION_STATUS));
.NET
GetObjectMetadataRequest getmetadataRequest = new GetObjectMetadataRequest { BucketName = sourceBucket, Key = objectKey }; GetObjectMetadataResponse getmetadataResponse = client.GetObjectMetadata(getmetadataRequest); Console.WriteLine("Object replication status: {0}", getmetadataResponse.ReplicationStatus);