Bir paket için veri çoğaltma kuralı belirtmek üzere PutBucketReplication işlemini kullanın. OSS, bölgeler arası çoğaltmayı (CRR) ve aynı bölge içinde çoğaltmayı (SRR) destekler.
Kullanım notları
Veri çoğaltma, nesneleri kaynak paketten hedef pakete eşzamansız olarak kopyalar. Bu süreç; nesne oluşturma, güncelleme ve silme gibi işlemleri kapsar. Veri çoğaltmayı kullanırken aşağıdaki hususlara dikkat edin:
Veri çoğaltma eşzamansızdır. Verilerin hedef pakete kopyalanması için gereken süre, veri boyutuna bağlı olarak birkaç dakikadan birkaç saate kadar değişebilir.
Kaynak paket ile hedef paketin adı aynı olamaz.
Bölgeler arası çoğaltma kullanırken kaynak ve hedef paketlerin farklı veri merkezlerinde bulunması gerekir. Aynı bölge içinde çoğaltma kullanırken ise her iki paketin de aynı veri merkezinde yer alması şarttır.
Veri çoğaltma hakkında daha fazla bilgi için bkz. Bölgeler arası çoğaltmaya giriş ve Aynı bölge içinde çoğaltmaya giriş.
İstek sözdizimi
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>
İstek öğeleri
|
Ad |
Tür |
Gerekli |
Örnek |
Açıklama |
|
ReplicationConfiguration |
Konteyner |
Evet |
Yok |
Paketin veri çoğaltma kuralları için kullanılan konteyner. Üst düğüm: Yok Alt düğüm: Rule |
|
Rule |
Konteyner |
Evet |
Yok |
Veri çoğaltma kuralı için kullanılan konteyner. Üst düğüm: ReplicationConfiguration Alt düğümler: Destination, HistoricalObjectReplication, ID, UserTaggings ve diğerleri |
|
ID |
Dize |
Hayır |
first |
Veri çoğaltma kuralının benzersiz kimliği. Üst düğüm: Rule Alt düğümler: Yok |
|
PrefixSet |
Konteyner |
Hayır |
Yok |
Önekler için kullanılan konteyner. Her veri çoğaltma kuralında en fazla 10 önek belirtebilirsiniz. Üst düğüm: Rule Alt düğüm: Prefix |
|
Prefix |
Dize |
Hayır |
source1 |
Çoğaltılacak nesnelerin öneki. Yalnızca önekle eşleşen nesneler hedef pakete çoğaltılır.
Üst düğüm: PrefixSet Alt düğümler: Yok |
|
Action |
Dize |
Hayır |
ALL |
Hedef pakete çoğaltılacak işlemler. Bir eylem yapılandırırsanız hem yeni yazılan veriler hem de geçmiş veriler belirtilen eyleme göre çoğaltılır. Aşağıdaki geçerli değerlerden birini veya birden fazlasını belirtebilirsiniz. Geçerli değerler:
Üst düğüm: Rule Alt düğümler: Yok |
|
Destination |
Konteyner |
Evet |
Yok |
Hedef paket bilgileri için kullanılan konteyner. Üst düğüm: Rule Alt düğümler: Bucket ve Location |
|
Bucket |
Dize |
Evet |
destbucket |
Veri çoğaltma için hedef paket. Üst düğüm: Destination Alt düğümler: Yok |
|
Location |
Dize |
Evet |
oss-cn-hangzhou |
Hedef paketin bulunduğu bölge. Üst düğüm: Destination Alt düğümler: Yok |
|
TransferType |
Dize |
Evet |
oss_acc |
Veri çoğaltma için kullanılan veri iletim bağlantısı. Geçerli değerler:
Üst düğüm: Destination Alt düğümler: Yok |
|
HistoricalObjectReplication |
Dize |
Hayır |
disabled |
Geçmiş verilerin çoğaltılıp çoğaltılmayacağını belirtir. Bu ayar, veri çoğaltma etkinleştirilmeden önce kaynak pakette bulunan verilerin hedef pakete kopyalanıp kopyalanmayacağını belirler. Geçerli değerler:
Üst düğüm: Rule Alt düğümler: Yok |
|
SyncRole |
Dize |
Evet |
aliyunramrole |
OSS'in veri çoğaltma için kullanmasına yetki verdiğiniz RAM rolü. Veri çoğaltma aynı hesap içinde veya farklı hesaplar arasında gerçekleştirilebilir. Her iki senaryoda da RAM rolüne gerekli çoğaltma izinlerini vermelisiniz; aksi takdirde çoğaltma görevi tamamlanamaz. Daha fazla bilgi için bkz. Veri çoğaltma izinleri. Üst düğüm: Rule Alt düğümler: Yok |
|
SourceSelectionCriteria |
Konteyner |
Hayır |
Yok |
Çoğaltılacak kaynak nesneleri tanımlayan diğer filtre koşulları için kullanılan konteyner. OSS şu anda yalnızca SSE-KMS ile şifrelenmiş kaynak nesneler için filtre koşulları belirlemeyi desteklemektedir. Üst düğüm: Rule Alt düğüm: SseKmsEncryptedObjects |
|
SseKmsEncryptedObjects |
Konteyner |
Hayır |
Yok |
SSE-KMS ile şifrelenmiş nesneleri filtrelemek için kullanılan konteyner. Veri çoğaltma kuralında SourceSelectionCriteria belirtirseniz bu öğeyi de belirtmeniz gerekir. Üst düğüm: SourceSelectionCriteria Alt düğüm: Status |
|
Status |
Dize |
Hayır |
Enabled |
OSS'in SSE-KMS şifrelemesiyle oluşturulan nesneleri çoğaltıp çoğaltmayacağını belirtir. Geçerli değerler:
Üst düğüm: SseKmsEncryptedObjects Alt düğümler: Yok |
|
EncryptionConfiguration |
Konteyner |
Hayır |
Yok |
Hedef nesneler için şifreleme yapılandırması. Status değerini Enabled olarak ayarlarsanız bu öğeyi belirtmeniz gerekir. Üst düğüm: Rule Alt düğüm: ReplicaKmsKeyID |
|
ReplicaKmsKeyID |
Dize |
Hayır |
c4d49f85-ee30-426b-a5ed-95e9139d**** |
SSE-KMS anahtarının kimliği. Status değerini Enabled olarak ayarlarsanız bu öğeyi belirtmeniz gerekir. Üst düğüm: EncryptionConfiguration Alt düğümler: Yok |
|
RTC |
Konteyner |
Hayır |
Yok |
Çoğaltma zamanı kontrolü (RTC) özelliğinin durumu. Üst düğüm: Rule Alt düğüm: Status |
|
Status |
Dize |
Hayır |
Enabled |
RTC özelliğini etkinleştirir veya devre dışı bırakır. RTC özelliğini yalnızca bölgeler arası çoğaltma için yapılandırabilirsiniz. Geçerli değerler:
Üst düğüm: RTC Alt düğümler: Yok Not
RTC özelliğini destekleyen bölgeler hakkında daha fazla bilgi için bkz. RTC'yi destekleyen bölgeler. |
|
UserTaggings |
Konteyner |
Hayır |
Yok |
Etiket filtreleme kuralları için kullanılan konteyner. Bu öğeyi yapılandırdığınızda yalnızca belirtilen etiketlere sahip nesneler hedef pakete çoğaltılır. UserTaggings yapılandırırken hem FilterType hem de UserTagging belirtmeniz gerekir. Üst düğüm: Rule Alt düğümler: FilterType ve UserTagging |
|
FilterType |
Dize |
Hayır |
OR |
Etiket filtreleme ilkesi. Bu değer büyük/küçük harfe duyarlıdır. Geçerli değerler:
Üst düğüm: UserTaggings Alt düğümler: Yok |
|
UserTagging |
Konteyner |
Hayır |
Yok |
Tek bir etiket anahtar-değer çifti için kullanılan konteyner. En fazla 10 etiket belirtebilirsiniz. Belirttiğiniz etiket anahtar-değer çiftleri yinelenemez. Üst düğüm: UserTaggings Alt düğümler: Key ve Value |
|
Key |
Dize |
Hayır |
env |
Etiket anahtarı. Etiket anahtarı uzunluğu en fazla 128 karakter olabilir. Bu değer büyük/küçük harfe duyarlıdır. Etiket anahtarı harf, rakam, boşluk ve şu özel karakterleri içerebilir: +‑=._:/ Üst düğüm: UserTagging Alt düğümler: Yok |
|
Value |
Dize |
Hayır |
test |
Etiket değeri. Etiket değeri uzunluğu en fazla 256 karakter olabilir. Bu değer büyük/küçük harfe duyarlıdır. Etiket değeri harf, rakam, boşluk ve şu özel karakterleri içerebilir: +‑=._:/ Üst düğüm: UserTagging Alt düğümler: Yok |
Bu işlem ayrıca Host ve Date gibi ortak istek üstbilgilerini de gerektirir. Daha fazla bilgi için bkz. Ortak istek üstbilgileri.
Yanıt üstbilgileri
Bu işlem yalnızca ortak yanıt üstbilgilerini döndürür. Daha fazla bilgi için bkz. Ortak yanıt üstbilgileri.
Örnekler
İstek örneği 1 (OR filtre ilkesi)
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>
İstek örneği 2 (AND filtre ilkesi)
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>
Yanıt örneği
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
Bu işlem için farklı dillerdeki SDK'lar aşağıda listelenmiştir:
ossutil komut satırı aracı
Bu işleme karşılık gelen ossutil komutu için bkz. put-bucket-replication.
Hata kodları
|
Hata kodu |
HTTP durum kodu |
Açıklama |
|
InvalidTargetBucket |
400 BadRequest |
Bu hata aşağıdaki nedenlerle oluşabilir:
|
|
InvalidTargetLocation |
400 BadRequest |
Hedef paketin konumu, istek XML'inde belirtilen konumdan farklıdır. |
|
BucketReplicationAlreadyExist |
400 BadRequest |
Kaynak paketten hedef pakete zaten bir çoğaltma ilişkisi mevcuttur. Yeni bir veri çoğaltma kuralı yapılandırmak için önce mevcut kuralı silin. |
|
BadReplicationLocation |
400 BadRequest |
Belirtilen hedef veri merkezi geçersizdir. Geçerli hedef veri merkezlerini elde etmek için GetBucketReplicationLocation işlemi çağrılabilir. |
|
NoReplicationLocation |
400 BadRequest |
Bölgeler arası çoğaltma kullanırken, kaynak paketin veri merkezinin bölgeler arası çoğaltma için eşleştirilmiş bir veri merkezi bulunmamaktadır. Bölgeler arası çoğaltma için eşleştirilmiş veri merkezleri hakkında daha fazla bilgi için bkz. Uç noktalar ve veri merkezleri. |
|
TooManyReplicationRules |
400 BadRequest |
İstekte birden fazla veri çoğaltma kuralı yapılandırılmıştır. Tek bir istekte yalnızca bir veri çoğaltma kuralı yapılandırabilirsiniz. |
|
TooManyIncomingReplication |
400 BadRequest |
Paket için yapılandırılan veri çoğaltma kuralı sayısı 100 sınırına ulaşmıştır. Artık kullanılmayan veri çoğaltma kurallarını silip tekrar deneyin. Bir paket için en fazla 100 veri çoğaltma kuralı yapılandırabilirsiniz. İş gereksinimleriniz bu sınırı aşarsa lütfen teknik destek ile iletişime geçin. |
|
TooManyOutgoingReplication |
400 BadRequest |
Paket için yapılandırılan veri çoğaltma kuralı sayısı 100 sınırına ulaşmıştır. Artık kullanılmayan veri çoğaltma kurallarını silip tekrar deneyin. Bir paket için en fazla 100 veri çoğaltma kuralı yapılandırabilirsiniz. İş gereksinimleriniz bu sınırı aşarsa lütfen teknik destek ile iletişime geçin. |
|
MissingArgument |
400 BadRequest |
Veri iletim bağlantısı belirtilmemiştir. |
|
InvalidArgument |
400 BadRequest |
Belirtilen veri iletim bağlantısı desteklenmemektedir. |
|
ReplicationLocationNotSupportRtc |
400 BadRequest |
Bu bölgede RTC özelliği etkinleştirilemez. RTC özelliğini destekleyen bölgeler hakkında daha fazla bilgi için bkz. RTC bölgeleri. |
|
TooManyTaggings |
400 BadRequest |
Paket için yapılandırılan veri çoğaltma kuralındaki etiket sayısı 10'u aşamaz. |
|
DuplicateReplicationRuleTaggings |
400 BadRequest |
Paket için yapılandırılan veri çoğaltma kuralı, anahtarları ve değerleri yinelenen etiketler içermektedir. |
|
DuplicateReplicationRuleTaggingKeys |
400 BadRequest |
Paket için yapılandırılan veri çoğaltma kuralında FilterType AND olarak ayarlanmış ve yinelenen etiket anahtarları bulunmaktadır. |