镜像回源
更新时间:2026-08-14
PutBucketMirroring
本接口用来创建镜像回源管理规则。
注意:
只有bucket的owner且拥有FULL_CONTROL权限才能够进行此请求。
PutBucketMirroring会覆盖原有的镜像回源规则, 如果需要在原有规则基础上新增, 需要在请求中携带所有新旧规则。
相关参数参见PutBucketMirroring接口。
C++
1void put_bucket_mirroring(Client &client) {
2 BucketMirroringRule rule;
3 rule.mode = "fetch";
4 rule.source_url = "https://www.example.com";
5 rule.resource = "images/*.jpg";
6 rule.prefix = "source-prefix";
7 rule.pass_query_string = true;
8 rule.storage_class = "STANDARD";
9 rule.pass_headers.push_back("Cache-Control");
10
11 BucketMirroringConfiguration configuration;
12 configuration.mirroring_rules.push_back(rule);
13 PutBucketMirroringRequest request(g_bucket, configuration);
14 PutBucketMirroringResponse response;
15 client.put_bucket_mirroring(request, &response);
16 print_common_response(response);
17}
GetBucketMirroring
本接口用来获取bucket的镜像回源信息。
相关参数参见GetBucketMirroring接口。
C++
1void print_bucket_mirroring_rule(const BucketMirroringRule &rule) {
2 std::cout << "mode: " << rule.mode << std::endl;
3 std::cout << "sourceUrl: " << rule.source_url << std::endl;
4 std::cout << "backSourceUrl: " << rule.back_source_url << std::endl;
5 std::cout << "resource: " << rule.resource << std::endl;
6 std::cout << "prefix: " << rule.prefix << std::endl;
7 std::cout << "suffix: " << rule.suffix << std::endl;
8 std::cout << "fixedKey: " << rule.fixed_key << std::endl;
9 std::cout << "version: " << rule.version << std::endl;
10 std::cout << "prefixReplace: " << rule.prefix_replace << std::endl;
11 std::cout << "passQuerystring: " << rule.pass_query_string << std::endl;
12 std::cout << "storageClass: " << rule.storage_class << std::endl;
13 for (size_t i = 0; i < rule.pass_headers.size(); ++i) {
14 std::cout << "passHeader: " << rule.pass_headers[i] << std::endl;
15 }
16 for (size_t i = 0; i < rule.ignore_headers.size(); ++i) {
17 std::cout << "ignoreHeader: " << rule.ignore_headers[i] << std::endl;
18 }
19 for (size_t i = 0; i < rule.custom_headers.size(); ++i) {
20 std::cout << "customHeader: " << rule.custom_headers[i].header_name
21 << "=" << rule.custom_headers[i].header_value << std::endl;
22 }
23}
24
25void get_bucket_mirroring(Client &client) {
26 GetBucketMirroringRequest request(g_bucket);
27 GetBucketMirroringResponse response;
28 client.get_bucket_mirroring(request, &response);
29 print_common_response(response);
30 if (response.is_ok()) {
31 const std::vector<BucketMirroringRule> &rules = response.mirroring_rules();
32 for (size_t i = 0; i < rules.size(); ++i) {
33 std::cout << "mirroring rule " << i << ":" << std::endl;
34 print_bucket_mirroring_rule(rules[i]);
35 }
36 }
37}
DeleteBuketMirroring
本接口用来删除bucket的镜像回源配置。
相关参数参见DeleteBuketMirroring接口。
C++
1void delete_bucket_mirroring(Client &client) {
2 DeleteBucketMirroringRequest request(g_bucket);
3 DeleteBucketMirroringResponse response;
4 client.delete_bucket_mirroring(request, &response);
5 print_common_response(response);
6}
评价此篇文章
