开发者社区> 问答> 正文

关于Object操作之如何实现HeadObject?


Head Object


Head Object只返回某个Object的meta信息,不返回文件内容。

请求语法HEAD /ObjectName HTTP/1.1
Host: BucketName/oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue





请求Header

名称描述
If-Modified-Since如果指定的时间早于实际修改时间,则返回200 OK和Object Meta;否则返回304 not modified 类型:字符串 默认值:无
If-Unmodified-Since如果传入参数中的时间等于或者晚于文件实际修改时间,则返回200 OK和Object Meta;否则返回412 precondition failed错误 类型:字符串 默认值:无
If-Match如果传入期望的ETag和object的 ETag匹配,则返回200 OK和Object Meta;否则返回412 precondition failed错误 类型:字符串 默认值:无
If-None-Match如果传入的ETag值和Object的ETag不匹配,则返回200 OK和Object Meta;否则返回304 Not Modified 类型:字符串 默认值:无


细节分析

  1. 不论正常返回200 OK还是非正常返回,Head Object都不返回消息体。
  2. HeadObject支持在头中设定If-Modified-Since, If-Unmodified-Since, If-Match,If-None-Match的查询条件。具体规则请参见GetObject中对应的选项。如果没有修改,返回304 Not Modified。
  3. 如果用户在PutObject的时候传入以x-oss-meta-为开头的user meta,比如x-oss-meta-location,返回消息时,返回这些user meta。
  4. 如果文件不存在返回404 Not Found错误。
  5. 若该Object为进行服务器端熵编码加密存储的,则在Head请求响应头中,会返回x-oss-server-side-encryption,其值表明该Object的服务器端加密算法。
  6. 如果文件类型为[backcolor=transparent]符号链接, 响应头中Content-Length、ETag、Content-Md5 均为目标文件的元信息;Last-Modified是目标文件和符号链接的最大值;其他均为符号链接元信息。
  7. 如果文件类型为[backcolor=transparent]符号链接,并且目标文件不存在,返回404 Not Found错误。错误码:SymlinkTargetNotExist。
  8. 如果文件类型为[backcolor=transparent]符号链接,并且目标文件类型是符号链接,返回400 Bad request错误。错误码:InvalidTargetType。
  9. x-oss-storage-class展示Object的存储类型:Standard,IA,Archive
  10. 如果Bucket类型为Archive,且用户已经提交Restore请求,则响应头中会以x-oss-restore返回该Object的Restore状态,分如下几种情况:    a. 如果没有提交Restore或者Restore已经超时,则不返回该字段。    b. 如果已经提交Restore,且Restore没有时完成,则返回的x-oss-restore值为: ongoing-request=”true”。    c. 如果已经提交Restore,且Restore已经完成,则返回的x-oss-restore值为: ongoing-request=”false”, expiry-date=”Sun, 16 Apr 2017 08:12:33 GMT”。


示例


[backcolor=transparent]请求示例: HEAD /oss.jpg HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 24 Feb 2012 07:32:52 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfj byc:J bzF2LxZUtanlJ5dLA092wpDC/E=


[backcolor=transparent]返回示例: HTTP/1.1 200 OK
x-oss-request-id: 559CC9BDC755F95A64485981
x-oss-object-type: Normal
x-oss-storage-class: Archive
Date: Fri, 24 Feb 2012 07:32:52 GMT
Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT
ETag: "fba9dede5f27731c9771645a39863328"
Content-Length: 344606
Content-Type: image/jpg
Connection: keep-alive
Server: AliyunOSS


[backcolor=transparent]提交Restore请求但restore没有完成时的请求示例 HEAD /oss.jpg HTTP/1.1
Host: oss-archive-example.oss-cn-hangzhou.aliyuncs.com
Date: Sat, 15 Apr 2017 07:32:52 GMT
Authorization: OSS e1Unnbm1rgdnpI:KKxkdNrUBu2t1kqlDh0MLbDb99I=


[backcolor=transparent]返回示例 HTTP/1.1 200 OK
x-oss-request-id: 58F71A164529F18D7F000045
x-oss-object-type: Normal
x-oss-storage-class: Archive
x-oss-restore: ongoing-request="true"
Date: Sat, 15 Apr 2017 07:32:52 GMT
Last-Modified: Sat, 15 Apr 2017 06:07:48 GMT
ETag: "fba9dede5f27731c9771645a39863328"
Content-Length: 344606
Content-Type: image/jpg
Connection: keep-alive
Server: AliyunOSS


[backcolor=transparent]提交Restore请求且restore已经完成时的请求示例 HEAD /oss.jpg HTTP/1.1
Host: oss-archive-example.oss-cn-hangzhou.aliyuncs.com
Date: Sat, 15 Apr 2017 09:35:51 GMT
Authorization: OSS e1Unnbm1rgdnpI:21qtGJ+ykDVmdu6O6FMJnn+WuBw=


[backcolor=transparent]返回示例 HTTP/1.1 200 OK
x-oss-request-id: 58F725344529F18D7F000055
x-oss-object-type: Normal
x-oss-storage-class: Archive
x-oss-restore: ongoing-request="false", expiry-date="Sun, 16 Apr 2017 08:12:33 GMT"
Date: Sat, 15 Apr 2017 09:35:51 GMT
Last-Modified: Sat, 15 Apr 2017 06:07:48 GMT
ETag: "fba9dede5f27731c9771645a39863328"
Content-Length: 344606

展开
收起
青衫无名 2017-10-20 11:24:00 3276 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
建立联系方法之一 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载