数据同步配置
更新时间:2023-09-18
Bucket数据同步配置
设置数据同步规则
- 
基本流程 - 创建BosClient。
- 执行putBucketReplication()方法。
 
- 
示例代码 JavaScript1const ReplicationInfo = { 2 status:"enabled", 3 resource:[ 4 bucketName + "/*" 5 ], 6 destination: 7 { 8 bucket: <dstBucketName>, 9 storageClass: "COLD" 10 }, 11 replicateHistory: 12 { 13 bucket: <dstBucketName>, 14 storageClass:"COLD" 15 }, 16 replicateDeletes:"enabled", 17 id: <ruleId> 18} 19 20client.putBucketReplication(<BucketName>,<ReplicationInfo>) 21 .then(function(response) { 22 if(response) { 23 // TODO 24 } 25 }) 26 .catch(function() {});
- 参数 ReplicationInfo 结构
| 参数 | 是否必须 | 描述 | 
|---|---|---|
| id | 是 | replication规则名,id 由数字字母 - _ 组成,不得超过20个字符 | 
| status | 是 | 是否生效 | 
| resource | 是 | replication生效前缀,resource的配置形式为{$BucketName/<生效的对象前缀>},必须要以 $BucketName+/开头 | 
| destination | 是 | 复制的目的端配置 | 
| +bucket | 是 | 目的Bucket name | 
| +storageClass | 否 | 目的Object的存储类型。如果保持和源Bucket的存储类型一致,则该参数不需要配置;如果需要单独指定存储类型可以为 STANDARD,STANDARD_IA,COLD;如果是多AZ类型bucket,可取值为MAZ_STANDARD_IA和MAZ_STANDARD。 | 
| replicateHistory | 否 | 历史文件复制,有该项则认为是开启。开启历史文件复制后,存量的全部Object都同步复制到目的Bucket,复制范围共用resource。 | 
| +storageClass | 否 | 目的Object的存储类型。如果保持和源Bucket的存储类型一致,则该参数不需要配置;如果需要单独指定存储类型可以为 STANDARD,STANDARD_IA,COLD;如果是多AZ类型bucket,可取值为MAZ_STANDARD_IA和MAZ_STANDARD。 | 
| replicateDeletes | 是 | 是否开启删除同步,可以为 enabled,disabled。 | 
注意
- 用户必须是源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
- id 由数字字母 - _ 组成,不得超过20个字符
获取指定的数据同步规则
用户可通过该方法获取bucket指定id的数据同步信息,包括源Bucket名称、目的Bucket名称、存储类型、是否进行历史复制、数据同步策略、目的region等
- 基本流程
                Plain Text
                
            
            11.  创建BosClient。
22.  执行getBucketReplication()方法。- 示例代码
                Plain Text
                
            
            1```js
2client.getBucketReplication(<BucketName>,<RuleId>)            
3  .then(function(response) {
4      if(response) {
5          // TODO
6      }
7      else {}
8  })
9  .catch(function() {});
10```删除指定的数据同步规则
用户可通过该方法删除bucket指定id的数据同步规则
- 基本流程
                Plain Text
                
            
            11.  创建BosClient。
22.  执行deleteBucketReplication()方法。- 示例代码
                Plain Text
                
            
            1```js
2client.deleteBucketReplication(<BucketName>,<RuleId>)            
3  .then(function(response) {
4      if(response) {
5          // TODO
6      }
7      else {}
8  })
9  .catch(function() {});
10```列举所有数据同步规则
用户可通过该方法获取bucket所有的replication同步规则
- 基本流程
                Plain Text
                
            
            11.  创建BosClient。
22.  执行listBucketReplication()方法。- 示例代码
                Plain Text
                
            
            1```js
2client.listBucketReplication(<BucketName>)            
3  .then(function(response) {
4      if(response) {
5          // TODO
6      }
7      else {}
8  })
9  .catch(function() {});
10```获取指定的数据同步规则的进程状态
用户可通过该方法获取bucket指定id的数据同步复制的进程状态
- 基本流程
                Plain Text
                
            
            11.  创建BosClient。
22.  执行getBucketReplicationProgress()方法。- 示例代码
                Plain Text
                
            
            1```js
2client.getBucketReplicationProgress(<BucketName>,<RuleId>)            
3  .then(function(response) {
4      if(response) {
5          // TODO
6      }
7      else {}
8  })
9  .catch(function() {});
10```