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 reproducció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 sólo 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 las réplicas de modificación de réplica de Amazon S3, las réplicas de sincronización pueden informar estados distintos de REPLICA. Si los cambios de metadatos están en el proceso de replicación, el x-amz-replication-status encabezado devolverá PENDING. La sincronización de modificación de réplica no puede replicar los metadatos que devolverá el encabezado FAILED. Si los metadatos se replican correctamente, las réplicas devolverán 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 inventario de Amazon S3. 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 inventario de Amazon S3, consulte Inventario de Amazon S3.

Puede buscar el estado de reproducció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 en la AWS Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

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

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

    Se abrirá la página Detalles del objeto.

  4. En Información general sobre la administración de objetos, puede ver el estado de 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 reproducció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);