简介
本文介绍对象存储 COS 通过 C++ SDK 实现生成对象访问 URL 的示例代码和描述。
注意事项
2024年1月1日后创建的桶 不支持使用默认域名在浏览器预览文件,建议您配置自定义域名,详情请参见 存储桶切换自定义域名。
如果您的文件是私有读权限,那么本接口生成的 URL 不能直接用于访问资源。
此接口是单纯的客户端逻辑,因此不需要特殊授权。
相关示例
功能名称 | 描述 | 示例代码 |
对象访问 URL | 实现生成对象访问 URL 的功能 |
前期准备
创建 CosAPI
调用 COS 的接口之前,必须先创建一个 CosAPI 的实例。这个实例用来后续调用请求。
qcloud_cos::CosAPI InitCosAPI() {uint64_t appid = 12500000000;std::string region = "ap-guangzhou";// bucket 的地域,请参见 https://cloud.tencent.com/document/product/436/62std::string secret_id = "AKIDXXXXXXXX"; //用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140std::string secret_key = "1A2Z3YYYYYYYYYY"; //用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140qcloud_cos::CosConfig config(appid, secret_id, secret_key, region);qcloud_cos::CosAPI cos_tmp(config);return cos_tmp;}
使用临时密钥创建 CosAPI
如果要使用临时密钥请求 COS,则需要用临时密钥创建 CosAPI 实例。
qcloud_cos::CosAPI InitCosAPI() {// 需要已经获取到临时密钥的结果:tmp_secret_id、tmp_secret_key、// 临时密钥的生成参见 https://cloud.tencent.com/document/product/436/14048#cos-sts-sdkuint64_t appid = 12500000000;std::string region = "ap-guangzhou";std::string tmp_secret_id = "AKIDXXXXXXXX";std::string tmp_secret_key = "1A2Z3YYYYYYYYYY";std::string tmp_token = "token";qcloud_cos::CosConfig config(appid, tmp_secret_id, tmp_secret_key, region);config.SetTmpToken(tmp_token);qcloud_cos::CosAPI cos_tmp(config);return cos_tmp;}
使用案例
获取对象访问 URL
方法原型
std::string CosAPI::GetObjectUrl(const std::string& bucket,const std::string& object, bool https,const std::string& region)
请求示例
void GetObjectUrlDemo(qcloud_cos::CosAPI& cos) {std::string object_name = "test.txt";bool is_https = true; // 是否为 httpsstd::string object_url = cos.GetObjectUrl(bucket_name, object_name, is_https);std::cout << "=======================GetObjectUrl=========================" << std::endl;std::cout << "object url=[" << object_url << "]" << std::endl;std::cout << "============================================================" << std::endl;}
参数说明
返回结果说明
返回对象访问 URL。