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

Object Storage Service:PutBucketReplication

最終更新日:Nov 09, 2025

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

レプリケーションするオブジェクトのプレフィックス。プレフィックスに一致するオブジェクトのみが宛先バケットにレプリケーションされます。

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

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

親ノード: PrefixSet

子ノード: なし

Action

文字列

いいえ

ALL

宛先バケットにレプリケーションする操作。操作を構成すると、新しく書き込まれたデータと既存データの両方が指定された操作に基づいてレプリケーションされます。

次の有効な値のうち 1 つ以上を指定できます。

有効値:

  • ALL (デフォルト): PUT、DELETE、および ABORT 操作を宛先バケットにレプリケーションします。

    重要

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

  • PUT: 書き込み操作を宛先バケットにレプリケーションします。これらの操作には、PutObject、PostObject、AppendObject、CopyObject、PutObjectACL、InitiateMultipartUpload、UploadPart、UploadPartCopy、および CompleteMultipartUpload が含まれます。

    重要

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

親ノード: Rule

子ノード: なし

Destination

コンテナー

はい

該当なし

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

親ノード: Rule

子ノード: Bucket と Location

Bucket

文字列

はい

destbucket

データレプリケーションの宛先バケット。

親ノード: Destination

子ノード: なし

Location

文字列

はい

oss-cn-hangzhou

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

親ノード: Destination

子ノード: なし

TransferType

文字列

はい

oss_acc

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

有効値:

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

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

親ノード: Destination

子ノード: なし

HistoricalObjectReplication

文字列

いいえ

disabled

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

有効値:

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

  • 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 暗号化で作成されたオブジェクトをレプリケーションするかどうかを指定します。有効な値:

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

  • Disabled (デフォルト): 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 機能はクロスリージョンレプリケーションに対してのみ構成できます。

有効な値:

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

  • disabled (デフォルト): 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: AliyunOSS

SDK

この操作に対応する各言語の 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 リージョン」をご参照ください。