bucket清单管理
更新时间:2026-09-23
应用场景
存储空间清单(inventory)是一种帮助用户管理存储桶中对象的功能。BOS 可根据用户的清单任务配置,定期每天或者每周扫描用户 Bucket 中指定对象并输出一份清单报告,以 CSV 格式文件的形式存储到用户指定的 Bucket 中。CSV 文件中会列出对象及其对应的元数据,并根据用户的配置信息,记录用户所需的对象属性信息。
说明:
- 当前该功能在
华北-北京、华东-苏州和华南-广州区域全量开放。
运行以下示例前,请先参考初始化完成 BOS Client 初始化,并将示例中的占位符替换为实际值。
设定清单规则
如下代码设定了一个清单规则:
Python
1# 设置清单规则名称
2inventory_conf_id = "test-inventory-rule-01"
3
4# 设置源 Bucket 名称
5source_bucket_name = "<SOURCE_BUCKET_NAME>"
6
7# 设置清单输出的目的 Bucket
8target_bucket_name = "<TARGET_BUCKET_NAME>"
9
10# 设置清单输出的目录前缀
11target_prefix = "inventory-result/"
12
13# 如需要关闭清单,将 status 设置为 disabled 即可
14my_inventory = {
15 "id": inventory_conf_id,
16 "status": "enabled",
17 "resource": [source_bucket_name + "/*"],
18 "schedule": "Weekly",
19 "destination": {
20 "targetBucket": target_bucket_name,
21 "targetPrefix": target_prefix,
22 "format": "CSV"
23 }
24}
25
26# 设置 Bucket 清单规则
27response = bos_client.put_bucket_inventory(source_bucket_name, my_inventory)
28print(response.metadata)
参数说明如下:
| 参数 | 必填 | 说明 |
|---|---|---|
inventory_conf_id |
是 | 清单规则 ID。若原规则已存在,设置时会覆盖原规则。 |
source_bucket_name |
是 | 源 Bucket 名称。 |
target_bucket_name |
是 | 清单报告输出的目的 Bucket 名称。 |
target_prefix |
否 | 清单报告输出目录前缀。 |
my_inventory.id |
是 | 清单规则 ID,需与 inventory_conf_id 一致,仅允许字母、数字、-、_、.,长度 1 - 64。 |
my_inventory.status |
是 | 清单规则状态。取值为 enabled 或 disabled。 |
my_inventory.resource |
是 | 清单扫描资源范围,每个元素须以 源Bucket名/ 开头,例如 <SOURCE_BUCKET_NAME>/*。 |
my_inventory.schedule |
是 | 清单生成周期,取值为 Daily、ThreeDaily、Weekly、Monthly、Once;取 Monthly 时需额外提供 monthlyDate(1 - 28)。 |
my_inventory.destination.targetBucket |
是 | 清单报告输出的目的 Bucket。 |
my_inventory.destination.targetPrefix |
否 | 清单报告输出目录前缀。 |
my_inventory.destination.format |
是 | 清单报告格式,当前仅支持 CSV。 |
返回说明如下:
| 返回值 | 说明 |
|---|---|
response.metadata |
响应元信息。设置成功时服务端返回成功响应,通常无响应体内容。 |
注意:
- 用户必须是源Bucket的owner且拥有FULL_CONTROL权限,且是目标Bucket的owner。
- 目的Bucket和源Bucket必须存在,目的Bucket和源Bucket必须是同账号下的Bucket,且是同region下的Bucket,不支持跨账号输出。
- BOS支持在每个存储桶中创建最多20条清单任务。
- 清单列表提供了新对象和覆盖的 PUT 的最终一致性,并提供了 DELETE 的最终一致性。清单列表是Bucket的滚动快照,内容最终是一致的 ,清单可能不包含最近添加或删除的对象。
- 如果原规则存在则覆盖原规则。
获取 Bucket 的清单规则
如下代码可获取 Bucket 清单功能指定规则的配置:
Python
1bucket_name = "<BUCKET_NAME>"
2
3# 指定清单规则 ID
4inventory_conf_id = "test-inventory-rule-01"
5
6response = bos_client.get_bucket_inventory(bucket_name, inventory_conf_id)
7print(response)
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
bucket_name |
是 | 已设置清单规则的 Bucket 名称。 |
inventory_conf_id |
是 | 待获取的清单规则 ID。 |
返回说明如下:
| 返回值 | 说明 |
|---|---|
response.id |
清单规则 ID。 |
response.status |
清单规则状态。 |
response.resource |
清单扫描资源范围。 |
response.schedule |
清单生成周期。 |
response.destination |
清单报告输出配置,包含输出格式、目的 Bucket 和目录前缀等信息。 |
response.metadata |
响应元信息。 |
列举 Bucket 的清单规则
如下代码可列举 Bucket 清单功能的规则:
Python
1bucket_name = "<BUCKET_NAME>"
2
3response = bos_client.list_bucket_inventory(bucket_name)
4print(response.inventory_rule_list)
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
bucket_name |
是 | 待列举清单规则的 Bucket 名称。 |
返回说明如下:
| 返回值 | 说明 |
|---|---|
response.inventory_rule_list |
Bucket 下的清单规则列表。列表中的单条规则包含规则 ID、状态、扫描资源、生成周期和输出目的配置等信息。 |
response.metadata |
响应元信息。 |
删除清单规则
如下代码可删除 Bucket 清单功能指定规则的配置:
Python
1bucket_name = "<BUCKET_NAME>"
2
3# 指定清单规则 ID
4inventory_conf_id = "test-inventory-rule-01"
5
6response = bos_client.delete_bucket_inventory(bucket_name, inventory_conf_id)
7print(response.metadata)
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
bucket_name |
是 | 待删除清单规则的 Bucket 名称。 |
inventory_conf_id |
是 | 待删除的清单规则 ID。 |
返回说明如下:
| 返回值 | 说明 |
|---|---|
response.metadata |
响应元信息。删除成功时服务端返回成功响应。 |
评价此篇文章
