PutBucketReplication
更新时间:2024-01-12
接口描述
本接口用来创建数据同步。每个id唯一确定一条replication规则,对一个id首次put会认为是创建一条replication规则,对同一个id的再次put认为是覆盖,如果原先status是enable,则不允许覆盖成disable;如果原先是enable,再次put成enable,replication会重新开始执行;不允许两个replication规则除了id一致以外其他项均一致。
说明:
- 用户必须是源Bucket的owner且拥有FULL_CONTROL权限,且有目标Bucket的写权限。
- 目标Bucket和源Bucket必须存在。
- 目标Bucket和源Bucket可以是同region下的Bucket,也可以是不同Region下的Bucket。
- 目标Bucket和源Bucket可以是同账户下的bucket,也可以是不同账户下的bucket,但是源账户需要有目的bucket的写权限
- 整个配置的大小不能超过128k,当前bucket下所有规则长度不得超过200KB
- 数据同步暂时不支持归档类型文件的同步,进行数据同步时会忽略归档类型文件。
- 用户最多配置10条replication规则
- 单个规则,最多20个resource
- 单个规则,最多20个notIncludeResource
- id 由数字字母 - _ 组成,不得超过20个字符
请求(Request)
-
请求语法
Plain Text1PUT /?replication&id=sample-bucket HTTP/1.1 2Host: <BucketName>.bj.bcebos.com 3x-bce-date: date 4Content-Length: request-body length 5Content-Type: application/json; charset=utf-8 6Authorization:<AuthorizationString> 7 8{ 9 "status": "enabled", 10 "resource": [ 11 "src-bucket-name/abc", 12 "src-bucket-name/cd*" 13 ], 14 "notIncludeResource": [ 15 src-bucket-name/prefix/*, 16 src-bucket-name/*.jpeg, 17 src-bucket-name/*test* 18 ], 19 "destination": { 20 "bucket": "dst-bucket-name", 21 "storageClass": "COLD" 22 }, 23 "replicateHistory": { 24 "storageClass": "COLD" 25 }, 26 "replicateDeletes": "enabled", 27 "id": "sample-bucket" 28}
-
请求头域
无特殊参数
-
请求参数
参数 是否必须 描述 id 是 replication规则名,id 由数字字母 - _ 组成,不得超过20个字符 status 是 是否生效 resource 是 replication生效前缀,resource的配置形式为{$bucket_name/<生效的对象前缀>},必须要以 $bucket_name
+/
开头notIncludeResource 否 replication不生效范围,notIncludeResource的配置形式为{$bucket_name/<不生效的对象范围>},必须要以 $bucket_name
+/
开头, 只接受以下三种形式,${bucketname}/<不生效的对象前缀>+*
,${bucketname}/*
+<不生效的对象后缀>,${bucketname}/*
+不生效的对象中缀+*
,参见请求示例destination 是 复制的目的端配置 +bucket 是 目的Bucket name。同步到不同区域的bucket,指定bucket名称即可自动获取区域信息 +storageClass 否 目的Object的存储类型。如果保持和源Bucket的存储类型一致,则该参数不需要配置;如果需要单独指定存储类型可以为 STANDARD
,STANDARD_IA
,COLD
;如果是多AZ类型bucket,可取值为MAZ_STANDARD_IA
和MAZ_STANDARD
。+prefix 否 目的存储路径 replicateHistory 否 历史文件复制,有该项则认为是开启。开启历史文件复制后,存量的全部Object都同步复制到目的Bucket,复制范围共用resource。 +storageClass 否 目的Object的存储类型。如果保持和源Bucket的存储类型一致,则该参数不需要配置;如果需要单独指定存储类型可以为 STANDARD
,STANDARD_IA
,COLD
;如果是多AZ类型bucket,可取值为MAZ_STANDARD_IA
和MAZ_STANDARD
。replicateDeletes 是 是否开启删除同步,可以为 enabled
,disabled
。
响应(Response)
示例
-
请求示例
Plain Text1 PUT /?replication&id=sample-bucket HTTP/1.1 2 Host: BucketName.bj.bcebos.com 3 x-bce-date: date 4 Content-Length: xxx 5 Content-Type: application/json; charset=utf-8 6 Authorization: AuthorizationString 7 8 { 9 "status": "enabled", 10 "resource": [ 11 "src-bucket-name/abc", 12 "src-bucket-name/cd*" 13 ], 14 "notIncludeResource": [ 15 src-bucket-name/prefix/*, 16 src-bucket-name/*.jpeg, 17 src-bucket-name/*test* 18 ], 19 "destination": { 20 "bucket": "dst-bucket-name", 21 "storageClass": "COLD", 22 "prefix": "dst-file-name/" 23 24 }, 25 "replicateHistory": { 26 "storageClass": "COLD" 27 }, 28 "replicateDeletes": "enabled", 29 "id": "sample-bucket-replication-config" 30 }
-
响应示例
Plain Text1 HTTP/1.1 200 OK 2 x-bce-request-id: xxxx-xxxx-xxxx 3 Date: Wed, 12 May 2017 17:50:00 GMT 4 Content-Length: 0 5 Connection: keep-alive 6 Server: BceBos