最近更新时间:2024-01-17 19:29:00
此接口会在源存储空间(Bucket)上设置复制规则。设置成功后,KS3内部会按照用户的设置,自动的将匹配到的Object复制到目标存储空间。如果要使用此接口,您需要是该Bucket的拥有者或具有ks3:PutBucketReplication权限。
每个源存储空间只能设置一条复制规则,如果某个存储空间之前已经有复制规则,则会提示已存在复制规则。
KS3支持配置跨区域复制和同区域复制,但每个源存储空间只能设置一种复制规则,即跨区域复制与同区域复制二者只能存在一种规则。
KS3支持双向复制,即一个源存储空间可以同时作为当前目标空间的目标空间。
当存储空间没有开启与其他存储空间的复制时才能开始复制。例如空间A开启了到空间B的复制,那么就不能再为空间A开启到空间C的复制,除非先删除空间A到空间B的复制配置。同理,若空间A开启了到空间B的复制,此时再开启空间C到空间B的复制也是不允许的。
复制规则最多添加10条前缀匹配规则,且前缀之间不能重叠。
目标存储空间中的对象是源空间的副本,它们具有相同的对象名、元数据以及内容,例如创建时间、拥有者、存储类型、用户定义的元数据、Object ACL、对象内容,对象加密方式(KS3托管秘钥的加密方式),因此以上任何数据发生变化都会将变化内容同步到目标端。
复制到目标端的文件遵循目标存储空间的生命周期规则。
要删除处于复制关系中的存储空间,必须先关闭该复制关系才能将存储空间删除。
复制功能的优先级高于生命周期管理,当一个对象开始执行生命周期管理操作时,首先将其复制到目标存储空间然后再执行生命周期管理操作,以满足数据安全高于数据管理的核心原则。
请注意,以下文件或数据将不会被复制:
采用客户端加密的数据;
源空间中新增的数据是来自其它空间复制的数据;
存储空间级别的配置更新行为,不会进行文件复制,因为存储空间的配置不会作用到文件上;
如果源文件的存储类型为归档存储,除非文件内容发生变化,否则不会对其进行复制。
PUT /?crr HTTP/1.1
Host: {BucketName}.{endpoint}
Date: {date}
Authorization: {SignatureValue}
Content-length: {length}
Content-MD5: {md5}
<Replication xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<prefix>prefix1</prefix>
<prefix>prefix2</prefix>
<DeleteMarkerStatus>Enabled</DeleteMarkerStatus>
<targetBucket>bucketname</targetBucket>
</Replication>
该接口不使用请求参数。
名称 | 描述 | 是否必选 |
---|---|---|
Content-MD5 | body里data的128位md5 digest,再用base64编码。这个header必须存在,以便检查body是否损坏。详见RFC-1864 | 是 |
一段描述跨区域复制configuration的xml。
<Replication xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<prefix>prefix1</prefix>
<prefix>prefix2</prefix>
<DeleteMarkerStatus>Enabled</DeleteMarkerStatus>
<targetBucket>bucketname</targetBucket>
<HistoricalObjectReplication>Enabled</HistoricalObjectReplication>
</Replication>
xml主要参数:
名称 | 描述 | 是否必选 |
---|---|---|
Replication | 包含复制规则的容器,一个源存储空间只能有一条规则 | 是 |
prefix | 前缀匹配,只有object匹配了前缀规则才会对该对象进行复制,每条复制规则最多添加10条前缀匹配规则,且前缀之间不能重叠 | 否 |
DeleteMarkerStatus | 指明是否开启删除复制,若指定为Enabled代表开启,若为Disabled或不指定均代表关闭状态,若开启删除复制,则当源Bucket删除一个对象时,该对象在目标Bucket的副本也会删除 | 是 |
targetBucket | 复制规则的目标存储空间 | 是 |
HistoricalObjectReplication | 指定是否复制历史数据。即开启数据复制前,是否将源Bucket中的数据复制到目标Bucket。 | 否 |
本接口只带有常用响应头部。获取更多信息,请点击常用响应头部。
不返回内容。
以下示例为在某个存储空间上设置复制规则,其中复制规则匹配两条前缀规则(“abc”和“xyz”),且启用删除同步功能,目标存储空间为targetbucket。
PUT /?crr HTTP/1.1
Host: ks3-example.ks3-cn-beijing.ksyuncs.com
Date: Wed, 14 May 2014 02:11:21 GMT
Content-MD5: xxx
Authorization: authorization string
Content-Length: yyy
Content-type: application/xml
<Replication>
<prefix>abc</prefix>
<prefix>xyz</prefix>
<DeleteMarkerStatus>Enabled</DeleteMarkerStatus>
<targetBucket>targetbucket</targetBucket>
</Replication>
HTTP/1.1 200 OK
Content-Length: 0
Connection: keep-alive
Date: Tue, 19 Jul 2017 09:14:23 GMT
Server: KS3
x-kss-request-id: 6af24440694b4d00b8de063ccbe86336
错误码 | HTTP状态码 | 描述 |
---|---|---|
InvalidArgument | 400 Bad Request |
|
InvalidCrrArgument | 400 Bad Request | 该存储空间已配置复制规则 |
BucketReplicationExists | 409 Conflict | 删除的存储空间处于复制关系中 |
纯净模式