All Products
Search
Document Center

Object Storage Service:PutBucketReplication

Last Updated:Mar 28, 2026

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.

  • Awalan dapat memiliki panjang hingga 1.023 karakter.

  • Jika Anda mengonfigurasi awalan, baik data baru maupun data historis direplikasi berdasarkan aturan yang ditentukan oleh awalan tersebut.

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:

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

    Penting

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

  • PUT: menentukan bahwa operasi tulis disinkronkan ke bucket tujuan. Operasi tulis 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 berlaku yang direplikasi ke bucket tujuan, dan objek yang dihapus dari bucket sumber tidak akan dihapus dari bucket tujuan. Kebijakan ini secara efektif mencegah kehilangan data di bucket tujuan akibat penghapusan manual atau penghapusan otomatis yang dipicu oleh kebijakan lifecycle di bucket sumber.

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:

  • internal (default): tautan transfer OSS default.

  • oss_acc: tautan akselerasi transfer. Anda hanya dapat menggunakan tautan akselerasi transfer saat membuat aturan CRR.

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:

  • enabled (default): mereplikasi data historis.

  • disabled: tidak mereplikasi data historis. Hanya data yang ditulis ke bucket sumber setelah aturan replikasi data dibuat yang direplikasi.

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:

  • Enabled: mereplikasi objek yang dibuat menggunakan enkripsi SSE-KMS.

  • Disabled (default): tidak mereplikasi objek yang dibuat menggunakan enkripsi SSE-KMS.

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:

  • enabled: mengaktifkan RTC.

  • disabled (default): menonaktifkan RTC.

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:

  • AND: mereplikasi objek hanya jika objek memiliki semua tag yang ditentukan dalam aturan filtering.

  • OR: mereplikasi objek jika objek memiliki salah satu tag yang ditentukan dalam aturan filtering.

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

SDK

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:

  • Bucket tujuan memiliki nama yang sama dengan bucket sumber.

  • Bucket tujuan tidak ada.

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

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.