メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

オブジェクトのレプリケーションのステータスを確認する方法

クロスリージョンレプリケーションでは、レプリケーションを設定するレプリケート元バケットと、Amazon S3 がオブジェクトをレプリケートするレプリケート先バケットを使用します。 これらのバケットのオブジェクト(GET オブジェクト)またはオブジェクトメタデータ(HEAD オブジェクト)をリクエストすると、Amazon S3 はレスポンスとして以下のように x-amz-replication-status ヘッダーを返します。

  • レプリケート元バケットのオブジェクトをリクエストする場合 — リクエストしたオブジェクトがレプリケーション対象であると、Amazon S3 は x-amz-replication-status ヘッダーを返します。

    たとえば、レプリケーション設定でオブジェクトプレフィックス TaxDocs を指定して、キー名のプレフィックスが TaxDocs のオブジェクトをレプリケートするように Amazon S3 にリクエストしているとします。 その場合、たとえば TaxDocs/document1.pdf などのキー名のプレフィックスを付けてアップロードしたオブジェクトはすべてレプリケーション対象です。 このキー名のプレフィックスが付いたオブジェクトのリクエストでは、Amazon S3 が次の値のうち 1 つのオブジェクトのレプリケーション状態の x-amz-replication-status ヘッダーを返します。PENDINGCOMPLETED、またはFAILED

  • レプリケート先バケットのオブジェクトをリクエストする場合 — リクエストされたオブジェクトが Amazon S3 によって作成されたレプリカであるときに、REPLICA 値の x-amz-replication-status Amazon S3 ヘッダーを返します。

コンソールでは、AWS CLI またはプログラムで AWS SDK を使用して、オブジェクトのレプリケーションステータスを確認できます。

  • コンソールでオブジェクトを選択し、[Properties] を選択して、レプリケーションステータスを含むオブジェクトのプロパティを表示します。

    注記

    また、S3 のインベントリ機能を使用して、バケットのすべてのオブジェクトのレプリケーション状態を取得することもできます。この場合、S3 は設定された送信先バケットに .csv ファイルを配信します。S3 インベントリの詳細については、「 Amazon S3 インベントリ」を参照してください。

  • 以下のように head-object AWS CLI コマンドを使用して、オブジェクトメタデータ情報を取得できます。

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

    このコマンドは、以下のレスポンス例に示すように、ReplicationStatus を含むオブジェクトメタデータ情報を返します。

    Copy
    { "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":{ } }
  • AWS SDK を使用してオブジェクトのレプリケーションステータスを取得できます。以下に AWS SDK for Java および AWS SDK for .NET を使用したコード例を示します。

    • AWS SDK for Java

      Copy
      GetObjectMetadataRequest metadataRequest = new GetObjectMetadataRequest(bucketName, bucketName); metadataRequest.setKey(key); ObjectMetadata metadata = s3Client.getObjectMetadata(metadataRequest); System.out.println("Replication Status : " + metadata.getRawMetadataValue(Headers.OBJECT_REPLICATION_STATUS));
    • AWS SDK for .NET

      Copy
      GetObjectMetadataRequest getmetadataRequest = new GetObjectMetadataRequest { BucketName = sourceBucket, Key = objectKey }; GetObjectMetadataResponse getmetadataResponse = client.GetObjectMetadata(getmetadataRequest); Console.WriteLine("Object replication status: {0}", getmetadataResponse.ReplicationStatus);

注記

レプリケーションが有効になっているレプリケート元バケットからオブジェクトを削除する場合は、削除する前にオブジェクトのレプリケーションステータスをチェックして、そのオブジェクトがレプリケートされていることを確認します。

レプリケート元バケットでライフサイクル設定が有効である場合、Amazon S3 は、オブジェクトステータスが COMPLETED または FAILED と表示するまですべてのライフサイクルアクションを保留します。

クロスリージョンレプリケーション

このページの内容: