Obtention d'informations sur le statut de la réplication - Amazon Simple Storage Service

Obtention d'informations sur le statut de la réplication

Le statut de réplication peut vous aider à déterminer l'état actuel d'un objet répliqué. Le statut de réplication d'un objet source renvoie soit PENDING, COMPLETED ou FAILED. Le statut de réplication d'un réplica renvoie REPLICA.

Vue d'ensemble des statuts de réplication

Dans le cadre de la réplication, vous disposez d'un compartiment source dans lequel vous configurez la réplication et d'un compartiment de destination dans lequel Amazon S3 réplique les objets. Lorsque vous demandez un objet (à l'aide de l'objet GET) ou des métadonnées d'objet (à l'aide de l'objet HEAD) à partir de ces compartiments, Amazon S3 renvoie l'en-tête x-amz-replication-status dans la réponse :

  • Lorsque vous demandez un objet depuis le compartiment source, Amazon S3 renvoie l'en-tête x-amz-replication-status si l'objet demandé peut être répliqué.

    Par exemple, imaginons que vous spécifiez le préfixe d'objet TaxDocs dans votre configuration de réplication pour indiquer à Amazon S3 de ne répliquer que les objets dotés du préfixe de nom de clé TaxDocs. Tous les objets que vous chargez ayant ce préfixe de nom de clé (par exemple, TaxDocs/document1.pdf) seront répliqués. Pour les demandes d'objet avec ce préfixe de nom de clé, Amazon S3 renvoie l'en-tête x-amz-replication-status avec l'une des valeurs suivantes pour le statut de réplication de l'objet : PENDING, COMPLETED ou FAILED.

    Note

    Si la réplication d'objet échoue après avoir chargé un objet, vous ne pouvez pas relancer la réplication. Vous devez recharger l'objet. Les objets passent à l'état FAILED en cas de problèmes, par exemple si les autorisations de rôle de réplication, les autorisations AWS KMS ou les autorisations de compartiment sont manquantes. Pour les échecs temporaires, par exemple si un compartiment ou une Région n'est pas disponible, le statut de réplication ne passera pas à FAILED, mais restera PENDING. Une fois la ressource remise en ligne, S3 reprendra la réplication de ces objets.

  • Lorsque vous demandez un objet à partir du compartiment de destination, si l'objet demandé est un réplica créé par Amazon S3, Amazon S3 renvoie l'en-tête x-amz-replication-status avec la valeur REPLICA.

Note

Avant de supprimer un objet d'un compartiment source pour lequel la réplication a été activée, contrôlez le statut de réplication de l'objet pour vérifier qu'il a été répliqué.

Si la configuration du cycle de vie est activée sur le compartiment source, Amazon S3 interrompt les actions de cycle de vie tant que les statuts des objets ne sont pas marqués comme COMPLETED ou FAILED.

Statut de la réplication en cas de réplication vers plusieurs compartiments de destination

Lorsque vous répliquez des objets vers plusieurs compartiments de destination, l'en-tête x-amz-replication-status agit différemment. L'en-tête de l'objet source renvoie uniquement la valeur COMPLETED lorsque la réplication a réussi vers toutes les destinations. L'en-tête reste à la valeur PENDING jusqu'à ce que la réplication soit terminée pour toutes les destinations. Si la réplication échoue vers une ou plusieurs destinations, l'en-tête renvoie FAILED.

Statut de la réplication si la synchronisation des modifications de réplica Simple Storage Service (Amazon S3) est activée

Lorsque vos règles de réplication activent la synchronisation des modifications de réplica Simple Storage Service (Amazon S3), les statuts des réplicas peuvent être différents de REPLICA. Si des modifications de métadonnées sont en cours de réplication, l'en-tête x-amz-replication-status renvoie PENDING. Si la synchronisation des modifications du réplica ne parvient pas à répliquer les métadonnées, l'en-tête renvoie FAILED. Si les métadonnées sont répliquées correctement, les réplicas retournent l'en-tête REPLICA.

Recherche du statut de réplication

Pour obtenir le statut de réplication des objets dans un compartiment, utilisez l'outil d'inventaire Amazon S3. Amazon S3 envoie un fichier CSV au compartiment de destination que vous spécifiez dans la configuration d'inventaire. Vous pouvez également utiliser Amazon Athena pour interroger le statut de réplication dans le rapport d'inventaire. Pour de plus amples informations sur l'inventaire Amazon S3, veuillez consulter Inventaire Amazon S3.

Vous pouvez également trouver le statut de réplication d'un objet à l'aide de la console, d'AWS Command Line Interface (AWS CLI) ou du kit SDK AWS.

Dans la console S3, vous pouvez afficher le statut de réplication d'un objet sur la page Détails de l'objet sous la Vue d'ensemble de la gestion des objets.

  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans la liste Compartiments, sélectionnez le nom de votre compartiment.

  3. Dans la liste Objets , sélectionnez le nom de l'objet.

    La page Détails de l'objet s'ouvre.

  4. Sous Vue d'ensemble de la gestion des objets, vous pouvez voir le statut de réplication.

Utilisez la commande head-object comme suit pour récupérer les métadonnées de l'objet.

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

La commande renvoie les métadonnées de l'objet, y compris ReplicationStatus comme illustré dans l'exemple de réponse suivant.

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

Les fragments de code suivants obtiennent le statut de réplication respectivement avec les kits AWS SDK for Java et AWS SDK for .NET.

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);