全部产品
Search
文档中心

Object Storage Service:PutBucketReplication

更新时间:Nov 09, 2025

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.

  • Awalan dapat memiliki panjang hingga 1.023 karakter.

  • Jika Anda mengonfigurasi awalan, baik data baru maupun data historis akan direplikasi berdasarkan awalan tersebut.

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:

  • ALL (default): Mereplikasi operasi PUT, DELETE, dan ABORT ke bucket tujuan.

    Penting

    Selain replikasi objek yang baru diunggah dan diperbarui, kebijakan replikasi ini mencakup replikasi penghapusan, yang memastikan konsistensi data. Kebijakan ini berlaku untuk skenario di mana beberapa pengguna atau aplikasi perlu berbagi dan mengakses dataset yang sama. Objek yang dihapus dari bucket sumber, baik secara manual maupun melalui kebijakan siklus hidup, juga akan dihapus dari bucket tujuan. Objek tidak dapat dipulihkan setelah dihapus.

  • PUT: Mereplikasi operasi tulis ke bucket tujuan. Operasi ini mencakup PutObject, PostObject, AppendObject, CopyObject, PutObjectACL, InitiateMultipartUpload, UploadPart, UploadPartCopy, dan CompleteMultipartUpload.

    Penting

    Jika kebijakan replikasi ini diterapkan, hanya objek yang diunggah atau diperbarui setelah kebijakan mulai berlaku yang akan direplikasi ke bucket tujuan, dan objek yang dihapus dari bucket sumber tidak akan dihapus dari bucket tujuan. Kebijakan ini secara efektif mencegah hilangnya data di bucket tujuan akibat penghapusan manual atau otomatis yang dipicu oleh kebijakan siklus hidup di bucket sumber.

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:

  • internal (default): Tautan transmisi OSS default.

  • oss_acc: Tautan akselerasi transfer. Anda hanya dapat menggunakan tautan akselerasi transfer saat membuat aturan replikasi lintas wilayah.

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:

  • enabled (default): Mereplikasi data historis.

  • disabled: Tidak mereplikasi data historis. Hanya data yang ditulis setelah aturan replikasi data dibuat yang akan direplikasi.

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:

  • Enabled: Mereplikasi objek yang dibuat dengan enkripsi SSE-KMS.

  • Disabled (default): Tidak mereplikasi objek yang dibuat dengan enkripsi SSE-KMS.

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:

  • enabled: Mengaktifkan fitur RTC.

  • disabled (default): Menonaktifkan fitur RTC.

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: 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 kesalahan

Kode kesalahan

Kode status HTTP

Deskripsi

InvalidTargetBucket

400 BadRequest

Kesalahan ini dapat terjadi karena alasan berikut:

  • Nama bucket tujuan sama dengan nama bucket sumber.

  • Bucket tujuan tidak ada.

  • Bucket tujuan dan bucket sumber tidak dimiliki oleh pengguna yang sama.

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.