Operasi PutBucketReplication digunakan untuk mengonfigurasi aturan replikasi data untuk sebuah bucket. OSS mendukung cross-region replication (CRR) dan same-region replication (SRR).
Catatan penggunaan
Replikasi data secara asinkron (hampir real-time) menyalin objek di bucket sumber—termasuk operasi pembuatan, pembaruan, dan penghapusan objek—ke bucket tujuan. Perhatikan hal-hal berikut saat menggunakan replikasi data:
Replikasi data bersifat asinkron. Proses replikasi ke bucket tujuan memerlukan waktu beberapa menit hingga beberapa jam, tergantung pada ukuran data.
Bucket sumber dan bucket tujuan tidak boleh memiliki nama yang sama.
Untuk cross-region replication (CRR), bucket sumber dan bucket tujuan harus berada di wilayah yang berbeda. Untuk same-region replication (SRR), keduanya harus berada di wilayah yang sama.
Saat ini, fitur filtering berbasis tag tidak didukung di wilayah China (Zhangjiakou), China (Zhongwei), dan Mexico.
Untuk informasi selengkapnya tentang replikasi data, lihat Ikhtisar CRR dan Ikhtisar SRR.
Sintaksis permintaan
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>Elemen permintaan
Name | Type | Required | Example | Description |
ReplicationConfiguration | Container | Yes | N/A | Container yang menyimpan aturan replikasi data untuk bucket. Parent node: none Child nodes: Rule |
Rule | Container | Yes | N/A | Container yang menyimpan satu aturan replikasi data. Parent node: ReplicationConfiguration Child nodes: Destination, HistoricalObjectReplication, UserTaggings, ID, dan lainnya |
ID | String | No | first | ID unik dari aturan replikasi data. Parent node: Rule Child nodes: none |
PrefixSet | Container | No | N/A | Container yang menyimpan awalan. Anda dapat menentukan hingga 10 awalan dalam satu aturan replikasi data. Parent node: Rule Child nodes: Prefix |
Prefix | String | No | source1 | Awalan dari objek yang akan direplikasi. Hanya objek yang namanya mengandung awalan yang ditentukan yang direplikasi ke bucket tujuan.
Parent node: PrefixSet Child nodes: none |
Action | String | No | ALL | Operasi yang dapat disinkronkan ke bucket tujuan. Jika Anda mengonfigurasi Action, baik data baru maupun data historis disinkronkan berdasarkan operasi yang ditentukan oleh Action. Action memungkinkan jenis operasi berikut. Anda dapat menentukan satu atau lebih jenis operasi. Nilai valid:
Parent node: Rule Child nodes: none |
Destination | Container | Yes | N/A | Container yang menyimpan informasi tentang bucket tujuan. Parent node: Rule Child nodes: Bucket dan Location |
Bucket | String | Yes | destbucket | Bucket tujuan tempat data direplikasi. Parent node: Destination Child nodes: none |
Location | String | Yes | oss-cn-hangzhou | Wilayah tempat bucket tujuan berada. Parent node: Destination Child nodes: none |
TransferType | String | Yes | oss_acc | Tautan transfer data yang digunakan untuk replikasi data. Nilai valid:
Parent node: Destination Child nodes: none |
HistoricalObjectReplication | String | No | disabled | Menentukan apakah data historis dari bucket sumber direplikasi ke bucket tujuan sebelum replikasi data diaktifkan. Nilai valid:
Parent node: Rule Child nodes: none |
SyncRole | String | Yes | aliyunramrole | Peran RAM yang Anda otorisasi agar OSS gunakan untuk replikasi data. Izin replikasi data berlaku untuk replikasi antar akun yang sama dan cross-account replication. Untuk replikasi antar akun yang sama dan cross-account, Anda harus memberikan izin replikasi yang sesuai kepada peran RAM tersebut. Jika tidak, tugas replikasi akan gagal. Untuk informasi selengkapnya, lihat Izin yang diperlukan untuk replikasi data. Parent node: Rule Child nodes: none |
SourceSelectionCriteria | Container | No | N/A | Container yang menyimpan kondisi filter lain untuk objek sumber yang akan direplikasi. Saat ini, OSS hanya mendukung kondisi filter untuk objek sumber yang dienkripsi menggunakan SSE-KMS. Parent node: Rule Child nodes: SseKmsEncryptedObjects |
SseKmsEncryptedObjects | Container | No | N/A | Container yang menyimpan kondisi filter untuk objek yang dienkripsi menggunakan SSE-KMS. Jika Anda menentukan SourceSelectionCriteria dalam aturan replikasi data, Anda harus menentukan elemen ini. Parent node: SourceSelectionCriteria Child nodes: Status |
Status | String | No | Enabled | Menentukan apakah OSS mereplikasi objek yang dibuat menggunakan enkripsi SSE-KMS. Nilai valid:
Parent node: SseKmsEncryptedObjects Child nodes: none |
EncryptionConfiguration | Container | No | N/A | Konfigurasi enkripsi untuk objek tujuan. Jika Anda mengatur Status ke Enabled, Anda harus menentukan elemen ini. Parent node: Rule Child nodes: ReplicaKmsKeyID |
ReplicaKmsKeyID | String | No | c4d49f85-ee30-426b-a5ed-95e9139d**** | ID kunci SSE-KMS. Jika Anda mengatur Status ke Enabled, Anda harus menentukan elemen ini. Parent node: EncryptionConfiguration Child nodes: none |
RTC | Container | No | N/A | Status fitur Replication Time Control (RTC). Parent node: Rule Child nodes: Status |
Status | String | No | Enabled | Menentukan apakah RTC diaktifkan. Anda hanya dapat mengaktifkan RTC saat mengonfigurasi CRR. Nilai valid:
Parent node: RTC Child nodes: none Catatan Untuk informasi selengkapnya tentang wilayah yang mendukung RTC, lihat Wilayah yang mendukung RTC. |
UserTaggings | Container | No | N/A | Container yang menyimpan aturan filtering berbasis tag. Setelah Anda mengonfigurasi aturan filtering berbasis tag, hanya objek yang memiliki tag yang ditentukan yang direplikasi ke bucket tujuan. Jika Anda mengonfigurasi UserTaggings, Anda harus menentukan FilterType dan UserTagging. Parent node: Rule Child nodes: FilterType dan UserTagging |
FilterType | String | No | OR | Kebijakan filtering berbasis tag. Huruf besar/kecil diperhatikan. Nilai valid:
Parent node: UserTaggings Child nodes: none |
UserTagging | Container | No | N/A | Container yang menyimpan satu pasangan kunci-nilai tag. Anda dapat menentukan hingga 10 tag. Tag yang ditentukan (pasangan kunci-nilai) harus unik. Parent node: UserTaggings Child nodes: Key dan Value |
Key | String | No | env | Kunci tag. Kunci dapat memiliki panjang hingga 128 karakter dan huruf besar/kecil diperhatikan. Kunci dapat berisi huruf, angka, spasi, dan karakter khusus berikut: + - = . _ : / Parent node: UserTagging Child nodes: none |
Value | String | No | test | Nilai tag. Nilai dapat memiliki panjang hingga 256 karakter dan huruf besar/kecil diperhatikan. Nilai dapat berisi huruf, angka, spasi, dan karakter khusus berikut: + - = . _ : / Parent node: UserTagging Child nodes: none |
Operasi ini juga melibatkan header permintaan umum seperti Host dan Date. Untuk informasi selengkapnya, lihat Header permintaan umum.
Header respons
Operasi ini hanya mengembalikan header respons umum. Untuk informasi selengkapnya, lihat Header respons umum.
Contoh
Permintaan contoh 1 (kebijakan filtering 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>Permintaan contoh 2 (kebijakan filtering 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>Respons contoh
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
Tabel berikut menjelaskan SDK yang mendukung operasi ini:
ossutil
Untuk informasi selengkapnya tentang perintah ossutil yang sesuai dengan operasi PutBucketReplication, lihat put-bucket-replication.
Kode error
Kode error | Kode status HTTP | Deskripsi |
InvalidTargetBucket | 400 BadRequest | Penyebab error ini mungkin:
|
InvalidTargetLocation | 400 BadRequest | Wilayah tempat bucket tujuan berada bukan wilayah yang ditentukan dalam permintaan XML. |
BucketReplicationAlreadyExist | 400 BadRequest | Hubungan replikasi sudah ada antara bucket sumber dan bucket tujuan. Jika Anda ingin mengonfigurasi aturan replikasi data baru, hapus aturan replikasi data yang ada terlebih dahulu. |
BadReplicationLocation | 400 BadRequest | Wilayah tujuan yang dipilih tidak valid. Anda dapat memanggil operasi GetBucketReplicationLocation untuk mendapatkan wilayah tujuan yang valid tempat data dapat direplikasi. |
NoReplicationLocation | 400 BadRequest | Untuk CRR, tidak ada wilayah tujuan yang dipasangkan dengan wilayah tempat bucket sumber berada. Untuk informasi selengkapnya tentang pasangan wilayah untuk CRR, lihat Wilayah dan titik akhir. |
TooManyReplicationRules | 400 BadRequest | Lebih dari satu aturan replikasi data dikonfigurasi dalam permintaan. Anda hanya dapat mengonfigurasi satu aturan replikasi data dalam satu permintaan. |
TooManyIncomingReplication | 400 BadRequest | Jumlah aturan replikasi data yang dikonfigurasi untuk bucket telah mencapai 100. Hapus aturan replikasi data yang tidak lagi digunakan dan coba lagi. Anda dapat mengonfigurasi hingga 100 aturan replikasi data untuk sebuah bucket. Jika kebutuhan bisnis Anda melebihi batas tersebut, submit a ticket untuk menghubungi dukungan teknis. |
TooManyOutgoingReplication | 400 BadRequest | Jumlah aturan replikasi data yang dikonfigurasi untuk bucket telah mencapai 100. Hapus aturan replikasi data yang tidak lagi digunakan dan coba lagi. Anda dapat mengonfigurasi hingga 100 aturan replikasi data untuk sebuah bucket. Jika kebutuhan bisnis Anda melebihi batas tersebut, submit a ticket untuk menghubungi dukungan teknis. |
MissingArgument | 400 BadRequest | Tautan transfer data tidak ditentukan. |
InvalidArgument | 400 BadRequest | Tautan transfer data yang ditentukan tidak didukung. |
ReplicationLocationNotSupportRtc | 400 BadRequest | RTC tidak dapat diaktifkan di wilayah ini. Untuk informasi selengkapnya tentang wilayah yang mendukung RTC, lihat Wilayah yang mendukung RTC. |
TooManyTaggings | 400 BadRequest | Jumlah tag dalam aturan replikasi data yang dikonfigurasi untuk bucket tidak boleh melebihi 10. |
DuplicateReplicationRuleTaggings | 400 BadRequest | Aturan replikasi data yang dikonfigurasi untuk bucket berisi kunci dan nilai tag yang duplikat. |
DuplicateReplicationRuleTaggingKeys | 400 BadRequest | Aturan replikasi data yang dikonfigurasi untuk bucket memiliki FilterType diatur ke AND dan berisi kunci tag yang duplikat. |