すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:PutBucketReplication

最終更新日:Dec 10, 2024

バケットのデータレプリケーションルールを設定します。 Object Storage Service (OSS) には、クロスリージョンレプリケーション (CRR) と同一リージョンレプリケーション (SRR) の2つのデータレプリケーション機能があります。

使用上の注意

データレプリケーション機能を使用すると、作成、上書き、削除など、ソースバケットからターゲットバケットへのオブジェクトに対して実行される操作を自動的に同期できます。 データレプリケーション機能を使用する場合は、次の項目に注意してください。

  • データは非同期的にレプリケートされます。 ソースバケットから宛先バケットにデータを複製するのに必要な時間は、数分から数時間の範囲である。 レプリケーション時間は、データサイズによって異なります。

  • 送信元バケットと送信先バケットの名前を同じにすることはできません。

  • CRRを使用する場合、ソースバケットとターゲットバケットは異なるリージョンに配置する必要があります。 SRRを使用する場合、ソースバケットとターゲットバケットが同じリージョンにある必要があります。

詳細については、「CRRの概要」および「SRRの概要」をご参照ください。

リクエスト構文

POST /?replication&comp=add HTTP/1.1
Date: GMT Date
Content-Length: ContentLength
Content-Type: application/xml
Authorization: SignatureValue
Host: BucketName.oss-cn-hangzhou.aliyuncs.com

<?xml version="1.0" encoding="UTF-8"?>
<ReplicationConfiguration>
   <Rule>     
        <RTC>
            <Status>enabled or disabled</Status>
        </RTC>
        <PrefixSet>
            <Prefix>prefix_1</Prefix>
            <Prefix>prefix_2</Prefix>
        </PrefixSet>
        <Action>ALL or PUT</Action>
        <Destination>
            <Bucket>destbucket</Bucket>
            <Location>oss-cn-hangzhou</Location>
            <TransferType>oss_acc</TransferType>
        </Destination>
        <HistoricalObjectReplication>enabled or disabled</HistoricalObjectReplication>
   </Rule>
</ReplicationConfiguration>

リクエストパラメーター

パラメーター

データ型

必須/任意

説明

ReplicationConfiguration

コンテナー

非該当

データレプリケーション設定を格納するコンテナー。

親ノード: なし

子ノード: ルール

ルール

コンテナー

非該当

データ複製ルールを格納するコンテナー。

親ノード: ReplicationConfiguration

子ノード: 宛先、HistoricalObjectReplication、およびID

RTC

コンテナー

不可

非該当

レプリケーション時間制御 (RTC) 機能のステータスを格納するコンテナー。

親ノード: ルール

子ノード: ステータス

Status

String

任意

enabled

RTC機能を有効にするか無効にするかを指定します。 RTC機能はCRRタスクにのみ使用できます。

有効な値:

  • enabled

  • 無効 (デフォルト)

親ノード: RTC

子ノード: なし

説明

RTC機能を使用できるリージョンの詳細については、「RTC」をご参照ください。

PrefixSet

コンテナー

不可

非該当

プレフィックスを格納するコンテナー。 各データレプリケーションルールには、最大10個のプレフィックスを指定できます。

親ノード: ルール

子ノード: プレフィックス

接頭辞

String

任意

ソース1

レプリケートするオブジェクトを指定するために使用されるプレフィックス。 指定されたプレフィックスを名前に含むオブジェクトのみが、宛先バケットにレプリケートされます。

  • Prefixパラメーターの値の長さは最大1,023文字です。

  • データレプリケーションルールでPrefixパラメーターを指定した場合、OSSはPrefixパラメーターの値に基づいて新しいデータと履歴データを同期します。

親ノード: PrefixSet

子ノード: なし

Action

String

任意

すべて

宛先バケットに同期できる操作。 データレプリケーションルールでアクションを設定すると、指定されたアクションの値に基づいて、新しいデータと履歴データが同期されます。

アクションは、次の1つ以上の操作タイプに設定できます。

有効な値:

  • ALL (デフォルト): PUT、DELETE、およびABORT操作は、宛先バケットに同期されます。

    重要

    このレプリケーションポリシーには、新しくアップロードおよび更新されたオブジェクトのレプリケーションに加えて、データの一貫性を保証する削除のレプリケーションが含まれます。 このポリシーは、複数のユーザーまたはアプリケーションが同じデータセットを共有してアクセスする必要があるシナリオに適用できます。 手動またはライフサイクルポリシーを使用してソースバケットから削除されたオブジェクトも、宛先バケットから削除されます。 オブジェクトは削除後に復元できません。

  • PUT: 書き込み操作は、PutObject、PostObject、AppendObject、CopyObject、PutObjectACL、InitiateMultipartUpload、UploadPart、UploadPartCopy、CompleteMultipartUploadなどの宛先バケットに同期されます。

    重要

    このレプリケーションポリシーが適用されると、ポリシーが有効になった後にアップロードまたは更新されたオブジェクトのみが宛先バケットにレプリケートされ、ソースバケットから削除されたオブジェクトは宛先バケットから削除されません。 このポリシーは、ソースバケットのライフサイクルポリシーによってトリガーされる手動削除または自動削除による宛先バケットのデータ損失を効果的に防止します。

親ノード: ルール

子ノード: なし

目的地

コンテナー

非該当

宛先バケットに関する情報を格納するコンテナー。

親ノード: ルール

子ノード: バケットと場所

バケット

String

destbucket

データがレプリケートされる宛先バケット。

親ノード: 宛先

子ノード: なし

位置

String

oss-cn-hangzhou

宛先バケットが配置されているリージョン。

親ノード: 宛先

子ノード: なし

TransferType

String

oss_acc

データレプリケーション中にデータを転送するために使用されるリンク。

有効な値:

  • internal (default): OSSで使用されるデフォルトのデータ転送リンク。

  • oss_acc: データ送信が加速されるリンク。 CRRルールを作成する場合にのみ、TransferTypeをoss_accに設定できます。

親ノード: 宛先

子ノード: なし

HistoricalObjectReplication

String

任意

disabled

データレプリケーションを有効にする前に、履歴データをソースバケットから宛先バケットにレプリケートするかどうかを指定します。

有効な値:

  • enabled (デフォルト): 履歴データを宛先バケットに複製します。

  • disabled: 履歴データを宛先バケットにレプリケートしません。 ソースバケットのデータレプリケーションが有効になった後にソースバケットにアップロードされたデータのみがレプリケートされます。

親ノード: ルール

子ノード: なし

SyncRole

String

任意

aliyunramrole

データの複製に使用するOSSを許可するロール。 SSE-KMSを使用して、宛先バケットにレプリケートされるオブジェクトを暗号化する場合は、この要素を指定する必要があります。

説明

AliyunOSSFullAccessポリシーをロールにアタッチしていることを確認します。 そうしないと、データの複製に失敗する可能性があります。

SourceSelectionCriteria

コンテナー

不可

非該当

レプリケートするソースオブジェクトをフィルタリングするために使用される他の条件を指定するコンテナー。 SSE-KMSで暗号化されたソースオブジェクトに対してのみフィルタ条件を指定できます。

SseKmsEncryptedObjects

コンテナー

不可

非該当

SSE-KMSを使用して暗号化されたソースオブジェクトをフィルタリングするために使用されるコンテナー。 データレプリケーションルールでSourceSelectionCriteriaパラメーターが指定されている場合は、このパラメーターを指定する必要があります。

Status

String

任意

Enabled

SSE-KMSを使用して暗号化されたオブジェクトを複製するかどうかを指定します。 有効な値:

  • Enabled

  • 無効 (デフォルト)

EncryptionConfiguration

コンテナー

不可

非該当

宛先バケットにレプリケートされたオブジェクトの暗号化設定。 StatusパラメーターがEnabledに設定されている場合、このパラメーターを指定する必要があります。

ReplicaKmsKeyID

String

任意

c4d49f85-ee30-426b-a5ed-95e9139d ****

SSE-KMSで使用される顧客マスターキー (CMK) ID。 StatusパラメーターがEnabledに設定されている場合、このパラメーターを指定する必要があります。

PutBucketReplicationリクエストに含まれる一般的なリクエストヘッダー (HostやDateなど) の詳細については、「一般的なリクエストヘッダー」をご参照ください。

レスポンスヘッダー

PutBucketReplication要求に対する応答には、共通の応答ヘッダーのみが含まれます。 詳細については、「共通HTTPヘッダー」をご参照ください。

  • リクエストの例

POST /?replication&comp=add HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com 
Content-Type: application/xml
Content-Length: 186
Date: Thu, 24 Sep 2015 15:39:12 GMT
Authorization: OSS qn6q**************:77Dv****************
<?xml version="1.0" encoding="UTF-8"?>
<ReplicationConfiguration>
  <Rule>  
     <RTC>
        <Status>enabled</Status>
     </RTC>
     <PrefixSet>
        <Prefix>source1</Prefix>
        <Prefix>video</Prefix>
     </PrefixSet>
     <Action>PUT</Action>
     <Destination>
        <Bucket>destbucket</Bucket>
        <Location>oss-cn-beijing</Location>
        <TransferType>oss_acc</TransferType>
     </Destination>
     <HistoricalObjectReplication>enabled</HistoricalObjectReplication>
      <SyncRole>aliyunramrole</SyncRole>
      <SourceSelectionCriteria>
         <SseKmsEncryptedObjects>
           <Status>Enabled</Status>
         </SseKmsEncryptedObjects>
      </SourceSelectionCriteria>
      <EncryptionConfiguration>
           <ReplicaKmsKeyID>c4d49f85-ee30-426b-a5ed-95e9139d****</ReplicaKmsKeyID>
      </EncryptionConfiguration>     
  </Rule>
</ReplicationConfiguration>
  • 正常に処理された場合のレスポンス例

HTTP/1.1 200 OK
x-oss-request-id: 534B371674E88A4D8906****
Date: Thu, 24 Sep 2015 15:39:12 GMT
Content-Length: 0
Connection: close
Server: AliyunOSS

エラーコード

エラーコード

ステータスコード

説明

InvalidTargetBucket

400 BadRequest

考えられる原因:

  • ソースバケットとターゲットバケットの名前が同じである場合に返されるエラーメッセージ。

  • 宛先バケットが存在しない場合に返されるエラーメッセージ。

  • ソースバケットとターゲットバケットが異なるAlibaba Cloudアカウントによって所有されている場合に返されるエラーメッセージ。

InvalidTargetLocation

400 BadRequest

宛先バケットのリージョンがリクエストのXML本文で指定されたリージョンと異なる場合に返されるエラーメッセージ。

BucketReplicationAlreadyExist

400 BadRequest

ソースバケットとターゲットバケットの間にデータレプリケーションルールがすでに存在する場合に返されるエラーメッセージ。

ソースバケットとターゲットバケットの間にデータレプリケーションルールを設定するには、既存のルールを削除します。

BadReplicationLocation

400 BadRequest

宛先バケットのリージョンが無効な場合に返されるエラーメッセージ。

GetBucketReplicationLocation操作を呼び出して、宛先バケットを配置できる有効なリージョンを照会できます。

NoReplicationLocation

400 BadRequest

ソースバケットのリージョンに、CRRを設定できる一致するリージョンがない場合に返されるエラーメッセージ。

CRRを設定できる一致するリージョンの詳細については、「リージョンとエンドポイント」をご参照ください。

TooManyReplicationRules

400 BadRequest

リクエストで複数のデータレプリケーションルールが設定されている場合に返されるエラーメッセージ。

1回のリクエストで設定できるデータレプリケーションルールは1つだけです。

TooManyIncomingReplication

400 BadRequest

バケットにデータレプリケーションルールが設定されてい100場合に返されるエラーメッセージ。 使用しなくなったルールを削除してから、もう一度お試しください。

1つのバケットに最大100個のデータレプリケーションルールを設定できます。 バケットに100以上のデータレプリケーションルールを設定する必要がある場合は、 チケットを起票してサポートセンターにお問い合わせくださいしてサポートセンターにお問い合わせください。

TooManyOutgoingReplication

400 BadRequest

バケットにデータレプリケーションルールが設定されてい100場合に返されるエラーメッセージ。 使用しなくなったルールを削除してから、もう一度お試しください。

1つのバケットに最大100個のデータレプリケーションルールを設定できます。 バケットに100以上のデータレプリケーションルールを設定する必要がある場合は、 チケットを起票してサポートセンターにお問い合わせくださいしてサポートセンターにお問い合わせください。

MissingArgument

400 BadRequest

伝送リンクが指定されていない場合に返されるエラーメッセージ。

InvalidArgument

400 BadRequest

指定された伝送リンクがサポートされていない場合に返されるエラーメッセージ。

ReplicationLocationNotSupportRtc

400 BadRequest

このリージョンでRTC機能が使用できない場合に返されるエラーメッセージ。 RTC機能を使用できるリージョンの詳細については、「概要」をご参照ください。