Operasi PutBucketReplication digunakan untuk menentukan aturan replikasi data pada bucket. OSS mendukung cross-region replication (CRR) dan same-region replication (SRR).
Catatan penggunaan
Replikasi data menyalin objek secara asinkron dari bucket sumber ke bucket tujuan, mencakup operasi seperti pembuatan, pembaruan, dan penghapusan objek. Perhatikan hal-hal berikut saat menggunakan replikasi data:
-
Replikasi data bersifat asinkron. Waktu yang diperlukan untuk mereplikasi data ke bucket tujuan bergantung pada ukuran data dan dapat berkisar dari beberapa menit hingga beberapa jam.
-
Nama bucket sumber dan bucket tujuan tidak boleh sama.
-
Pada cross-region replication, bucket sumber dan bucket tujuan harus berada di pusat data yang berbeda. Pada same-region replication, keduanya harus berada di pusat data yang sama.
Untuk informasi selengkapnya tentang replikasi data, lihat Pengenalan cross-region replication dan Pengenalan same-region replication.
Sintaks 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 |
Kontainer untuk aturan replikasi data bucket. Parent node: None Child node: Rule |
|
Rule |
Container |
Yes |
N/A |
Kontainer untuk aturan replikasi data. Parent node: ReplicationConfiguration Child nodes: Destination, HistoricalObjectReplication, ID, UserTaggings, dan lainnya |
|
ID |
String |
No |
first |
ID unik aturan replikasi data. Parent node: Rule Child nodes: None |
|
PrefixSet |
Container |
No |
N/A |
Kontainer untuk awalan. Anda dapat menentukan maksimal 10 awalan dalam setiap aturan replikasi data. Parent node: Rule Child node: Prefix |
|
Prefix |
String |
No |
source1 |
Awalan objek yang akan direplikasi. Hanya objek yang sesuai dengan awalan yang direplikasi ke bucket tujuan.
Parent node: PrefixSet Child nodes: None |
|
Action |
String |
No |
ALL |
Operasi yang direplikasi ke bucket tujuan. Jika Anda mengonfigurasi aksi, baik data baru maupun data historis direplikasi berdasarkan aksi yang ditentukan. Anda dapat menentukan satu atau beberapa nilai valid berikut. Nilai valid:
Parent node: Rule Child nodes: None |
|
Destination |
Container |
Yes |
N/A |
Kontainer untuk informasi tentang bucket tujuan. Parent node: Rule Child nodes: Bucket dan Location |
|
Bucket |
String |
Yes |
destbucket |
Bucket tujuan untuk replikasi data. 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 transmisi data yang digunakan untuk replikasi data. Nilai valid:
Parent node: Destination Child nodes: None |
|
HistoricalObjectReplication |
String |
No |
disabled |
Menentukan apakah data historis direplikasi. Ini menentukan apakah data di bucket sumber sebelum replikasi data diaktifkan direplikasi ke bucket tujuan. Nilai valid:
Parent node: Rule Child nodes: None |
|
SyncRole |
String |
Yes |
aliyunramrole |
Peran RAM yang Anda otorisasi agar OSS gunakan untuk replikasi data. Replikasi data dapat dilakukan dalam akun yang sama atau lintas akun berbeda. Untuk kedua skenario tersebut, Anda harus memberikan izin replikasi yang diperlukan kepada peran RAM. Jika tidak, tugas replikasi tidak dapat diselesaikan. Untuk informasi selengkapnya, lihat Izin replikasi data. Parent node: Rule Child nodes: None |
|
SourceSelectionCriteria |
Container |
No |
N/A |
Kontainer untuk kondisi filter lain yang mengidentifikasi objek sumber yang akan direplikasi. OSS saat ini hanya mendukung penentuan kondisi filter untuk objek sumber yang dienkripsi dengan SSE-KMS. Parent node: Rule Child node: SseKmsEncryptedObjects |
|
SseKmsEncryptedObjects |
Container |
No |
N/A |
Kontainer untuk memfilter objek yang dienkripsi dengan SSE-KMS. Jika Anda menentukan SourceSelectionCriteria dalam aturan replikasi data, Anda harus menentukan elemen ini. Parent node: SourceSelectionCriteria Child node: Status |
|
Status |
String |
No |
Enabled |
Menentukan apakah OSS mereplikasi objek yang dibuat dengan 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 node: 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 node: Status |
|
Status |
String |
No |
Enabled |
Mengaktifkan atau menonaktifkan fitur RTC. Anda hanya dapat mengonfigurasi fitur RTC untuk replikasi lintas wilayah. Nilai valid:
Parent node: RTC Child nodes: None Catatan
Untuk informasi selengkapnya tentang wilayah yang mendukung fitur RTC, lihat Wilayah yang mendukung RTC. |
|
UserTaggings |
Container |
No |
N/A |
Kontainer untuk aturan filter tag. Setelah Anda mengonfigurasi elemen ini, hanya objek yang memiliki tag yang ditentukan yang direplikasi ke bucket tujuan. Saat mengonfigurasi UserTaggings, Anda harus menentukan FilterType dan UserTagging. Parent node: Rule Child nodes: FilterType dan UserTagging |
|
FilterType |
String |
No |
OR |
Kebijakan filter tag. Nilai ini peka huruf besar/kecil. Nilai valid:
Parent node: UserTaggings Child nodes: None |
|
UserTagging |
Container |
No |
N/A |
Kontainer untuk pasangan kunci-nilai tag tunggal. Anda dapat menentukan maksimal 10 tag. Pasangan kunci-nilai tag yang Anda tentukan tidak boleh duplikat. Parent node: UserTaggings Child nodes: Key dan Value |
|
Key |
String |
No |
env |
Kunci tag. Panjang kunci tag dapat mencapai 128 karakter. Nilai ini peka huruf besar/kecil. Kunci tag dapat berisi huruf, angka, spasi, dan karakter khusus berikut: +‑=._:/ Parent node: UserTagging Child nodes: None |
|
Value |
String |
No |
test |
Nilai tag. Panjang nilai tag dapat mencapai 256 karakter. Nilai ini peka huruf besar/kecil. Nilai tag dapat berisi huruf, angka, spasi, dan karakter khusus berikut: +‑=._:/ Parent node: UserTagging Child nodes: None |
Operasi ini juga memerlukan 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
-
Contoh permintaan 1 (kebijakan filter 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>
-
Contoh permintaan 2 (kebijakan filter 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>
-
Contoh respons
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 untuk operasi ini dalam berbagai bahasa adalah sebagai berikut:
Alat baris perintah ossutil
Untuk perintah ossutil yang sesuai dengan operasi ini, lihat put-bucket-replication.
Kode error
|
Error code |
HTTP status code |
Description |
|
InvalidTargetBucket |
400 BadRequest |
Error ini dapat terjadi karena alasan berikut:
|
|
InvalidTargetLocation |
400 BadRequest |
Lokasi bucket tujuan berbeda dari lokasi yang ditentukan dalam XML permintaan. |
|
BucketReplicationAlreadyExist |
400 BadRequest |
Hubungan replikasi sudah ada dari bucket sumber ke bucket tujuan. Untuk mengonfigurasi aturan replikasi data baru, hapus aturan yang ada terlebih dahulu. |
|
BadReplicationLocation |
400 BadRequest |
Data center tujuan yang ditentukan tidak valid. Anda dapat memanggil operasi GetBucketReplicationLocation untuk mendapatkan data center tujuan yang valid. |
|
NoReplicationLocation |
400 BadRequest |
Saat menggunakan replikasi lintas wilayah, data center bucket sumber tidak memiliki data center pasangan untuk replikasi lintas wilayah. Untuk informasi selengkapnya tentang data center pasangan untuk replikasi lintas wilayah, lihat Endpoint dan data center. |
|
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 batas 100. Hapus aturan replikasi data yang tidak lagi digunakan dan coba lagi. Anda dapat mengonfigurasi hingga 100 aturan replikasi data untuk bucket. Jika kebutuhan bisnis Anda melebihi batas ini, silakan hubungi technical support. |
|
TooManyOutgoingReplication |
400 BadRequest |
Jumlah aturan replikasi data yang dikonfigurasi untuk bucket telah mencapai batas 100. Hapus aturan replikasi data yang tidak lagi digunakan dan coba lagi. Anda dapat mengonfigurasi hingga 100 aturan replikasi data untuk bucket. Jika kebutuhan bisnis Anda melebihi batas ini, silakan hubungi technical support. |
|
MissingArgument |
400 BadRequest |
Tautan transmisi data tidak ditentukan. |
|
InvalidArgument |
400 BadRequest |
Tautan transmisi data yang ditentukan tidak didukung. |
|
ReplicationLocationNotSupportRtc |
400 BadRequest |
Fitur RTC tidak dapat diaktifkan di wilayah ini. Untuk informasi selengkapnya tentang wilayah yang mendukung fitur RTC, lihat Wilayah 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 tag yang kunci dan nilainya duplikat. |
|
DuplicateReplicationRuleTaggingKeys |
400 BadRequest |
FilterType diatur ke AND dalam aturan replikasi data yang dikonfigurasi untuk bucket, dan terdapat kunci tag yang duplikat. |