Utilice la operación PutBucketReplication para especificar una regla de replicación de datos en un bucket. OSS admite cross-region replication (CRR) y replicación en la misma región (SRR).
Notas de uso
La replicación de datos copia objetos de forma asíncrona desde un bucket de origen hacia un bucket de destino. Esto incluye operaciones como crear, actualizar y eliminar objetos. Tenga en cuenta lo siguiente al utilizar la replicación de datos:
La replicación de datos es asíncrona. El tiempo necesario para replicar los datos al bucket de destino depende del tamaño de los datos y puede variar desde varios minutos hasta varias horas.
El bucket de origen y el bucket de destino no pueden tener el mismo nombre.
Al utilizar cross-region replication, el bucket de origen y el bucket de destino deben estar en centros de datos diferentes. Cuando se usa la replicación en la misma región, ambos buckets deben encontrarse en el mismo centro de datos.
Para obtener más información sobre la replicación de datos, consulte Introduction to cross-region replication y Introduction to same-region replication.
Sintaxis de la solicitud
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 de la solicitud
|
Nombre |
Tipo |
Obligatorio |
Ejemplo |
Descripción |
|
ReplicationConfiguration |
Contenedor |
Sí |
N/A |
Contenedor de las reglas de replicación de datos de un bucket. Nodo padre: Ninguno Nodo hijo: Rule |
|
Rule |
Contenedor |
Sí |
N/A |
Contenedor de una regla de replicación de datos. Nodo padre: ReplicationConfiguration Nodos hijos: Destination, HistoricalObjectReplication, ID, UserTaggings, entre otros |
|
ID |
String |
No |
first |
Identificador único de la regla de replicación de datos. Nodo padre: Rule Nodos hijos: Ninguno |
|
PrefixSet |
Contenedor |
No |
N/A |
Contenedor de prefijos. Puede especificar un máximo de 10 prefijos en cada regla de replicación de datos. Nodo padre: Rule Nodo hijo: Prefix |
|
Prefix |
String |
No |
source1 |
Prefijo de los objetos que se van a replicar. Solo los objetos que coinciden con el prefijo se replican al bucket de destino.
Nodo padre: PrefixSet Nodos hijos: Ninguno |
|
Action |
String |
No |
ALL |
Operaciones que se replican al bucket de destino. Si configura una acción, tanto los datos recién escritos como los históricos se replican según la acción especificada. Puede especificar uno o más de los siguientes valores válidos. Valores válidos:
Nodo padre: Rule Nodos hijos: Ninguno |
|
Destination |
Contenedor |
Sí |
N/A |
Contenedor de la información sobre el bucket de destino. Nodo padre: Rule Nodos hijos: Bucket y Location |
|
Bucket |
String |
Sí |
destbucket |
Bucket de destino para la replicación de datos. Nodo padre: Destination Nodos hijos: Ninguno |
|
Location |
String |
Sí |
oss-cn-hangzhou |
Región donde se encuentra el bucket de destino. Nodo padre: Destination Nodos hijos: Ninguno |
|
TransferType |
String |
Sí |
oss_acc |
Enlace de transmisión de datos utilizado para la replicación. Valores válidos:
Nodo padre: Destination Nodos hijos: Ninguno |
|
HistoricalObjectReplication |
String |
No |
disabled |
Indica si se deben replicar los datos históricos. Determina si los datos existentes en el bucket de origen antes de habilitar la replicación se copian al bucket de destino. Valores válidos:
Nodo padre: Rule Nodos hijos: Ninguno |
|
SyncRole |
String |
Sí |
aliyunramrole |
Rol de RAM que autoriza a OSS para realizar la replicación de datos. La replicación puede efectuarse dentro de la misma cuenta o entre cuentas distintas. En ambos casos, debe otorgar al rol de RAM los permisos de replicación obligatorios; de lo contrario, la tarea de replicación no podrá completarse. Para obtener más información, consulte Data replication permissions. Nodo padre: Rule Nodos hijos: Ninguno |
|
SourceSelectionCriteria |
Contenedor |
No |
N/A |
Contenedor de otras condiciones de filtro que identifican los objetos de origen a replicar. Actualmente, OSS solo admite especificar condiciones de filtro para objetos de origen cifrados con SSE-KMS. Nodo padre: Rule Nodo hijo: SseKmsEncryptedObjects |
|
SseKmsEncryptedObjects |
Contenedor |
No |
N/A |
Contenedor para filtrar objetos cifrados con SSE-KMS. Si especifica SourceSelectionCriteria en la regla de replicación de datos, debe especificar este elemento. Nodo padre: SourceSelectionCriteria Nodo hijo: Status |
|
Status |
String |
No |
Enabled |
Indica si OSS replica objetos creados con cifrado SSE-KMS. Valores válidos:
Nodo padre: SseKmsEncryptedObjects Nodos hijos: Ninguno |
|
EncryptionConfiguration |
Contenedor |
No |
N/A |
Configuración de cifrado para los objetos de destino. Si establece Status en Enabled, debe especificar este elemento. Nodo padre: Rule Nodo hijo: ReplicaKmsKeyID |
|
ReplicaKmsKeyID |
String |
No |
c4d49f85-ee30-426b-a5ed-95e9139d**** |
ID de la clave SSE-KMS. Si establece Status en Enabled, debe especificar este elemento. Nodo padre: EncryptionConfiguration Nodos hijos: Ninguno |
|
RTC |
Contenedor |
No |
N/A |
Estado de la función de control de tiempo de replicación (RTC). Nodo padre: Rule Nodo hijo: Status |
|
Status |
String |
No |
Enabled |
Habilita o deshabilita la función RTC. Esta función solo se puede configurar para cross-region replication. Valores válidos:
Nodo padre: RTC Nodos hijos: Ninguno Nota
Para obtener más información sobre las regiones compatibles con la función RTC, consulte Regions that support RTC. |
|
UserTaggings |
Contenedor |
No |
N/A |
Contenedor de reglas de filtro de etiquetas. Al configurar este elemento, solo los objetos que tienen las etiquetas especificadas se replican al bucket de destino. Cuando configure UserTaggings, debe especificar tanto FilterType como UserTagging. Nodo padre: Rule Nodos hijos: FilterType y UserTagging |
|
FilterType |
String |
No |
OR |
Política de filtro de etiquetas. Este valor distingue entre mayúsculas y minúsculas. Valores válidos:
Nodo padre: UserTaggings Nodos hijos: Ninguno |
|
UserTagging |
Contenedor |
No |
N/A |
Contenedor de un par clave-valor de etiqueta individual. Puede especificar un máximo de 10 etiquetas. Los pares clave-valor que especifique no pueden estar duplicados. Nodo padre: UserTaggings Nodos hijos: Key y Value |
|
Key |
String |
No |
env |
Clave de la etiqueta. La clave puede tener una longitud máxima de 128 caracteres. Este valor distingue entre mayúsculas y minúsculas. La clave puede contener letras, dígitos, espacios y los siguientes caracteres especiales: +‑=._:/ Nodo padre: UserTagging Nodos hijos: Ninguno |
|
Value |
String |
No |
test |
Valor de la etiqueta. El valor puede tener una longitud máxima de 256 caracteres. Este valor distingue entre mayúsculas y minúsculas. El valor puede contener letras, dígitos, espacios y los siguientes caracteres especiales: +‑=._:/ Nodo padre: UserTagging Nodos hijos: Ninguno |
Esta operación también requiere encabezados de solicitud comunes como Host y Date. Para obtener más información, consulte Common request headers.
Encabezados de respuesta
Esta operación solo devuelve encabezados de respuesta comunes. Para obtener más información, consulte Common response headers.
Ejemplos
Ejemplo de solicitud 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>
Ejemplo de solicitud 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>
Ejemplo de respuesta
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
Los SDK correspondientes a esta operación en diferentes lenguajes son los siguientes:
Herramienta de línea de comandos ossutil
Para consultar el comando de ossutil correspondiente a esta operación, consulte put-bucket-replication.
Códigos de error
|
Código de error |
Código de estado HTTP |
Descripción |
|
InvalidTargetBucket |
400 BadRequest |
Este error puede ocurrir por las siguientes razones:
|
|
InvalidTargetLocation |
400 BadRequest |
La ubicación del bucket de destino difiere de la ubicación especificada en el XML de la solicitud. |
|
BucketReplicationAlreadyExist |
400 BadRequest |
Ya existe una relación de replicación desde el bucket de origen hacia el bucket de destino. Para configurar una nueva regla de replicación de datos, elimine primero la regla existente. |
|
BadReplicationLocation |
400 BadRequest |
El centro de datos de destino especificado no es válido. Puede llamar a la operación GetBucketReplicationLocation para obtener los centros de datos de destino válidos. |
|
NoReplicationLocation |
400 BadRequest |
Al utilizar cross-region replication, el centro de datos del bucket de origen no tiene un centro de datos emparejado disponible para este tipo de replicación. Para obtener más información sobre los centros de datos emparejados para cross-region replication, consulte Endpoints and data centers. |
|
TooManyReplicationRules |
400 BadRequest |
Se ha configurado más de una regla de replicación de datos en la solicitud. Solo se puede configurar una regla de replicación de datos por solicitud. |
|
TooManyIncomingReplication |
400 BadRequest |
El número de reglas de replicación de datos configuradas para el bucket ha alcanzado el límite de 100. Elimine las reglas que ya no utilice e inténtelo de nuevo. Se pueden configurar hasta 100 reglas de replicación de datos por bucket. Si sus requisitos empresariales superan este límite, póngase en contacto con technical support. |
|
TooManyOutgoingReplication |
400 BadRequest |
El número de reglas de replicación de datos configuradas para el bucket ha alcanzado el límite de 100. Elimine las reglas que ya no utilice e inténtelo de nuevo. Se pueden configurar hasta 100 reglas de replicación de datos por bucket. Si sus requisitos empresariales superan este límite, póngase en contacto con technical support. |
|
MissingArgument |
400 BadRequest |
No se especificó el enlace de transmisión de datos. |
|
InvalidArgument |
400 BadRequest |
El enlace de transmisión de datos especificado no es compatible. |
|
ReplicationLocationNotSupportRtc |
400 BadRequest |
La función RTC no se puede habilitar en esta región. Para obtener más información sobre las regiones compatibles con la función RTC, consulte RTC regions. |
|
TooManyTaggings |
400 BadRequest |
El número de etiquetas en la regla de replicación de datos configurada para el bucket no puede exceder 10. |
|
DuplicateReplicationRuleTaggings |
400 BadRequest |
La regla de replicación de datos configurada para el bucket contiene etiquetas cuyas claves y valores están duplicados. |
|
DuplicateReplicationRuleTaggingKeys |
400 BadRequest |
FilterType está establecido en AND en la regla de replicación de datos configurada para el bucket y existen claves de etiqueta duplicadas. |