存储桶清单
更新时间:2026-08-04
PutBucketInventory
PutBucketInventory 用于为源bucket中创建清单任务,您可以对清单任务命名后,使用该请求创建清单任务。
Bos建议用户创建一个生命周期策略,用于删除旧的清单列表文件。
注意:
- 用户必须是源Bucket的owner且拥有FULL_CONTROL权限,且是目标Bucket的owner。
- 目的Bucket和源Bucket必须存在,目的Bucket和源Bucket必须是同账号下的Bucket,且是同region下的Bucket,不支持跨账号输出。
- BOS支持在每个存储桶中创建最多20条清单任务。
- 清单列表提供了新对象和覆盖的 PUT 的最终一致性,并提供了 DELETE 的最终一致性。清单列表是Bucket的滚动快照,内容最终是一致的 ,清单可能不包含最近添加或删除的对象。
相关参数参见PutBucketInventory接口。
C++
1void put_bucket_inventory(Client &client) {
2 BucketInventoryRule rule;
3 rule.id = "inventory-configuration-ID";
4 rule.status = "enabled";
5 rule.resource.push_back(g_bucket + "/prefix/*");
6 rule.schedule = "Weekly";
7 rule.destination.target_bucket = "destination-bucket";
8 rule.destination.target_prefix = "inventory-results";
9 rule.destination.format = "CSV";
10 rule.included_object_versions = "All";
11
12 PutBucketInventoryRequest request(g_bucket, rule);
13 PutBucketInventoryResponse response;
14 client.put_bucket_inventory(request, &response);
15 print_common_response(response);
16}
GetBucketInventory
GetBucketInventory 使用GET操作来获取指定桶的某个清单配置。用户在发起该请求时,需要用户提供清单任务的名称。
相关参数参见GetBucketInventory接口。
C++
1void print_bucket_inventory_rule(const BucketInventoryRule &rule) {
2 std::cout << "id: " << rule.id << std::endl;
3 std::cout << "status: " << rule.status << std::endl;
4 std::cout << "resource:";
5 for (size_t i = 0; i < rule.resource.size(); ++i) {
6 std::cout << " " << rule.resource[i];
7 }
8 std::cout << std::endl;
9 std::cout << "schedule: " << rule.schedule << std::endl;
10 std::cout << "monthlyDate: " << rule.monthly_date << std::endl;
11 std::cout << "targetBucket: " << rule.destination.target_bucket << std::endl;
12 std::cout << "targetPrefix: " << rule.destination.target_prefix << std::endl;
13 std::cout << "format: " << rule.destination.format << std::endl;
14 std::cout << "includedObjectVersions: " << rule.included_object_versions << std::endl;
15}
16
17void get_bucket_inventory(Client &client) {
18 GetBucketInventoryRequest request(g_bucket, "inventory-configuration-ID");
19 GetBucketInventoryResponse response;
20 client.get_bucket_inventory(request, &response);
21 print_common_response(response);
22 if (response.is_ok()) {
23 print_bucket_inventory_rule(response.inventory_rule());
24 }
25}
ListBucketInventory
ListBucketInventory 使用不带清单id的GET操作来获取指定桶的所有清单配置,获取到的清单配置一次性返回,不分页。
相关参数参见ListBucketInventory接口。
C++
1void list_bucket_inventory(Client &client) {
2 ListBucketInventoryRequest request(g_bucket);
3 ListBucketInventoryResponse response;
4 client.list_bucket_inventory(request, &response);
5 print_common_response(response);
6 if (response.is_ok()) {
7 const std::vector<BucketInventoryRule> &rules = response.inventory_rules();
8 for (size_t i = 0; i < rules.size(); ++i) {
9 std::cout << "inventory rule " << i << ":" << std::endl;
10 print_bucket_inventory_rule(rules[i]);
11 }
12 }
13}
DeleteBucketInventory
DeleteBucketInventory使用DELETE操作来删除指定bucket的指定清单配置(通过清单id来指定清单配置)。
相关参数参见DeleteBucketInventory接口。
C++
1void delete_bucket_inventory(Client &client) {
2 DeleteBucketInventoryRequest request(g_bucket, "inventory-configuration-ID");
3 DeleteBucketInventoryResponse response;
4 client.delete_bucket_inventory(request, &response);
5 print_common_response(response);
6}
评价此篇文章
