tencent cloud

14天试用边缘安全加速平台 EO 限时免费

文档反馈

对象存储

跨域访问

最后更新时间:2024-01-04 18:00:58

简介

本文档提供关于跨域访问的 API 概览以及 SDK 示例代码。
API
操作名
操作描述
设置跨域配置
设置存储桶的跨域名访问权限
查询跨域配置
查询存储桶的跨域名访问配置信息
删除跨域配置
删除存储桶的跨域名访问配置信息

设置跨域配置

功能说明

设置指定存储桶的跨域名访问配置信息(PUT Bucket cors)。

方法原型

CosResult PutBucketCORS(const PutBucketCORSReq& request, PutBucketCORSResp* response);

请求示例

qcloud_cos::CosConfig config("./config.json");
qcloud_cos::CosAPI cos(config);
std::string bucket_name = "examplebucket-1250000000";
qcloud_cos::PutBucketCORSReq req(bucket_name);
qcloud_cos::PutBucketCORSResp resp;

// 设置跨域请求内容
qcloud_cos::CORSRule rule;
rule.m_id = "123"; // 设置跨域配置 ID
rule.m_allowed_headers.push_back("x-cos-meta-test"); // 设置跨域允许的 HTTP 请求头部
rule.m_allowed_origins.push_back("http://www.qq.com"); // 设置跨域允许的来源域名
rule.m_allowed_methods.push_back("PUT"); // 设置跨域允许的 HTTP 方法
rule.m_allowed_methods.push_back("GET");
rule.m_max_age_secs = "600"; // 设置有效配置的时间
rule.m_expose_headers.push_back("x-cos-expose"); // 允许浏览器获取的 CORS 请求响应中的头部
req.AddRule(rule);

qcloud_cos::CosResult result = cos.PutBucketCORS(req, &resp);
if (result.IsSucc()) {
// 请求成功
} else {
// 请求失败,可以调用 CosResult 的成员函数输出错误信息,如 requestID 等
}


参数说明

参数
参数描述
类型
是否必填
req
PutBucketCORS 操作的请求
PutBucketCORSReq
resp
PutBucketCORS 操作的响应
PutBucketCORSResp
PutBucketCORSReq 提供以下成员函数:
// 添加跨域规则
void AddRule(const CORSRule& rule);
// 添加跨域规则
void SetRules(const std::vector<CORSRule>& rules)
该请求涉及到的类定义如下:

struct CORSRule {
std::string m_id;
std::string m_max_age_secs;
std::vector<std::string> m_allowed_headers;
std::vector<std::string> m_allowed_methods;
std::vector<std::string> m_allowed_origins;
std::vector<std::string> m_expose_headers;
};


查询跨域配置

功能说明

查询指定存储桶的跨域名访问配置信息(GET Bucket cors)。

方法原型

CosResult CosAPI::GetBucketCORS(const GetBucketCORSReq& request, GetBucketCORSResp* response);

请求示例

qcloud_cos::CosConfig config("./config.json");
qcloud_cos::CosAPI cos(config);
std::string bucket_name = "examplebucket-1250000000";
qcloud_cos::GetBucketCORSReq req(bucket_name);
qcloud_cos::GetBucketCORSResp resp;

qcloud_cos::CosResult result = cos.GetBucketCORS(req, &resp);
if (result.IsSucc()) {
// 请求成功,调用 resp 方法获取跨域规则
} else {
// 请求失败,可以调用 CosResult 的成员函数输出错误信息,如 requestID 等
}

参数说明

参数
参数描述
类型
是否必填
req
GetBucketCORS 操作的请求
GetBucketCORSReq
resp
GetBucketCORS 操作的响应
GetBucketCORSResp
GetBucketCORSReq 提供以下成员函数:
// 从响应中获取跨域规则
std::vector<CORSRule> GetCORSRules() const;

删除跨域配置

功能说明

删除指定存储桶的跨域名访问配置(DELETE Bucket cors)。

方法原型

CosResult BucketOp::DeleteBucketCORS(const DeleteBucketCORSReq& req, DeleteBucketCORSResp* resp);

请求示例

qcloud_cos::CosConfig config("./config.json");
qcloud_cos::CosAPI cos(config);
std::string bucket_name = "examplebucket-1250000000";
qcloud_cos::DeleteBucketCORSReq req(bucket_name);
qcloud_cos::DeleteBucketCORSResp resp;

qcloud_cos::CosResult result = cos.DeleteBucketCORS(req, &resp);
if (result.IsSucc()) {
// 请求成功
} else {
// 请求失败,可以调用 CosResult 的成员函数输出错误信息,如 requestID 等
}

参数说明

参数
参数描述
类型
是否必填
req
DeleteBucketCORS 操作的请求
DeleteBucketCORSReq
resp
DeleteBucketCORS 操作的响应
DeleteBucketCORSResp
联系我们

联系我们,为您的业务提供专属服务。

技术支持

如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

7x24 电话支持
中国香港
+852 800 906 020 (免费)
美国
+1 844 606 0804 (免费)
英国
+44 808 196 4551 (免费)
加拿大
+1 888 605 7930 (免费)
澳大利亚
+61 1300 986 386 (免费)
EdgeOne 热线
+852 300 80699
更多本地服务热线陆续新增中