数据同步
更新时间:2022-07-13
设置数据同步规则
| 参数 | 是否必须 | 描述 |
|---|---|---|
| id | 是 | replication规则名,id 由数字字母 - _ 组成,不得超过20个字符 |
| status | 是 | 是否生效 |
| resource | 是 | replication生效前缀,resource的配置形式为{$bucket_name/<生效的对象前缀>},必须要以$bucket_name+/开头 |
| 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之间的数据同步,则如下代码可以做到:
Python
1bucket_name = "<YOUR_BUCKET_NAME>"
2rule_id = "sample-rep-config"
3dst_bucket_name = "<DESTINATION_BUCKET_NAME>"
4replication = {
5 "status":"enabled",
6 "resource":[
7 bucket_name + "/*"
8 ],
9 "destination":
10 {
11 "bucket": dst_bucket_name,
12 "storageClass":"COLD"
13 },
14 "replicateHistory":
15 {
16 "bucket": dst_bucket_name,
17 "storageClass":"COLD"
18 },
19 "replicateDeletes":"enabled",
20 "id": rule_id
21 }
22# test put bucket replication
23bos_client.put_bucket_replication(bucket_name, replication)
获取指定的数据同步规则
若用户想获取bucket指定id的数据同步信息,包括源Bucket名称、目的Bucket名称、存储类型、是否进行历史复制、数据同步策略、目的region等。则如下代码所示:
Python
1response = bos_client.get_bucket_replication(bucket_name, id=rule_id)
2print("id:{}, status:{}, resource:{}, destination:{}, replicateDeletes:{}, replicateHistory:{}".format(response.id, response.status, response.resource, response.destination, response.replicate_deletes, response.replicate_history))
删除指定的数据同步规则
若用户想删除bucket指定id的数据同步,则如下代码所示:
Python
1bos_client.delete_bucket_replication(bucket_name ,id=rule_id)
列举数据同步规则
若用户想获取bucket所有的replication同步规则,则如下代码所示:
Python
1response = bos_client.list_bucket_replication(bucket_name)
2print(response.rules)
获取指定的数据同步规则的进程状态
若用户想获取指定id的数据同步复制的进程状态,则如下代码所示:
Python
1response = bos_client.get_bucket_replication_progress(bucket_name, id=rule_id)
2print("status:{}, historyReplicationPercent:{}, latestReplicationTime:{}".format(response.status, response.history_replication_percent, response.latest_replication_time))
