Gunakan operasi PutBucketReplication untuk menentukan aturan replikasi data pada bucket. OSS mendukung replikasi lintas wilayah (CRR) dan replikasi wilayah sama (SRR).
Catatan penggunaan
Replikasi data secara asinkron menyalin objek dari bucket sumber ke bucket tujuan, termasuk operasi seperti membuat, memperbarui, dan menghapus 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, berkisar antara beberapa menit hingga beberapa jam.
Nama bucket sumber dan bucket tujuan tidak boleh sama.
Untuk replikasi lintas wilayah, bucket sumber dan bucket tujuan harus berada di pusat data yang berbeda. Untuk replikasi dalam wilayah yang sama, bucket sumber dan bucket tujuan harus berada di pusat data yang sama.
Untuk informasi lebih lanjut tentang replikasi data, lihat Pengenalan Replikasi Lintas Wilayah dan Pengenalan Replikasi Dalam Wilayah yang Sama.
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>
</Rule>
</ReplicationConfiguration>Elemen permintaan
Nama | Tipe | Diperlukan | Contoh | Deskripsi |
ReplicationConfiguration | Kontainer | Ya | Tidak tersedia | Kontainer untuk aturan replikasi data sebuah bucket. Node induk: Tidak ada Node anak: Rule |
Rule | Kontainer | Ya | Tidak tersedia | Kontainer untuk aturan replikasi data. Node induk: ReplicationConfiguration Node anak: Destination, HistoricalObjectReplication, ID, dan lainnya |
ID | String | Tidak | first | ID unik dari aturan replikasi data. Node induk: Rule Node anak: Tidak ada |
PrefixSet | Kontainer | Tidak | Tidak tersedia | Kontainer untuk awalan. Anda dapat menentukan maksimal 10 awalan dalam setiap aturan replikasi data. Node induk: Rule Node anak: Prefix |
Prefix | String | Tidak | source1 | Awalan objek yang akan direplikasi. Hanya objek yang sesuai dengan awalan tersebut yang akan direplikasi ke bucket tujuan.
Node induk: PrefixSet Node anak: Tidak ada |
Action | String | Tidak | ALL | Operasi yang akan direplikasi ke bucket tujuan. Jika Anda mengonfigurasi aksi, baik data baru maupun data historis akan direplikasi berdasarkan aksi yang ditentukan. Anda dapat menentukan satu atau lebih nilai valid berikut ini. Nilai valid:
Node induk: Rule Node anak: Tidak ada |
Destination | Kontainer | Ya | Tidak tersedia | Kontainer untuk informasi tentang bucket tujuan. Node induk: Rule Node anak: Bucket dan Location |
Bucket | String | Ya | destbucket | Bucket tujuan untuk replikasi data. Node induk: Destination Node anak: Tidak ada |
Location | String | Ya | oss-cn-hangzhou | Wilayah tempat bucket tujuan berada. Node induk: Destination Node anak: Tidak ada |
TransferType | String | Ya | oss_acc | Tautan transmisi data yang digunakan untuk replikasi data. Nilai valid:
Node induk: Destination Node anak: Tidak ada |
HistoricalObjectReplication | String | Tidak | disabled | Menentukan apakah akan mereplikasi data historis. Ini menentukan apakah data di bucket sumber sebelum replikasi data diaktifkan akan direplikasi ke bucket tujuan. Nilai valid:
Node induk: Rule Node anak: Tidak ada |
SyncRole | String | Ya | aliyunramrole | Peran RAM yang Anda otorisasi OSS untuk digunakan dalam replikasi data. Replikasi data dapat dilakukan dalam akun yang sama atau di seluruh akun yang berbeda. Untuk kedua skenario, Anda harus memberikan izin replikasi yang diperlukan kepada peran RAM. Jika tidak, tugas replikasi tidak dapat diselesaikan. Untuk informasi lebih lanjut, lihat Izin replikasi data. Node induk: Rule Node anak: Tidak ada |
SourceSelectionCriteria | Kontainer | Tidak | Tidak tersedia | Kontainer untuk kondisi filter lain yang mengidentifikasi objek sumber untuk direplikasi. OSS saat ini mendukung penentuan kondisi filter hanya untuk objek sumber yang dienkripsi dengan SSE-KMS. Node induk: Rule Node anak: SseKmsEncryptedObjects |
SseKmsEncryptedObjects | Kontainer | Tidak | Tidak tersedia | Kontainer untuk menyaring objek yang dienkripsi dengan SSE-KMS. Jika Anda menentukan SourceSelectionCriteria dalam aturan replikasi data, Anda harus menentukan elemen ini. Node induk: SourceSelectionCriteria Node anak: Status |
Status | String | Tidak | Enabled | Menentukan apakah OSS mereplikasi objek yang dibuat dengan enkripsi SSE-KMS. Nilai valid:
Node induk: SseKmsEncryptedObjects Node anak: Tidak ada |
EncryptionConfiguration | Kontainer | Tidak | Tidak tersedia | Konfigurasi enkripsi untuk objek tujuan. Jika Anda mengatur Status menjadi Enabled, Anda harus menentukan elemen ini. Node induk: Rule Node anak: ReplicaKmsKeyID |
ReplicaKmsKeyID | String | Tidak | c4d49f85-ee30-426b-a5ed-95e9139d**** | ID kunci SSE-KMS. Jika Anda mengatur Status menjadi Enabled, Anda harus menentukan elemen ini. Node induk: EncryptionConfiguration Node anak: Tidak ada |
RTC | Kontainer | Tidak | Tidak tersedia | Status fitur kontrol waktu replikasi (RTC). Node induk: Rule Node anak: Status |
Status | String | Tidak | Enabled | Mengaktifkan atau menonaktifkan fitur RTC. Anda hanya dapat mengonfigurasi fitur RTC untuk replikasi lintas wilayah. Nilai valid:
Node induk: RTC Node anak: Tidak ada Catatan Untuk informasi lebih lanjut tentang wilayah yang mendukung fitur RTC, lihat Wilayah yang mendukung RTC. |
Operasi ini juga memerlukan header permintaan umum seperti Host dan Date. Untuk informasi lebih lanjut, lihat Header Permintaan Umum.
Header respons
Operasi ini hanya mengembalikan header respons umum. Untuk informasi lebih lanjut, lihat Header Respons Umum.
Contoh
Contoh Permintaan
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>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: AliyunOSSSDK
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 kesalahan
Kode kesalahan | Kode status HTTP | Deskripsi |
InvalidTargetBucket | 400 BadRequest | Kesalahan 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 Anda menggunakan replikasi lintas wilayah, pusat data bucket sumber tidak memiliki pusat data berpasangan untuk replikasi lintas wilayah. Untuk informasi lebih lanjut tentang pusat data berpasangan untuk replikasi lintas wilayah, lihat Endpoints and data centers. |
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 sebuah bucket. Jika kebutuhan bisnis Anda melebihi batas ini, silakan ajukan tiket untuk menghubungi kami. |
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 sebuah bucket. Jika kebutuhan bisnis Anda melebihi batas ini, silakan ajukan tiket untuk menghubungi kami. |
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 lebih lanjut tentang wilayah yang mendukung fitur RTC, lihat Wilayah RTC. |