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

Object Storage Service:PutBucketReplication

最終更新日:Feb 21, 2024

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

使用上の注意

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

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

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

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

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

リクエスト構文

POST /?replication&comp=HTTP/1.1の追加
日付: GMT日付
Content-Length: ContentLength
Content-Type: application/xml
権限付与: SignatureValue
ホスト: BucketName.oss-cn-hangzhou.aliyuncs.com

<?xml version="1.0" encoding="UTF-8"?>
<ReplicationConfiguration>
   <Rule>     
        <RTC>
            <Status> 有効または無効 </Status>
        </RTC>
        <PrefixSet>
            <Prefix>prefix_1</Prefix>
            <Prefix>prefix_2</Prefix>
        </PrefixSet>
        <アクション> ALL,PUT</Action>
        <宛先>
            <Bucket>destbucket</Bucket>
            <Location>oss-cn-hangzhou</Location>
            <TransferType>oss_acc</TransferType>
        </宛先>
        <HistoricalObjectReplication> 有効または無効 </HistoricalObjectReplication>
   </ルール>
</ReplicationConfiguration> 

リクエストパラメーター

パラメーター

データ型

必須/任意

説明

ReplicationConfiguration

Container

必須

N/A

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

親ノード: なし

子ノード: ルール

ルール

Container

必須

N/A

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

親ノード: ReplicationConfiguration

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

RTC

Container

任意

N/A

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

親ノード: ルール

子ノード: ステータス

Status

String

任意

enabled

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

有効な値:

  • enabled

  • 無効 (デフォルト)

親ノード: RTC

子ノード: なし

説明

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

PrefixSet

Container

任意

N/A

プレフィックスを格納するコンテナー。 各データレプリケーションルールには、最大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などの宛先バケットに同期されます。

親ノード: ルール

子ノード: なし

目的地

Container

必須

N/A

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

親ノード: ルール

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

バケット

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

Container

任意

N/A

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

SseKmsEncryptedObjects

Container

任意

N/A

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

Status

String

任意

Enabled

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

  • Enabled

  • 無効 (デフォルト)

EncryptionConfiguration

Container

任意

N/A

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

ReplicaKmsKeyID

String

任意

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

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

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

レスポンスヘッダー

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

  • リクエストの例

POST /?replication&comp=HTTP/1.1の追加
ホスト: oss-example.oss-cn-hangzhou.aliyuncs.com
Content-Type: application/xml
コンテンツ-長さ: 186
日付: 9月2015日木曜日15:39:12 GMT
権限付与: OSS qn6qrrqxo2oawuk53otf ****:KU5h8YMUC78M30dXqf3JxrTZ ****
<?xml version="1.0" encoding="UTF-8"?>
<ReplicationConfiguration>
  <Rule>  
     <RTC>
        <Status>enabled</Status>
     </RTC>
     <PrefixSet>
        <プレフィックス> source1</プレフィックス>
        <Prefix> ビデオ </Prefix>
     </PrefixSet>
     <アクション> PUT</Action>
     <宛先>
        <Bucket>destbucket</Bucket>
        <Location>oss-cn-beijing</Location>
        <TransferType>oss_acc</TransferType>
     </宛先>
     <HistoricalObjectReplication>enabled</HistoricalObjectReplication>
      <SyncRole>aliyunramrole</SyncRole>
      <SourceSelectionCriteria>
         <SseKmsEncryptedObjects>
           <Status>Enabled</Status>
         </SseKmsEncryptedObjects>
      </SourceSelectionCriteria>
      <EncryptionConfiguration>
           <ReplicaKmsKeyID>c4d49f85-ee30-426b-a5ed-95e9139d ****</ReplicaKmsKeyID>
      </EncryptionConfiguration>     
  </ルール>
</ReplicationConfiguration> 
  • 正常に処理された場合のレスポンス例

HTTP/1.1 200 OK
x-oss-request-id: 534B371674E88A4D8906 ****
日付: 9月2015日木曜日15:39:12 GMT
コンテンツ長: 0
接続: 閉じる
サーバー: 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機能を使用できるリージョンの詳細については、「概要」をご参照ください。