判断对象是否存在

最近更新时间:2024-08-07 11:45:41

我的收藏

简介

本文档提供快捷查询存储桶中某个对象是否存在的示例代码。示例代码实际调用了 HEAD Object COS API,是该接口的简化版。

注意事项

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

功能说明

检查存储桶中是否存在某个对象,可通过封装cos.headObject方法实现。

前期准备

开始使用前,确保您已经完成了 SDK 初始化

使用案例

function doesObjectExist() {
cos.headObject({
Bucket: 'examplebucket-1250000000', // 填入您自己的存储桶,必须字段
Region: 'COS_REGION', // 存储桶所在地域,例如ap-beijing,必须字段
Key: '1.jpg', // 存储在桶里的对象键(例如1.jpg,a/b/test.txt),必须字段
}, function(err, data) {
if (data) {
console.log('对象存在');
} else if (err.statusCode == 404) {
console.log('对象不存在');
} else if (err.statusCode == 403) {
console.log('没有该对象读权限');
}
});
}

参数说明

参数名
参数描述
类型
是否必填
Bucket
存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式
String
Region
存储桶所在地域,枚举值请参见 地域和访问域名
String
Key
对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述
String
IfModifiedSince
当对象在指定时间后被修改,返回对应对象的元数据信息,否则返回304
String

回调函数说明

function(err, data) { ... }
参数名
参数描述
类型
err
请求发生错误时返回的对象,包括网络错误和业务错误。如果请求成功则为空,更多详情请参见 错误码
Object
- statusCode
请求返回的 HTTP 状态码,例如200、403、404等
Number
- headers
请求返回的头部信息
Object
data
请求成功时返回的对象,如果请求发生错误,则为空
Object
- statusCode
请求返回的 HTTP 状态码,例如200,304等,如果在指定时间后未被修改,则返回304
Number
- headers
请求返回的头部信息
Object
- x-cos-object-type
用来表示对象是否可以被追加上传,枚举值:normal、appendable,默认 normal 不显示在返回中
String
- x-cos-storage-class
对象的存储类型,枚举值:STANDARD、STANDARD_IA、ARCHIVE、DEEP_ARCHIVE 等,默认值:STANDARD 不显示在返回中。更多存储类型请参见 存储类型概述
String
- x-cos-meta-*
用户自定义的 meta
String
- NotModified
对象是否在指定时间后未被修改
Boolean
- ETag
返回文件的 MD5 算法校验值。ETag 的值可以用于检查对象在上传过程中是否有损坏
例如"09cba091df696af91549de27b8e7d0f6"注意:这里的 ETag 值字符串前后带有双引号
String
- VersionId
在开启过版本控制的存储桶中上传对象返回对象的版本 ID,存储桶从未开启则不返回该参数
String

API 操作

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