判断对象是否存在

最近更新时间:2024-08-13 17:46:41

我的收藏

简介

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

注意事项

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

相关示例

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

使用案例

功能说明

检查存储桶中是否存在某个对象。

方法原型

object_exists(Bucket, Key)

请求示例

# -*- coding=utf-8
from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
import sys
import os
import logging

# 正常情况日志级别使用 INFO,需要定位时可以修改为 DEBUG,此时 SDK 会打印和服务端的通信信息
logging.basicConfig(level=logging.INFO, stream=sys.stdout)

# 1. 设置用户属性, 包括 secret_id, secret_key, region 等。Appid 已在 CosConfig 中移除,请在参数 Bucket 中带上 Appid。Bucket 由 BucketName-Appid 组成
secret_id = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
# COS 支持的所有 region 列表参见 https://cloud.tencent.com/document/product/436/6224
token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://cloud.tencent.com/document/product/436/14048
scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填

config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)
client = CosS3Client(config)

response = client.object_exists(
Bucket='examplebucket-1250000000',
Key='exampleobject')
print(response)

参数说明

参数名称
参数描述
类型
是否必填
Bucket
存储桶名称,由 BucketName-APPID 构成
String
Key
对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg
String

返回结果说明

True 表示对象存在,False 表示对象不存在。

API 操作

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