PutBucketReplication 操作を使用して、バケットのデータレプリケーションルールを指定します。OSS はクロスリージョンレプリケーション (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>
<SyncRole>aliyunramrole</SyncRole>
</Rule>
</ReplicationConfiguration>リクエスト要素
名前 | タイプ | 必須 | 例 | 説明 |
ReplicationConfiguration | コンテナー | はい | 該当なし | バケットのデータレプリケーションルールのコンテナー。 親ノード: なし 子ノード: Rule |
Rule | コンテナー | はい | 該当なし | データレプリケーションルールのコンテナー。 親ノード: ReplicationConfiguration 子ノード: Destination、HistoricalObjectReplication、ID など |
ID | 文字列 | いいえ | first | データレプリケーションルールの一意の ID。 親ノード: Rule 子ノード: なし |
PrefixSet | コンテナー | いいえ | 該当なし | プレフィックスのコンテナー。各データレプリケーションルールで最大 10 個のプレフィックスを指定できます。 親ノード: Rule 子ノード: Prefix |
Prefix | 文字列 | いいえ | source1 | レプリケーションするオブジェクトのプレフィックス。プレフィックスに一致するオブジェクトのみが宛先バケットにレプリケーションされます。
親ノード: PrefixSet 子ノード: なし |
Action | 文字列 | いいえ | ALL | 宛先バケットにレプリケーションする操作。操作を構成すると、新しく書き込まれたデータと既存データの両方が指定された操作に基づいてレプリケーションされます。 次の有効な値のうち 1 つ以上を指定できます。 有効値:
親ノード: Rule 子ノード: なし |
Destination | コンテナー | はい | 該当なし | 宛先バケットに関する情報のコンテナー。 親ノード: Rule 子ノード: Bucket と Location |
Bucket | 文字列 | はい | destbucket | データレプリケーションの宛先バケット。 親ノード: Destination 子ノード: なし |
Location | 文字列 | はい | oss-cn-hangzhou | 宛先バケットが配置されているリージョン。 親ノード: Destination 子ノード: なし |
TransferType | 文字列 | はい | oss_acc | データレプリケーションに使用されるデータ伝送リンク。 有効値:
親ノード: Destination 子ノード: なし |
HistoricalObjectReplication | 文字列 | いいえ | disabled | 既存データをレプリケーションするかどうかを指定します。これにより、データレプリケーションが有効になる前のソースバケット内のデータが宛先バケットにレプリケーションされるかどうかが決まります。 有効値:
親ノード: Rule 子ノード: なし |
SyncRole | 文字列 | はい | aliyunramrole | OSS がデータレプリケーションに使用することを承認する RAM ロール。データレプリケーションは、同じアカウント内または異なるアカウント間で実行できます。どちらのシナリオでも、RAM ロールに必要なレプリケーション権限を付与する必要があります。そうしないと、レプリケーションタスクを完了できません。詳細については、「データレプリケーションの権限」をご参照ください。 親ノード: Rule 子ノード: なし |
SourceSelectionCriteria | コンテナー | いいえ | 該当なし | レプリケーションするソースオブジェクトを識別する他のフィルター条件のコンテナー。現在、OSS は SSE-KMS で暗号化されたソースオブジェクトのフィルター条件の指定のみをサポートしています。 親ノード: Rule 子ノード: SseKmsEncryptedObjects |
SseKmsEncryptedObjects | コンテナー | いいえ | 該当なし | SSE-KMS で暗号化されたオブジェクトをフィルタリングするためのコンテナー。データレプリケーションルールで SourceSelectionCriteria を指定する場合は、この要素を指定する必要があります。 親ノード: SourceSelectionCriteria 子ノード: Status |
Status | 文字列 | いいえ | Enabled | OSS が SSE-KMS 暗号化で作成されたオブジェクトをレプリケーションするかどうかを指定します。有効な値:
親ノード: SseKmsEncryptedObjects 子ノード: なし |
EncryptionConfiguration | コンテナー | いいえ | 該当なし | 宛先オブジェクトの暗号化構成。Status を Enabled に設定した場合は、この要素を指定する必要があります。 親ノード: Rule 子ノード: ReplicaKmsKeyID |
ReplicaKmsKeyID | 文字列 | いいえ | c4d49f85-ee30-426b-a5ed-95e9139d**** | SSE-KMS キーの ID。Status を Enabled に設定した場合は、この要素を指定する必要があります。 親ノード: EncryptionConfiguration 子ノード: なし |
RTC | コンテナー | いいえ | N/A | レプリケーション時間制御 (RTC) 機能のステータス。 親ノード: Rule 子ノード: Status |
Status | 文字列 | いいえ | Enabled | RTC 機能を有効または無効にします。RTC 機能はクロスリージョンレプリケーションに対してのみ構成できます。 有効な値:
親ノード: RTC 子ノード: なし 説明 RTC 機能をサポートするリージョンの詳細については、「RTC をサポートするリージョン」をご参照ください。 |
この操作には、Host や Date などの共通のリクエストヘッダーも必要です。詳細については、「共通リクエストヘッダー」をご参照ください。
レスポンスヘッダー
この操作は、共通のレスポンスヘッダーのみを返します。詳細については、「共通レスポンスヘッダー」をご参照ください。
例
リクエスト例
POST /?replication&comp=add HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Content-Type: application/xml
Content-Length: 186
Date: Thu, 17 Apr 2025 15:39:12 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<?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 2025 15:39:12 GMT
Content-Length: 0
Connection: close
Server: AliyunOSSSDK
この操作に対応する各言語の SDK は次のとおりです。
ossutil コマンドラインツール
この操作に対応する ossutil コマンドの詳細については、「put-bucket-replication」をご参照ください。
エラーコード
エラーコード | HTTP ステータスコード | 説明 |
InvalidTargetBucket | 400 Bad Request | このエラーは、次の理由で発生する可能性があります。
|
InvalidTargetLocation | 400 Bad Request | 宛先バケットの場所がリクエスト XML で指定された場所と異なります。 |
BucketReplicationAlreadyExist | 400 Bad Request | ソースバケットから宛先バケットへのレプリケーション関係がすでに存在します。 新しいデータレプリケーションルールを構成するには、まず既存のルールを削除します。 |
BadReplicationLocation | 400 Bad Request | 指定された宛先データセンターは無効です。 GetBucketReplicationLocation 操作を呼び出して、有効な宛先データセンターを取得できます。 |
NoReplicationLocation | 400 Bad Request | クロスリージョンレプリケーションを使用する場合、ソースバケットのデータセンターには、クロスリージョンレプリケーション用のペアのデータセンターがありません。 クロスリージョンレプリケーション用のペアのデータセンターの詳細については、「エンドポイントとデータセンター」をご参照ください。 |
TooManyReplicationRules | 400 Bad Request | リクエストで複数のデータレプリケーションルールが構成されています。 1 つのリクエストで構成できるデータレプリケーションルールは 1 つだけです。 |
TooManyIncomingReplication | 400 Bad Request | バケットに構成されているデータレプリケーションルールの数が上限の 100 に達しました。使用されなくなったデータレプリケーションルールを削除して、再試行してください。 バケットには最大 100 個のデータレプリケーションルールを構成できます。ビジネス要件がこの制限を超える場合は、チケットを送信してお問い合わせください。 |
TooManyOutgoingReplication | 400 Bad Request | バケットに構成されているデータレプリケーションルールの数が上限の 100 に達しました。使用されなくなったデータレプリケーションルールを削除して、再試行してください。 バケットには最大 100 個のデータレプリケーションルールを構成できます。ビジネス要件がこの制限を超える場合は、チケットを送信してお問い合わせください。 |
MissingArgument | 400 Bad Request | データ伝送リンクが指定されていません。 |
InvalidArgument | 400 Bad Request | 指定されたデータ伝送リンクはサポートされていません。 |
ReplicationLocationNotSupportRtc | 400 Bad Request | このリージョンでは RTC 機能を有効にできません。RTC 機能をサポートするリージョンの詳細については、「RTC リージョン」をご参照ください。 |