バケットのデータレプリケーションルールを設定します。 Object Storage Service (OSS) には、クロスリージョンレプリケーション (CRR) と同一リージョンレプリケーション (SRR) の2つのデータレプリケーション機能があります。
使用上の注意
データレプリケーション機能を使用すると、作成、上書き、削除など、ソースバケットからターゲットバケットへのオブジェクトに対して実行される操作を自動的に同期できます。 データレプリケーション機能を使用する場合は、次の項目に注意してください。
データは非同期的にレプリケートされます。 ソースバケットから宛先バケットにデータを複製するのに必要な時間は、数分から数時間の範囲である。 レプリケーション時間は、データサイズによって異なります。
送信元バケットと送信先バケットの名前を同じにすることはできません。
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タスクにのみ使用できます。 有効な値:
親ノード: RTC 子ノード: なし 説明 RTC機能を使用できるリージョンの詳細については、「RTC」をご参照ください。 |
PrefixSet | コンテナー | 不可 | 非該当 | プレフィックスを格納するコンテナー。 各データレプリケーションルールには、最大10個のプレフィックスを指定できます。 親ノード: ルール 子ノード: プレフィックス |
接頭辞 | String | 任意 | ソース1 | レプリケートするオブジェクトを指定するために使用されるプレフィックス。 指定されたプレフィックスを名前に含むオブジェクトのみが、宛先バケットにレプリケートされます。
親ノード: PrefixSet 子ノード: なし |
Action | String | 任意 | すべて | 宛先バケットに同期できる操作。 データレプリケーションルールでアクションを設定すると、指定されたアクションの値に基づいて、新しいデータと履歴データが同期されます。 アクションは、次の1つ以上の操作タイプに設定できます。 有効な値:
親ノード: ルール 子ノード: なし |
目的地 | コンテナー | 可 | 非該当 | 宛先バケットに関する情報を格納するコンテナー。 親ノード: ルール 子ノード: バケットと場所 |
バケット | String | 可 | destbucket | データがレプリケートされる宛先バケット。 親ノード: 宛先 子ノード: なし |
位置 | String | 可 | oss-cn-hangzhou | 宛先バケットが配置されているリージョン。 親ノード: 宛先 子ノード: なし |
TransferType | String | 可 | oss_acc | データレプリケーション中にデータを転送するために使用されるリンク。 有効な値:
親ノード: 宛先 子ノード: なし |
HistoricalObjectReplication | String | 任意 | disabled | データレプリケーションを有効にする前に、履歴データをソースバケットから宛先バケットにレプリケートするかどうかを指定します。 有効な値:
親ノード: ルール 子ノード: なし |
SyncRole | String | 任意 | aliyunramrole | データの複製に使用するOSSを許可するロール。 SSE-KMSを使用して、宛先バケットにレプリケートされるオブジェクトを暗号化する場合は、この要素を指定する必要があります。 説明
|
SourceSelectionCriteria | コンテナー | 不可 | 非該当 | レプリケートするソースオブジェクトをフィルタリングするために使用される他の条件を指定するコンテナー。 SSE-KMSで暗号化されたソースオブジェクトに対してのみフィルタ条件を指定できます。 |
SseKmsEncryptedObjects | コンテナー | 不可 | 非該当 | SSE-KMSを使用して暗号化されたソースオブジェクトをフィルタリングするために使用されるコンテナー。 データレプリケーションルールでSourceSelectionCriteriaパラメーターが指定されている場合は、このパラメーターを指定する必要があります。 |
Status | String | 任意 | Enabled | SSE-KMSを使用して暗号化されたオブジェクトを複製するかどうかを指定します。 有効な値:
|
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 | 考えられる原因:
|
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機能を使用できるリージョンの詳細については、「概要」をご参照ください。 |