Obtenção de informações sobre o status da replicação - Amazon Simple Storage Service

Obtenção de informações sobre o status da replicação

O status da replicação pode ajudá-lo a determinar o estado atual de um objeto que está sendo replicado. O status de replicação de um objeto de origem retornará PENDINGCOMPLETED, ou FAILED. O status de replicação de uma réplica retornará REPLICA.

Visão geral do status da replicação

Na replicação, você tem um bucket de origem em que configura a replicação e um bucket de destino onde o Amazon S3 replica objetos. Ao solicitar um objeto (usando o objeto GET) ou metadados de objeto (usando o objeto HEAD) nesses buckets, o Amazon S3 retornará o cabeçalho x-amz-replication-status na resposta da seguinte maneira:

  • Ao solicitar um objeto no bucket de origem, o Amazon S3 retornará o cabeçalho x-amz-replication-status se o objeto em sua solicitação for qualificado para replicação.

    Por exemplo, suponha que, em sua configuração de replicação, você especifique o prefixo de objeto TaxDocs para dizer ao Amazon S3 para replicar somente objetos com o prefixo de nome de chave TaxDocs. Todos os objetos dos quais você fizer upload e tiverem esse prefixo de nome de chave, por exemplo, TaxDocs/document1.pdf, serão replicados. Para qualquer solicitação de objeto com esse prefixo de nome de chave, o Amazon S3 retorna o cabeçalho x-amz-replication-status com um dos seguintes valores para o status de replicação de objeto: PENDING, COMPLETED ou FAILED.

    nota

    Se a replicação do objeto falhar depois de você fazer upload de um objeto, não será possível tentar novamente a replicação. É preciso fazer upload do objeto novamente. Os objetos mudam para um estado FAILED em caso de problemas como a ausência das permissões da função de replicação, do AWS KMS ou do bucket. Para falhas temporárias, por exemplo, se um bucket ou região não estiver disponível, o status da replicação não fará a transição para FAILED, mas permanecerá PENDING. Depois que o recurso estiver online novamente,o S3 retomará a replicação desses objetos.

  • Ao solicitar um objeto no bucket de destino, se o objeto da sua solicitação for uma réplica criada pelo Amazon S3, o Amazon S3 retornará o cabeçalho x-amz-replication-status com valor REPLICA.

nota

Antes de excluir um objeto de um bucket de origem com a replicação habilitada, verifique o status de replicação dele para garantir que o objeto tenha sido replicado.

Se a configuração de ciclo de vida estiver habilitada no bucket de origem, o Amazon S3 suspenderá as ações de ciclo de vida até que o status dos objetos seja COMPLETED ou FAILED.

Status da replicação, se replicar para vários intervalos de destino

Quando você replica objetos para vários intervalos de destino, o cabeçalhox-amz-replication-status age de forma diferente. O cabeçalho do objeto de origem retorna apenas um valor de COMPLETED quando a replicação é bem-sucedida para todos os destinos. O cabeçalho permanece no valor PENDING até que a replicação tenha sido concluída para todos os destinos. Se um ou mais destinos falharem na replicação, o cabeçalho retornará FAILED.

Status da replicação se a sincronização de modificação de réplica do Amazon S3 estiver ativada

Quando suas regras de replicação habilitam a sincronização de modificação de réplica do Simple Storage Service (Amazon S3), as réplicas podem informar um status diferente de REPLICA. Se alterações de metadados estiverem no processo de replicação, o cabeçalho do x-amz-replication-status retorna PENDING. Se a sincronização de modificação de réplica falhar ao replicar metadados, o cabeçalho retornará FAILED. Se os metadados forem replicados corretamente, as réplicas retornarão o cabeçalho REPLICA.

Localização do status de replicação

Para obter o status de replicação dos objetos em um bucket, você pode usar a ferramenta Amazon S3 Inventory. O Amazon S3 envia um arquivo CSV para o bucket de destino especificado na configuração de inventário. Você também pode usar o Amazon Athena para consultar o status da replicação no relatório de inventário. Para obter mais informações sobre o Amazon S3 Inventory, consulte Inventário do Amazon S3.

Você também pode encontrar o status de replicação do objeto usando o console, a AWS Command Line Interface (AWS CLI) ou o AWS SDK.

No console do S3, você pode exibir o status da replicação de um objeto na página Details (Detalhes) do objeto na Object management overview (Visão geral de gerenciamento de objeto).

  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. Na lista Buckets (Buckets), escolha o nome do bucket.

  3. Na lista Objects (Objetos), escolha o nome do objeto.

  4. Na guia Properties (Propriedades), encontre Object management overview (Visão geral do gerenciamento de objetos) para conferir o Replication status (Status de replicação).

Use o comando head-object para recuperar metadados do objeto, como segue.

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

O comando retorna os metadados do objeto, inclusive ReplicationStatus, conforme exibido no exemplo de resposta a seguir.

{ "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":{ } }

Os fragmentos de código a seguir obtêm status de replicação com o AWS SDK for Java e o 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);