功能描述
PUT Bucket replication 用于向已启用版本控制的存储桶中配置存储桶复制规则。如果存储桶已经配置了存储桶复制规则,那么该请求会替换现有配置。
注意
授权说明
请求
请求示例
PUT /?replication HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateContent-MD5: MD5Authorization: Auth Stringrequest body
说明
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com,其中 <BucketName-APPID> 为带 APPID 后缀的存储桶名字,例如 examplebucket-1250000000,详情请参见 存储桶概览 > 基本信息 和 存储桶概述 > 存储桶命名规范 文档;<Region> 为 COS 的可用地域,详情请参见 地域和访问域名 文档。
Authorization: Auth String(详情请参见 请求签名 文档)。
请求头
请求体
用户在请求体中设置存储桶复制的具体配置信息。配置信息包括存储桶复制规则的启用状态、优先级、复制内容、筛选范围、目标存储桶的存储桶名称和存储地域等信息。
<ReplicationConfiguration><Role>qcs::cam::uin/<OwnerUin>:uin/<SubUin></Role><Rule><Status></Status><Priority></Priority><ID></ID><Prefix></Prefix><Destination><Bucket>qcs::cos:<Region>::<BucketName-APPID></Bucket><StorageClass></StorageClass></Destination><DeleteMarkerReplication><Status></Status></DeleteMarkerReplication></Rule></ReplicationConfiguration>
具体内容描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
ReplicationConfiguration | 无 | 说明所有复制配置信息 | Container | 是 |
Role | ReplicationConfiguration | 发起者身份标示: qcs::cam::uin/<OwnerUin>:uin/<SubUin> | String | 是 |
Rule | ReplicationConfiguration | 具体配置信息,最多支持1000个 | Container | 是 |
ID | ReplicationConfiguration.Rule | 用来标注具体 Rule 的名称 | String | 否 |
Status | ReplicationConfiguration.Rule | 标识 Rule 是否生效,枚举值:Enabled、Disabled | String | 否 |
Priority | ReplicationConfiguration.Rule | 执行优先级,用于处理目标存储桶相同、复制规则命中同一个对象的情况。 注意: 支持设置 1-1000 范围内的正整数,不同规则的 Priority 值不可重复。 存储桶复制规则必须全部携带 Priority 或 全部不携带 Priority。 所有规则都携带 Priority 时,当目标存储桶相同时,不同规则的筛选 prefix 可以存在重叠。不同规则命中同一个对象时,会优先触发 Priority 值最小的规则。 所有规则都不携带 Priority 时,不同规则的筛选 prefix 不允许重叠。 | Integer | 否。同一个存储桶的规则必须全部包含Priority 或者全部不包含 Priority。 |
Filter | ReplicationConfiguration.Rule | 筛选待复制对象。存储桶功能将复制符合 Filter 中设置的前缀、标签的对象 | Container | 否 |
And | ReplicationConfiguration.Rule | 筛选待复制对象时,如果同时需要前缀与对象标签条件,或需要使用多个对象标签条件时,需要用 And 包装 | Container | 否 |
Prefix | ReplicationConfiguration.Rule 或 ReplicationConfiguration.Rule.Filter 或ReplicationConfiguration.Rule.Filter.And | 需要复制的对象前缀 | String | 否 |
Destination | ReplicationConfiguration.Rule | 目标存储桶信息 | Container | 是 |
Bucket | ReplicationConfiguration.Rule.Destination | 资源标识符: qcs::cos:<Region>::<BucketName-APPID> | String | 是 |
StorageClass | ReplicationConfiguration.Rule.Destination | 目标存储类型,代表存储到目标存储桶使用的存储类型。例如 STANDARD 、STANDARD_IA 等。说明: 满足以下任意一种情况,则 StorageClass 为必选参数: 源存储桶或目标存储桶,一个是多 AZ 桶、一个是单 AZ 桶。 源存储桶和目标存储桶,一个开启了智能分层,一个未开启智能分层。 如果不填写 StorageClass 参数,投递到目标存储桶的存储类型默认和源存储桶保持一致。 | String | 否 |
DeleteMarkerReplication | ReplicationConfiguration.Rule | 是否同步删除标记 | Container | 否 |
Status | ReplicationConfiguration.Rule. DeleteMarkerReplication | 是否同步删除标记,支持 Disabled 或 Enabled 。默认值为 Enabled ,即同步删除标记 | String | 否 |
响应
响应头
响应体
该响应体为空。
错误码
实际案例
案例一:根据前缀筛选的存储桶复制规则
请求
以下请求是对存储桶
originbucket-1250000000
添加一条存储桶复制配置。该存储桶复制配置中,指定复制对象前缀为 testPrefix
的对象,目标存储桶为广州的 destinationbucket-1250000000
。PUT /?replication HTTP/1.1Date: Mon, 28 Aug 2017 02:53:38 GMTAuthorization: q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1503888878;1503889238&q-key-time=1503888878;1503889238&q-header-list=host&q-url-param-list=replication&q-signature=****************************************Content-MD5: AAq9nzrpsz5LJ4UEe1f6Q==Host: originbucket-1250000000.cos.ap-guangzhou.myqcloud.comContent-Length: 312<ReplicationConfiguration><Role>qcs::cam::uin/100000000001:uin/100000000001</Role><Rule><Status>Enabled</Status><ID>RuleId_01</ID><Prefix>testPrefix</Prefix><Destination><Bucket>qcs::cos:ap-guangzhou::destinationbucket-1250000000</Bucket></Destination></Rule></ReplicationConfiguration>
响应
上述请求后,COS 返回以下响应,表明当前该跨地域配置已经成功设置完毕。
HTTP/1.1 200 OKContent-Type: application/xmlContent-Length: 0Connection: keep-aliveDate: Fri, 14 Apr 2019 07:06:19 GMTServer: tencent-cosx-cos-bucket-region: ap-guangzhoux-cos-request-id: NWQwMzQ3NmJfMjRiMjU4NjRfOTM4NV82ZDU1****x-cos-trace-id: OGVmYzZiMmQzYjA2OWNhODk0NTRkMTBiOWVmMDAxODc0OWRkZjk0ZDM1NmI1M2E2MTRlY2MzZDhmNmI5MWI1OWE4OGMxZjNjY2JiNTBmMTVmMWY1MzAzYzkyZGQ2ZWM4MzUyZTg1NGRhNWY0NTJiOGUyNTViYzgyNzgxZTEwOTY=
案例二:根据标签筛选的存储桶复制规则
请求
以下 PUT Bucket replication 请求向存储桶
originbucket-1250000000
中添加一条存储桶复制配置。该存储桶复制配置中,指定复制前缀为test1
、标签为<111, 232>
的对象,目标存储桶为广州的destinationbucket-1250000000
。设置标签筛选后,规则内的同步删除对象必须置为 Disabled。PUT /?replication HTTP/1.1Host: originbucket-1250000000.cos.ap-guangzhou.myqcloud.comAuthorization: q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1667303319;1668303369&q-key-time=1667303319;1668303369&q-url-param-list=replication&q-header-list=content-md5;host&q-signature=****************************************Content-Md5: Hmy/6lHINHLKhp/PY****Content-Length: 674Content-Type: application/x-www-form-urlencoded<ReplicationConfiguration><Role>qcs::cam::uin/100000000001:uin/100000000001</Role><Rule><Status>Enabled</Status><Filter><And><Prefix>test1</Prefix><Tag><Key>111</Key><Value>222</Value></Tag></And></Filter><Destination><Bucket>qcs::cos:ap-guangzhou::destinationbucket-1250000000</Bucket><StorageClass>Standard</StorageClass></Destination><DeleteMarkerReplication><Status>Disabled</Status></DeleteMarkerReplication></Rule></ReplicationConfiguration>
响应
上述请求后,COS 返回以下响应,表明当前该跨地域配置已经成功设置完毕。
HTTP/1.1 200 OKContent-Length: 0Connection: keep-aliveDate: Tue, 01 Nov 2022 11:49:48 GMTServer: tencent-cosx-cos-bucket-region: ap-guangzhoux-cos-request-id: NjM2MTA3ZGNfNmE1MGI3MDlfYWU5N1*******
案例三:设置多个复制到同一目标存储桶、筛选前缀有重叠的规则,通过 Priority 设置生效的优先级
请求
以下 PUT Bucket replication 请求向存储桶
originbucket-1250000000
中添加两条存储桶复制配置规则。规则1:指定复制前缀为
test1
、标签为<a,a>
的对象,目标存储桶为广州的destinationbucket-1250000000
,目标存储类型为Standard
,规则内的同步删除对象必须置为 Disabled,Priority 为1。规则2:指定复制前缀为
test1
、标签为<b,b>
的对象,目标存储桶为广州的destinationbucket-1250000000
,目标存储类型为Standard_IA
,规则内的同步删除对象必须置为 Disabled,Priority 为2。用户向存储桶
originbucket-1250000000
上传对象test1/temp.txt
,上传同时打标签<a,a>
和<b,b>
,此时根据 Priority,规则1优先生效,复制到存储桶destinationbucket-1250000000
对象的类型为Standard
。PUT /?replication HTTP/1.1Host: originbucket-1250000000.cos.ap-guangzhou.myqcloud.comAuthorization: q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1667309117;1668309167&q-key-time=1667309117;1668309167&q-url-param-list=replication&q-header-list=content-md5;host&q-signature=****************************************Content-Md5: OngWIL6wb2pnJZHk*****Content-Length: 1351Content-Type: application/x-www-form-urlencoded<ReplicationConfiguration><Role>qcs::cam::uin/100000000001:uin/100000000001</Role><Rule><Status>Enabled</Status><Priority>1</Priority><Filter><And><Prefix>test1</Prefix><Tag><Key>a</Key><Value>a</Value></Tag></And></Filter><Destination><Bucket>qcs::cos:ap-guangzhou::destinationbucket-1250000000</Bucket><StorageClass>Standard</StorageClass></Destination><DeleteMarkerReplication><Status>Disabled</Status></DeleteMarkerReplication></Rule><Role>qcs::cam::uin/100000000001:uin/100000000001</Role><Rule><Status>Enabled</Status><Priority>2</Priority><Filter><And><Prefix>test1</Prefix><Tag><Key>b</Key><Value>b</Value></Tag></And></Filter><Destination><Bucket>qcs::cos:ap-guangzhou::destinationbucket-1250000000</Bucket><StorageClass>Standard_IA</StorageClass></Destination><DeleteMarkerReplication><Status>Disabled</Status></DeleteMarkerReplication></Rule></ReplicationConfiguration>
响应
HTTP/1.1 200 OKContent-Length: 0Connection: keep-aliveDate: Tue, 01 Nov 2022 13:26:23 GMTServer: tencent-cosx-cos-bucket-region: ap-guangzhoux-cos-request-id: NjM2MTFlN2ZfYjA1MGI3MDlfMjQ2ZmZfOWE******