bucket清单管理
更新时间:2023-02-13
应用场景
存储空间清单(inventory)是一种帮助用户管理存储桶中对象的功能。BOS 可根据用户的清单任务配置,定期每天或者每周扫描用户 Bucket 中指定对象并输出一份清单报告,以 CSV 格式文件的形式存储到用户指定的 Bucket 中。CSV 文件中会列出对象及其对应的元数据,并根据用户的配置信息,记录用户所需的对象属性信息。
说明:
- 当前该功能在华北-北京、华东-苏州和华南-广州区域全量开放。
设定清单规则
如下代码设定了一个清单规则:
# 设置清单规则名称
inventory_conf_id = "test-inventory-rule-01"
# 设置源bucket名称
source_bucket_name = "<SOURCE_BUCKET_NAME>"
# 设置清单输出的目的bucket
target_bucket_name = "<TARGET_BUCKET_NAME>"
# 设置清单输出的目录前缀
target_prefix = "inventory-result/"
# 如需要关闭清单,将"status"设置为"disabled"即可。
my_inventory = {
"id": inventory_conf_id,
"status": "enabled",
"resource": [source_bucket_name + "/*"],
"schedule": "Weekly",
"destination":{
"targetBucket": target_bucket_name,
"targetPrefix": target_prefix,
"format": "CSV"
}
}
# put bucket inventory
bos_client.put_bucket_inventory(bucket_name, my_inventory)
注意:
1.用户必须是源Bucket的owner且拥有FULL_CONTROL权限,且是目标Bucket的owner。
2.目的Bucket和源Bucket必须存在,目的Bucket和源Bucket必须是同账号下的Bucket,且是同region下的Bucket,不支持跨账号输出。
3.BOS支持在每个存储桶中创建最多20条清单任务。
4.清单列表提供了新对象和覆盖的 PUT 的最终一致性,并提供了 DELETE 的最终一致性。清单列表是Bucket的滚动快照,内容最终是一致的 ,清单可能不包含最近添加或删除的对象。
5.如果原规则存在则覆盖原规则。
获取Bucket的清单规则
如下代码可获取Bucket清单功能指定规则的配置:
# 指定清单规则id
inventory_conf_id = "test-inventory-rule-01"
response = bos_client.get_bucket_inventory(bucket_name, inventory_conf_id)
print(response)
列举Bucket的清单规则
如下代码可列举Bucket清单功能的规则:
response = bos_client.list_bucket_inventory(bucket_name)
print(response.inventory_rule_list)
删除清单规则
如下代码可删除Bucket清单功能指定规则的配置:
# 指定清单规则id
inventory_conf_id = "test-inventory-rule-01"
response = bos_client.delete_bucket_inventory(bucket_name, inventory_conf_id)