Utilisez l'opération PutBucketReplication pour spécifier une règle de réplication de données pour un bucket. OSS prend en charge la réplication inter-régions (CRR) et la réplication intra-région (SRR).
Notes d'utilisation
La réplication de données copie de manière asynchrone les objets d'un bucket source vers un bucket de destination. Cela inclut des opérations telles que la création, la mise à jour et la suppression d'objets. Tenez compte des points suivants lorsque vous utilisez la réplication de données :
La réplication de données est asynchrone. Le temps nécessaire pour répliquer les données vers le bucket de destination dépend de la taille des données et peut varier de quelques minutes à plusieurs heures.
Le bucket source et le bucket de destination ne peuvent pas avoir le même nom.
Lorsque vous utilisez la réplication inter-régions, le bucket source et le bucket de destination doivent se trouver dans des centres de données différents. Lorsque vous utilisez la réplication intra-région, le bucket source et le bucket de destination doivent se trouver dans le même centre de données.
Pour plus d'informations sur la réplication de données, consultez Présentation de la réplication inter-régions et Présentation de la réplication intra-région.
Syntaxe de la requête
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>
Éléments de la requête
|
Nom |
Type |
Obligatoire |
Exemple |
Description |
|
ReplicationConfiguration |
Conteneur |
Oui |
N/A |
Conteneur pour les règles de réplication de données d'un bucket. Nœud parent : Aucun Nœud enfant : Rule |
|
Rule |
Conteneur |
Oui |
N/A |
Conteneur pour une règle de réplication de données. Nœud parent : ReplicationConfiguration Nœuds enfants : Destination, HistoricalObjectReplication, ID, UserTaggings, etc. |
|
ID |
Chaîne |
Non |
first |
Identifiant unique de la règle de réplication de données. Nœud parent : Rule Nœuds enfants : Aucun |
|
PrefixSet |
Conteneur |
Non |
N/A |
Conteneur pour les préfixes. Vous pouvez spécifier un maximum de 10 préfixes par règle de réplication de données. Nœud parent : Rule Nœud enfant : Prefix |
|
Prefix |
Chaîne |
Non |
source1 |
Préfixe des objets à répliquer. Seuls les objets correspondant au préfixe sont répliqués vers le bucket de destination.
Nœud parent : PrefixSet Nœuds enfants : Aucun |
|
Action |
Chaîne |
Non |
ALL |
Opérations à répliquer vers le bucket de destination. Si vous configurez une action, les nouvelles données écrites ainsi que les données historiques sont répliquées en fonction de l'action spécifiée. Spécifiez une ou plusieurs des valeurs valides suivantes. Valeurs valides :
Nœud parent : Rule Nœuds enfants : Aucun |
|
Destination |
Conteneur |
Oui |
N/A |
Conteneur pour les informations relatives au bucket de destination. Nœud parent : Rule Nœuds enfants : Bucket et Location |
|
Bucket |
Chaîne |
Oui |
destbucket |
Bucket de destination pour la réplication de données. Nœud parent : Destination Nœuds enfants : Aucun |
|
Location |
Chaîne |
Oui |
oss-cn-hangzhou |
Région où se trouve le bucket de destination. Nœud parent : Destination Nœuds enfants : Aucun |
|
TransferType |
Chaîne |
Oui |
oss_acc |
Lien de transmission de données utilisé pour la réplication de données. Valeurs valides :
Nœud parent : Destination Nœuds enfants : Aucun |
|
HistoricalObjectReplication |
Chaîne |
Non |
disabled |
Indique si les données historiques doivent être répliquées. Cela détermine si les données présentes dans le bucket source avant l'activation de la réplication de données sont répliquées vers le bucket de destination. Valeurs valides :
Nœud parent : Rule Nœuds enfants : Aucun |
|
SyncRole |
Chaîne |
Oui |
aliyunramrole |
Rôle RAM que vous autorisez OSS à utiliser pour la réplication de données. La réplication de données peut être effectuée au sein du même compte ou entre différents comptes. Pour les deux scénarios, vous devez accorder au rôle RAM les autorisations de réplication requises. Sinon, la tâche de réplication ne peut pas être achevée. Pour plus d'informations, consultez Autorisations de réplication de données. Nœud parent : Rule Nœuds enfants : Aucun |
|
SourceSelectionCriteria |
Conteneur |
Non |
N/A |
Conteneur pour d'autres conditions de filtre identifiant les objets source à répliquer. OSS prend actuellement en charge la spécification de conditions de filtre uniquement pour les objets source chiffrés avec SSE-KMS. Nœud parent : Rule Nœud enfant : SseKmsEncryptedObjects |
|
SseKmsEncryptedObjects |
Conteneur |
Non |
N/A |
Conteneur pour le filtrage des objets chiffrés avec SSE-KMS. Si vous spécifiez SourceSelectionCriteria dans la règle de réplication de données, vous devez spécifier cet élément. Nœud parent : SourceSelectionCriteria Nœud enfant : Status |
|
Status |
Chaîne |
Non |
Enabled |
Indique si OSS réplique les objets créés avec le chiffrement SSE-KMS. Valeurs valides :
Nœud parent : SseKmsEncryptedObjects Nœuds enfants : Aucun |
|
EncryptionConfiguration |
Conteneur |
Non |
N/A |
Configuration de chiffrement pour les objets de destination. Si vous définissez Status sur Enabled, vous devez spécifier cet élément. Nœud parent : Rule Nœud enfant : ReplicaKmsKeyID |
|
ReplicaKmsKeyID |
Chaîne |
Non |
c4d49f85-ee30-426b-a5ed-95e9139d**** |
ID de la clé SSE-KMS. Si vous définissez Status sur Enabled, vous devez spécifier cet élément. Nœud parent : EncryptionConfiguration Nœuds enfants : Aucun |
|
RTC |
Conteneur |
Non |
N/A |
Statut de la fonctionnalité RTC (Replication Time Control). Nœud parent : Rule Nœud enfant : Status |
|
Status |
Chaîne |
Non |
Enabled |
Active ou désactive la fonctionnalité RTC. Vous pouvez configurer la fonctionnalité RTC uniquement pour la réplication inter-régions. Valeurs valides :
Nœud parent : RTC Nœuds enfants : Aucun Remarque
Pour plus d'informations sur les régions qui prennent en charge la fonctionnalité RTC, consultez Régions prenant en charge RTC. |
|
UserTaggings |
Conteneur |
Non |
N/A |
Conteneur pour les règles de filtre de tags. Après avoir configuré cet élément, seuls les objets possédant les tags spécifiés sont répliqués vers le bucket de destination. Lorsque vous configurez UserTaggings, vous devez spécifier à la fois FilterType et UserTagging. Nœud parent : Rule Nœuds enfants : FilterType et UserTagging |
|
FilterType |
Chaîne |
Non |
OR |
Politique de filtre de tags. Cette valeur est sensible à la casse. Valeurs valides :
Nœud parent : UserTaggings Nœuds enfants : Aucun |
|
UserTagging |
Conteneur |
Non |
N/A |
Conteneur pour une paire clé-valeur de tag unique. Vous pouvez spécifier un maximum de 10 tags. Les paires clé-valeur de tags que vous spécifiez ne peuvent pas être dupliquées. Nœud parent : UserTaggings Nœuds enfants : Key et Value |
|
Key |
Chaîne |
Non |
env |
Clé du tag. La clé du tag peut contenir jusqu'à 128 caractères. Cette valeur est sensible à la casse. La clé du tag peut contenir des lettres, des chiffres, des espaces et les caractères spéciaux suivants : +‑=._:/ Nœud parent : UserTagging Nœuds enfants : Aucun |
|
Value |
Chaîne |
Non |
test |
Valeur du tag. La valeur du tag peut contenir jusqu'à 256 caractères. Cette valeur est sensible à la casse. La valeur du tag peut contenir des lettres, des chiffres, des espaces et les caractères spéciaux suivants : +‑=._:/ Nœud parent : UserTagging Nœuds enfants : Aucun |
Cette opération nécessite également des en-têtes de requête courants tels que Host et Date. Pour plus d'informations, consultez En-têtes de requête courants.
En-têtes de réponse
Cette opération renvoie uniquement des en-têtes de réponse courants. Pour plus d'informations, consultez En-têtes de réponse courants.
Exemples
Exemple de requête 1 (politique de filtre 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>
Exemple de requête 2 (politique de filtre 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>
Exemple de réponse
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
Les SDK pour cette opération dans différents langages sont les suivants :
Outil de ligne de commande ossutil
Pour la commande ossutil correspondant à cette opération, consultez put-bucket-replication.
Codes d'erreur
|
Code d'erreur |
Code d'état HTTP |
Description |
|
InvalidTargetBucket |
400 BadRequest |
Cette erreur peut se produire pour les raisons suivantes :
|
|
InvalidTargetLocation |
400 BadRequest |
L'emplacement du bucket de destination diffère de celui spécifié dans le XML de la requête. |
|
BucketReplicationAlreadyExist |
400 BadRequest |
Une relation de réplication existe déjà du bucket source vers le bucket de destination. Pour configurer une nouvelle règle de réplication de données, supprimez d'abord la règle existante. |
|
BadReplicationLocation |
400 BadRequest |
Le centre de données de destination spécifié n'est pas valide. Vous pouvez appeler l'opération GetBucketReplicationLocation pour obtenir les centres de données de destination valides. |
|
NoReplicationLocation |
400 BadRequest |
Lorsque vous utilisez la réplication inter-régions, le centre de données du bucket source ne dispose pas d'un centre de données apparié pour la réplication inter-régions. Pour plus d'informations sur les centres de données appariés pour la réplication inter-régions, consultez Points de terminaison et centres de données. |
|
TooManyReplicationRules |
400 BadRequest |
Plus d'une règle de réplication de données est configurée dans la requête. Vous ne pouvez configurer qu'une seule règle de réplication de données par requête. |
|
TooManyIncomingReplication |
400 BadRequest |
Le nombre de règles de réplication de données configurées pour le bucket a atteint la limite de 100. Supprimez les règles de réplication de données inutilisées et réessayez. Vous pouvez configurer jusqu'à 100 règles de réplication de données pour un bucket. Si vos besoins métier dépassent cette limite, veuillez contacter le support technique. |
|
TooManyOutgoingReplication |
400 BadRequest |
Le nombre de règles de réplication de données configurées pour le bucket a atteint la limite de 100. Supprimez les règles de réplication de données inutilisées et réessayez. Vous pouvez configurer jusqu'à 100 règles de réplication de données pour un bucket. Si vos besoins métier dépassent cette limite, veuillez contacter le support technique. |
|
MissingArgument |
400 BadRequest |
Le lien de transmission de données n'est pas spécifié. |
|
InvalidArgument |
400 BadRequest |
Le lien de transmission de données spécifié n'est pas pris en charge. |
|
ReplicationLocationNotSupportRtc |
400 BadRequest |
La fonctionnalité RTC ne peut pas être activée dans cette région. Pour plus d'informations sur les régions qui prennent en charge la fonctionnalité RTC, consultez Régions RTC. |
|
TooManyTaggings |
400 BadRequest |
Le nombre de tags dans la règle de réplication de données configurée pour le bucket ne peut pas dépasser 10. |
|
DuplicateReplicationRuleTaggings |
400 BadRequest |
La règle de réplication de données configurée pour le bucket contient des tags dont les clés et les valeurs sont dupliquées. |
|
DuplicateReplicationRuleTaggingKeys |
400 BadRequest |
FilterType est défini sur AND dans la règle de réplication de données configurée pour le bucket, et des clés de tag dupliquées existent. |