控制台指南

最佳实践

开发者指南

数据湖存储

API 文档

SDK 文档

数据库文档捉虫大赛邀您参加,好礼多多> HOT

简介

本文档提供关于跨域访问的 API 概览以及 SDK 示例代码。

API 操作名 操作描述
PUT Bucket cors 设置跨域配置 设置存储桶的跨域名访问权限
GET Bucket cors 查询跨域配置 查询存储桶的跨域名访问配置信息
DELETE Bucket cors 删除跨域配置 删除存储桶的跨域名访问配置信息

设置跨域配置

功能说明

设置指定存储桶的跨域名访问配置信息(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
目录