查询高性能桶中对象的元数据,不返回对象内容(HEAD Object)。元数据通过响应头部返回。对高性能桶发起请求时,SDK 自动完成会话鉴权。
注意事项
对象键末尾的
/ 严格区分文件对象与目录对象,不做容错;类型不匹配按对象不存在处理(NoSuchKey 语义),HTTP 状态码为 404。HEAD 响应无错误正文时,SDK 的 get_error_code() 为 NoSuchResource,请按 HTTP 状态码判断。HEAD 请求不返回对象内容,所有元数据均从响应头中读取。
若仅需判断对象是否存在,可捕获
CosServiceError 并判断 get_status_code() == 404。对象键不能包含独立的
. 或 .. 路径段。查询元数据属于数据面接口,SDK 使用 session 临时凭证签名。
请求
方法原型
def head_object(self, Bucket, Key, **kwargs)
参数说明
参数名称 | 参数描述 | 类型 | 是否必选 |
Bucket | 高性能桶完整名称,格式为 <BucketName>-x--<APPID> | string | 是 |
Key | 对象键(Object Key),即对象在桶中的完整路径 | string | 是 |
kwargs | 可选请求参数,使用本文列出的参数 | dict | 否 |
响应
返回值为响应头部字典,常见头部:
头部 | 参数描述 | 类型 |
Content-Length | 对象内容长度(字节) | string |
Content-Type | 对象的 MIME 类型 | string |
ETag | 对象的 ETag | string |
Last-Modified | 对象的最后修改时间 | string |
x-cos-meta-* | 用户自定义元数据 | string |
返回的响应头字典保留服务端原始头名和值,同时提供小写别名,以及
ETag、Content-Length、Last-Modified、Content-Type 等固定键,可按 resp['ETag'] 或 resp['etag'] 读取。错误码
实际案例
# -*- coding=utf-8 -*-import osfrom qcloud_cos import CosConfig, CosS3Client# 高性能桶经 VPC 内网 HTTP 80 端口接入,SDK 的网关 DNS 负载均衡也仅对 HTTP 请求生效;SDK 默认 https,此处需显式指定 http。config = CosConfig(Scheme='http',Region='ap-guangzhou',SecretId=os.environ['COS_SECRET_ID'],SecretKey=os.environ['COS_SECRET_KEY'],Token=os.environ.get('COS_SECURITY_TOKEN'),EnableRapidDomain=True)client = CosS3Client(config)resp = client.head_object(Bucket='examplebucket-x--1250000000', Key='exampleobject.txt')print('Content-Length: %s' % resp.get('Content-Length'))print('ETag: %s' % resp.get('ETag'))