Use a operação PutBucketReplication para especificar uma regra de replicação de dados para um bucket. O OSS suporta a replicação entre regiões (CRR) e a replicação na mesma região (SRR).
Notas de uso
A replicação de dados copia objetos assincronamente de um bucket de origem para um bucket de destino. Isso inclui operações como criação, atualização e exclusão de objetos. Ao usar a replicação de dados, observe o seguinte:
A replicação de dados é assíncrona. O tempo necessário para replicar os dados para o bucket de destino depende do tamanho dos dados e pode variar de alguns minutos a várias horas.
Os buckets de origem e de destino não podem ter o mesmo nome.
Na replicação entre regiões, os buckets de origem e de destino devem estar em data centers diferentes. Na replicação na mesma região, eles devem estar no mesmo data center.
Para mais informações sobre replicação de dados, consulte Introduction to cross-region replication e Introduction to same-region replication.
Sintaxe da solicitação
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>
Elementos da solicitação
|
Nome |
Tipo |
Obrigatório |
Exemplo |
Descrição |
|
ReplicationConfiguration |
Contêiner |
Sim |
N/A |
O contêiner para as regras de replicação de dados de um bucket. Nó pai: Nenhum Nó filho: Rule |
|
Rule |
Contêiner |
Sim |
N/A |
O contêiner para uma regra de replicação de dados. Nó pai: ReplicationConfiguration Nós filhos: Destination, HistoricalObjectReplication, ID, UserTaggings, entre outros. |
|
ID |
String |
Não |
first |
O ID exclusivo da regra de replicação de dados. Nó pai: Rule Nós filhos: Nenhum |
|
PrefixSet |
Contêiner |
Não |
N/A |
O contêiner para prefixos. Especifique no máximo 10 prefixos em cada regra de replicação de dados. Nó pai: Rule Nó filho: Prefix |
|
Prefix |
String |
Não |
source1 |
O prefixo dos objetos a serem replicados. Apenas os objetos correspondentes ao prefixo são replicados para o bucket de destino.
Nó pai: PrefixSet Nós filhos: Nenhum |
|
Action |
String |
Não |
ALL |
As operações replicadas para o bucket de destino. Se configurar uma ação, tanto os dados recém-gravados quanto os históricos serão replicados com base na ação especificada. Especifique um ou mais dos seguintes valores válidos. Valores válidos:
Nó pai: Rule Nós filhos: Nenhum |
|
Destination |
Contêiner |
Sim |
N/A |
O contêiner para informações sobre o bucket de destino. Nó pai: Rule Nós filhos: Bucket e Location |
|
Bucket |
String |
Sim |
destbucket |
O bucket de destino para a replicação de dados. Nó pai: Destination Nós filhos: Nenhum |
|
Location |
String |
Sim |
oss-cn-hangzhou |
A região do bucket de destino. Nó pai: Destination Nós filhos: Nenhum |
|
TransferType |
String |
Sim |
oss_acc |
O link de transmissão de dados usado para a replicação. Valores válidos:
Nó pai: Destination Nós filhos: Nenhum |
|
HistoricalObjectReplication |
String |
Não |
disabled |
Especifica se os dados históricos devem ser replicados. Determina se os dados existentes no bucket de origem antes da ativação da replicação serão replicados para o bucket de destino. Valores válidos:
Nó pai: Rule Nós filhos: Nenhum |
|
SyncRole |
String |
Sim |
aliyunramrole |
A função do RAM autorizada para o OSS usar na replicação de dados. A replicação pode ocorrer na mesma conta ou em contas diferentes. Em ambos os cenários, conceda as permissões de replicação necessárias à função do RAM. Caso contrário, a tarefa não será concluída. Para mais informações, consulte Data replication permissions. Nó pai: Rule Nós filhos: Nenhum |
|
SourceSelectionCriteria |
Contêiner |
Não |
N/A |
O contêiner para outras condições de filtro que identificam os objetos de origem a serem replicados. Atualmente, o OSS suporta a especificação de condições de filtro apenas para objetos de origem criptografados com SSE-KMS. Nó pai: Rule Nó filho: SseKmsEncryptedObjects |
|
SseKmsEncryptedObjects |
Contêiner |
Não |
N/A |
O contêiner para filtrar objetos criptografados com SSE-KMS. Se especificar SourceSelectionCriteria na regra de replicação, especifique este elemento. Nó pai: SourceSelectionCriteria Nó filho: Status |
|
Status |
String |
Não |
Enabled |
Especifica se o OSS replica objetos criados com criptografia SSE-KMS. Valores válidos:
Nó pai: SseKmsEncryptedObjects Nós filhos: Nenhum |
|
EncryptionConfiguration |
Contêiner |
Não |
N/A |
A configuração de criptografia para os objetos de destino. Se definir Status como Enabled, especifique este elemento. Nó pai: Rule Nó filho: ReplicaKmsKeyID |
|
ReplicaKmsKeyID |
String |
Não |
c4d49f85-ee30-426b-a5ed-95e9139d**** |
O ID da chave SSE-KMS. Se definir Status como Enabled, especifique este elemento. Nó pai: EncryptionConfiguration Nós filhos: Nenhum |
|
RTC |
Contêiner |
Não |
N/A |
O status do recurso de controle de tempo de replicação (RTC). Nó pai: Rule Nó filho: Status |
|
Status |
String |
Não |
Enabled |
Ativa ou desativa o recurso RTC. Configure o recurso RTC apenas para replicação entre regiões. Valores válidos:
Nó pai: RTC Nós filhos: Nenhum Nota
Para mais informações sobre as regiões que suportam o recurso RTC, consulte Regions that support RTC. |
|
UserTaggings |
Contêiner |
Não |
N/A |
O contêiner para regras de filtro de tags. Após configurar este elemento, apenas os objetos com as tags especificadas são replicados para o bucket de destino. Ao configurar UserTaggings, especifique FilterType e UserTagging. Nó pai: Rule Nós filhos: FilterType e UserTagging |
|
FilterType |
String |
Não |
OR |
A política de filtro de tags. Este valor diferencia maiúsculas de minúsculas. Valores válidos:
Nó pai: UserTaggings Nós filhos: Nenhum |
|
UserTagging |
Contêiner |
Não |
N/A |
O contêiner para um único par chave-valor de tag. Especifique no máximo 10 tags. Os pares chave-valor especificados não podem ser duplicados. Nó pai: UserTaggings Nós filhos: Key e Value |
|
Key |
String |
Não |
env |
A chave da tag, que pode ter até 128 caracteres. Este valor diferencia maiúsculas de minúsculas. A chave pode conter letras, dígitos, espaços e os seguintes caracteres especiais: +‑=._:/ Nó pai: UserTagging Nós filhos: Nenhum |
|
Value |
String |
Não |
test |
O valor da tag, que pode ter até 256 caracteres. Este valor diferencia maiúsculas de minúsculas. O valor pode conter letras, dígitos, espaços e os seguintes caracteres especiais: +‑=._:/ Nó pai: UserTagging Nós filhos: Nenhum |
Esta operação também requer cabeçalhos de solicitação comuns, como Host e Date. Para mais informações, consulte Common request headers.
Cabeçalhos de resposta
Esta operação retorna apenas cabeçalhos de resposta comuns. Para mais informações, consulte Common response headers.
Exemplos
Exemplo de solicitação 1 (política de filtro 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>
Exemplo de solicitação 2 (política de filtro 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>
Exemplo de resposta
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
Os SDKs para esta operação em diferentes linguagens são os seguintes:
Ferramenta de linha de comando ossutil
Para o comando do ossutil correspondente a esta operação, consulte put-bucket-replication.
Códigos de erro
|
Código de erro |
Código de status HTTP |
Descrição |
|
InvalidTargetBucket |
400 BadRequest |
Este erro pode ocorrer pelos seguintes motivos:
|
|
InvalidTargetLocation |
400 BadRequest |
A localização do bucket de destino difere da especificada no XML da solicitação. |
|
BucketReplicationAlreadyExist |
400 BadRequest |
Já existe uma relação de replicação do bucket de origem para o de destino. Para configurar uma nova regra de replicação, exclua primeiro a regra existente. |
|
BadReplicationLocation |
400 BadRequest |
O data center de destino especificado é inválido. Chame a operação GetBucketReplicationLocation para obter os data centers de destino válidos. |
|
NoReplicationLocation |
400 BadRequest |
Na replicação entre regiões, o data center do bucket de origem não possui um data center pareado. Para mais informações sobre data centers pareados para replicação entre regiões, consulte Endpoints and data centers. |
|
TooManyReplicationRules |
400 BadRequest |
Mais de uma regra de replicação de dados está configurada na solicitação. Configure apenas uma regra de replicação de dados por solicitação. |
|
TooManyIncomingReplication |
400 BadRequest |
O número de regras de replicação configuradas para o bucket atingiu o limite de 100. Exclua as regras não utilizadas e tente novamente. É possível configurar até 100 regras de replicação para um bucket. Se os requisitos do seu negócio excederem esse limite, entre em contato com o suporte técnico. |
|
TooManyOutgoingReplication |
400 BadRequest |
O número de regras de replicação configuradas para o bucket atingiu o limite de 100. Exclua as regras não utilizadas e tente novamente. É possível configurar até 100 regras de replicação para um bucket. Se os requisitos do seu negócio excederem esse limite, entre em contato com o suporte técnico. |
|
MissingArgument |
400 BadRequest |
O link de transmissão de dados não foi especificado. |
|
InvalidArgument |
400 BadRequest |
O link de transmissão de dados especificado não é suportado. |
|
ReplicationLocationNotSupportRtc |
400 BadRequest |
O recurso RTC não pode ser ativado nesta região. Para mais informações sobre as regiões que suportam o recurso RTC, consulte RTC regions. |
|
TooManyTaggings |
400 BadRequest |
O número de tags na regra de replicação configurada para o bucket não pode exceder 10. |
|
DuplicateReplicationRuleTaggings |
400 BadRequest |
A regra de replicação configurada para o bucket contém tags com chaves e valores duplicados. |
|
DuplicateReplicationRuleTaggingKeys |
400 BadRequest |
O FilterType está definido como AND na regra de replicação configurada para o bucket, e existem chaves de tag duplicadas. |