简介
本文档提供关于跨域访问的 API 概览以及 SDK 示例代码。
API | 操作名 | 操作描述 |
设置跨域配置 | 设置存储桶的跨域名访问权限 | |
查询跨域配置 | 查询存储桶的跨域名访问配置信息 | |
删除跨域配置 | 删除存储桶的跨域名访问配置信息 |
设置跨域配置
功能说明
方法原型
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"; // 设置跨域配置 IDrule.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 | 是 |