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

Object Storage Service:PutBucketReplication

最終更新日:Mar 28, 2026

PutBucketReplication 操作は、バケットのデータレプリケーションルールを設定するために使用されます。OSS は、クロスリージョンレプリケーション (CRR) と同一リージョンレプリケーション (SRR) をサポートしています。

注意事項

データレプリケーションは、ソースバケット内のオブジェクト、およびオブジェクトの作成、更新、削除操作を、宛先バケットに非同期 (ほぼリアルタイム) でレプリケーションします。データレプリケーションを使用する際は、以下の点にご注意ください。

  • データレプリケーションは非同期です。データサイズに応じて、宛先バケットへのデータレプリケーションには数分から数時間かかります。

  • ソースバケットと宛先バケットの名前を同じにすることはできません。

  • クロスリージョンレプリケーション (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>
        <SyncRole>aliyunramrole</SyncRole>
        <UserTaggings>
            <FilterType>AND or OR</FilterType>
            <UserTagging>
                <Key>key1</Key>
                <Value>value1</Value>
            </UserTagging>
            ...
        </UserTaggings>
   </Rule>
</ReplicationConfiguration>

リクエスト要素

名前

タイプ

必須

説明

ReplicationConfiguration

コンテナ

はい

N/A

バケットのデータレプリケーションルールを格納するコンテナです。

親ノード:なし

子ノード:Rule

Rule

コンテナ

はい

N/A

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

親ノード:ReplicationConfiguration

子ノード:Destination、HistoricalObjectReplication、UserTaggings、ID など

ID

String

いいえ

first

データレプリケーションルールの一意の ID です。

親ノード:Rule

子ノード:なし

PrefixSet

コンテナ

いいえ

N/A

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

親ノード:Rule

子ノード:Prefix

Prefix

String

いいえ

source1

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

  • プレフィックスの長さは最大 1,023 文字です。

  • プレフィックスを設定した場合、新しく書き込まれたデータと既存データの両方が、プレフィックスで指定されたルールに基づいてレプリケーションされます。

親ノード:PrefixSet

子ノード:なし

Action

String

いいえ

ALL

宛先バケットに同期できる操作です。Action を設定した場合、新しく書き込まれたデータと既存データの両方が、Action で指定された操作に基づいて同期されます。

Action では、以下の操作タイプが許可されます。1 つまたは複数の操作タイプを指定できます。

有効値:

  • ALL (デフォルト):PUT、DELETE、および ABORT 操作が宛先バケットに同期されることを指定します。

    重要

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

  • PUT:書き込み操作が宛先バケットに同期されることを指定します。書き込み操作には、PutObject、PostObject、AppendObject、CopyObject、PutObjectACL、InitiateMultipartUpload、UploadPart、UploadPartCopy、および CompleteMultipartUpload が含まれます。

    重要

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

親ノード:Rule

子ノード:なし

Destination

コンテナ

はい

N/A

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

親ノード:Rule

子ノード:Bucket および Location

Bucket

String

はい

destbucket

データがレプリケーションされる宛先バケットです。

親ノード:Destination

子ノード:なし

Location

String

はい

oss-cn-hangzhou

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

親ノード:Destination

子ノード:なし

TransferType

String

はい

oss_acc

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

有効値:

  • internal (デフォルト):デフォルトの OSS 転送リンクです。

  • oss_acc:転送アクセラレーションリンクです。転送アクセラレーションリンクは、CRR ルールを作成する場合にのみ使用できます。

親ノード:Destination

子ノード:なし

HistoricalObjectReplication

String

いいえ

disabled

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

有効値:

  • enabled (デフォルト):既存データをレプリケーションします。

  • disabled:既存データをレプリケーションしません。データレプリケーションルールの作成後にソースバケットに書き込まれたデータのみがレプリケーションされます。

親ノード:Rule

子ノード:なし

SyncRole

String

はい

aliyunramrole

OSS がデータレプリケーションで使用するように承認する RAM ロールです。データレプリケーションの権限は、同一アカウント内でのレプリケーションおよびクロスアカウントレプリケーションに適用されます。同一アカウント内およびクロスアカウントのレプリケーションでは、対応するレプリケーション権限を RAM ロールに付与する必要があります。これを実行しない場合、レプリケーションタスクは失敗します。詳細については、「データレプリケーションに必要な権限」をご参照ください。

親ノード:Rule

子ノード:なし

SourceSelectionCriteria

コンテナ

いいえ

N/A

レプリケーションするソースオブジェクトの他のフィルター条件を格納するコンテナです。現在、OSS は SSE-KMS を使用して暗号化されたソースオブジェクトのフィルター条件のみをサポートしています。

親ノード:Rule

子ノード:SseKmsEncryptedObjects

SseKmsEncryptedObjects

コンテナ

いいえ

N/A

SSE-KMS を使用して暗号化されたオブジェクトのフィルター条件を格納するコンテナです。データレプリケーションルールで SourceSelectionCriteria を指定する場合は、この要素を指定する必要があります。

親ノード:SourceSelectionCriteria

子ノード:Status

Status

String

いいえ

Enabled

OSS が SSE-KMS 暗号化を使用して作成されたオブジェクトをレプリケーションするかどうかを指定します。有効値:

  • Enabled:SSE-KMS 暗号化を使用して作成されたオブジェクトをレプリケーションします。

  • Disabled (デフォルト):SSE-KMS 暗号化を使用して作成されたオブジェクトをレプリケーションしません。

親ノード:SseKmsEncryptedObjects

子ノード:なし

EncryptionConfiguration

コンテナ

いいえ

N/A

宛先オブジェクトの暗号化設定です。Status を Enabled に設定した場合は、この要素を指定する必要があります。

親ノード:Rule

子ノード:ReplicaKmsKeyID

ReplicaKmsKeyID

String

いいえ

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

SSE-KMS キーの ID です。Status を Enabled に設定した場合は、この要素を指定する必要があります。

親ノード:EncryptionConfiguration

子ノード:なし

RTC

コンテナ

いいえ

N/A

Replication Time Control (RTC) 機能のステータスです。

親ノード:Rule

子ノード:Status

Status

String

いいえ

Enabled

RTC を有効にするかどうかを指定します。RTC は CRR を設定する場合にのみ有効にできます。

有効値:

  • enabled:RTC を有効にします。

  • disabled (デフォルト):RTC を無効にします。

親ノード:RTC

子ノード:なし

説明

RTC をサポートするリージョンの詳細については、「RTC をサポートするリージョン」をご参照ください。

UserTaggings

コンテナ

いいえ

N/A

タグベースのフィルタリングルールを格納するコンテナです。タグベースのフィルタリングルールを設定すると、指定されたタグを持つオブジェクトのみが宛先バケットにレプリケーションされます。

UserTaggings を設定する場合は、FilterType と UserTagging の両方を指定する必要があります。

親ノード:Rule

子ノード:FilterType および UserTagging

FilterType

String

いいえ

OR

タグベースのフィルタリングポリシーです。大文字と小文字が区別されます。有効値:

  • AND:オブジェクトがフィルタリングルールで指定されたすべてのタグを持つ場合にのみ、オブジェクトをレプリケーションします。

  • OR:オブジェクトがフィルタリングルールで指定されたいずれかのタグを持つ場合に、オブジェクトをレプリケーションします。

親ノード:UserTaggings

子ノード:なし

UserTagging

コンテナ

いいえ

N/A

単一のタグのキーと値のペアを格納するコンテナです。最大 10 個のタグを指定できます。指定されたタグ (キーと値のペア) は一意である必要があります。

親ノード:UserTaggings

子ノード:Key および Value

Key

String

いいえ

env

タグキーです。キーの長さは最大 128 文字で、大文字と小文字が区別されます。キーには、文字、数字、スペース、および次の特殊文字を含めることができます:+ - = . _ : /

親ノード:UserTagging

子ノード:なし

Value

String

いいえ

test

タグ値です。値の長さは最大 256 文字で、大文字と小文字が区別されます。値には、文字、数字、スペース、および次の特殊文字を含めることができます:+ - = . _ : /

親ノード:UserTagging

子ノード:なし

この操作には、Host や Date などの共通リクエストヘッダーも含まれます。詳細については、「共通リクエストヘッダー」をご参照ください。

レスポンスヘッダー

この操作は、共通レスポンスヘッダーのみを返します。詳細については、「共通レスポンスヘッダー」をご参照ください。

  • リクエスト例 1 (OR フィルタリングポリシー)

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>
      <UserTaggings>
           <FilterType>OR</FilterType>
           <UserTagging>
               <Key>env</Key>
               <Value>test</Value>
           </UserTagging>
           <UserTagging>
               <Key>dept</Key>
               <Value>dev</Value>
           </UserTagging>
      </UserTaggings>
  </Rule>
</ReplicationConfiguration>
  • リクエスト例 2 (AND フィルタリングポリシー)

POST /?replication&comp=add HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com 
Content-Type: application/xml
Content-Length: 350
Date: Thu, 17 Apr 2025 16:00:00 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=b8d4e5f6a7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4
<?xml version="1.0" encoding="UTF-8"?>
<ReplicationConfiguration>
  <Rule>  
     <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>disabled</HistoricalObjectReplication>
      <SyncRole>aliyunramrole</SyncRole>
      <UserTaggings>
           <FilterType>AND</FilterType>
           <UserTagging>
               <Key>env</Key>
               <Value>production</Value>
           </UserTagging>
           <UserTagging>
               <Key>dept</Key>
               <Value>finance</Value>
           </UserTagging>
      </UserTaggings>
  </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: AliyunOSS

SDK

この操作をサポートする SDK は次の表のとおりです。

ossutil

PutBucketReplication 操作に対応する ossutil コマンドの詳細については、「put-bucket-replication」をご参照ください。

エラーコード

エラーコード

HTTP ステータスコード

説明

InvalidTargetBucket

400 BadRequest

このエラーの原因として、以下が考えられます。

  • 宛先バケットの名前がソースバケットと同じです。

  • 宛先バケットが存在しません。

  • 宛先バケットとソースバケットが同じユーザーに属していません。

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 に達しました。不要になったデータレプリケーションルールを削除してから、もう一度お試しください。

バケットには最大 100 個のデータレプリケーションルールを設定できます。ビジネス要件がこの制限を超える場合は、チケットを送信

TooManyOutgoingReplication

400 BadRequest

バケットに設定されたデータレプリケーションルールの数が 100 に達しました。不要になったデータレプリケーションルールを削除してから、もう一度お試しください。

バケットには最大 100 個のデータレプリケーションルールを設定できます。ビジネス要件がこの制限を超える場合は、チケットを送信

MissingArgument

400 BadRequest

データ転送リンクが指定されていません。

InvalidArgument

400 BadRequest

指定されたデータ転送リンクはサポートされていません。

ReplicationLocationNotSupportRtc

400 BadRequest

このリージョンでは RTC を有効にできません。RTC をサポートするリージョンの詳細については、「RTC をサポートするリージョン」をご参照ください。

TooManyTaggings

400 BadRequest

バケットに設定されたデータレプリケーションルールのタグの数は 10 を超えることはできません。

DuplicateReplicationRuleTaggings

400 BadRequest

バケットに設定されたデータレプリケーションルールに、重複するタグキーと値が含まれています。

DuplicateReplicationRuleTaggingKeys

400 BadRequest

バケットに設定されたデータレプリケーションルールの FilterType が AND に設定されており、重複するタグキーが含まれています。