判断对象是否存在

最近更新时间:2024-08-13 16:47:51

我的收藏

简介

本文介绍对象存储 COS 通过 C++ SDK 实现快捷查询存储桶中某个对象是否存在的示例代码和描述。示例代码实际调用了 HEAD Object COS API,是该接口的简化版。

注意事项

若您要判断某个对象是否存在,需要具有目标对象的读取权限:在您进行 授权策略 时,action 需要设置为cos:HeadObject,更多授权请参见 支持CAM的业务接口

相关示例

功能名称
描述
示例代码
判断对象是否存在
提供了判断对象是否存在的功能。

前期准备

创建 CosAPI

调用 COS 的接口之前,必须先创建一个 CosAPI 的实例。这个实例用来后续调用请求。
qcloud_cos::CosAPI InitCosAPI() {
uint64_t appid = 12500000000;
std::string region = "ap-guangzhou";// bucket 的地域,请参见 https://cloud.tencent.com/document/product/436/62
std::string secret_id = "AKIDXXXXXXXX"; //用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
std::string secret_key = "1A2Z3YYYYYYYYYY"; //用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
qcloud_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-sdk
uint64_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;
}

使用案例

检查对象是否存在

通过调用查询对象元数据接口,来检查一个对象是否存在。

方法原型

bool CosAPI::IsObjectExist(const std::string& bucket_name, const std::string& object_name)

请求示例

void IsObjectExistDemo(qcloud_cos::CosAPI& cos) {
bool is_exist = cos.IsObjectExist(bucket_name, "test.txt");

std::cout << "=====================IsObjectExist=======================" << std::endl;
std::cout << (is_exist ? "true" : "false") << std::endl;
std::cout << "=========================================================" << std::endl;
}

参数说明

参数名称
描述
类型
bucket_name
Bucket 的命名格式为 BucketName-APPID ,详情请参见 命名规范
string
object_name
对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/picture.jpg 中,对象键为 doc/picture.jpg,详情请参见 对象键
string

返回结果说明

成功:返回 boolean 类型, true 代表存在,false 代表不存在。

API 操作

判断对象是否存在涉及的 API 接口说明,请参见 HEAD Object 文档。