更新时间:2024-09-29 GMT+08:00

获取对象元数据

功能介绍

拥有对象读权限的用户可以执行HEAD操作命令获取对象元数据,返回信息包含对象的元数据信息。

获取采用SSE-C加密的对象的元数据时,需要携带SSE-C相关头域,详见表2

多版本

默认情况下,获取的是最新版本的对象元数据。如果最新版本的对象是删除标记,则返回404。如果要获取指定版本的对象元数据,请求可携带versionId消息参数。

请求消息样式

1
2
3
4
HEAD /ObjectName HTTP/1.1 
Host: bucketname.obs.region.myhuaweicloud.com 
Date: date
Authorization: authorization

请求消息参数

请求参数说明如表1所示。

表1 请求消息参数

参数名称

参数类型

是否必选

描述

versionId

String

参数解释:

对象的版本号。

约束限制:

取值范围:

长度为32的字符串。

默认取值:

请求消息头

该请求使用公共消息头,具体请参考表3

另外该请求可以使用附加的消息头,具体如表2所示。

表2 请求消息头

消息头名称

消息头类型

是否必选

描述

Origin

String

参数解释:

预请求指定的跨域请求Origin(通常为域名)。

约束限制:

允许多条匹配规则,以回车换行为间隔。每个匹配规则允许使用最多一个“*”通配符。

取值范围:

符合CORS协议的取值范围。

默认取值:

Access-Control-Request-Headers

String

参数解释:

实际请求可以使用的HTTP头域,可以带多个头域。

约束限制:

允许的头域可设置多个,多个头域之间换行隔开,每行最多可填写一个*符号,不支持&、:、<、空格以及中文字符。

取值范围:

符合CORS协议的取值范围。

默认取值:

x-obs-server-side-encryption-customer-algorithm

String

否。当使用SSE-C方式时,必选。

参数解释:

在SSE-C加密方式下使用该头域,该头域表示解密使用的算法。

示例:x-obs-server-side-encryption-customer-algorithm:AES256

约束限制:

需要和x-obs-server-side-encryption-customer-key, x-obs-server-side-encryption-customer-key-MD5一起使用。

取值范围:

AES256

默认取值:

x-obs-server-side-encryption-customer-key

String

否。当使用SSE-C方式时,必选。

参数解释:

在SSE-C加密方式下使用该头域,该头域表示解密使用的密钥。

示例:x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

约束限制:

该头域由256-bit的密钥经过base64-encoded得到,需要和x-obs-server-side-encryption-customer-algorithm,x-obs-server-side-encryption-customer-key-MD5一起使用。

取值范围:

默认取值:

x-obs-server-side-encryption-customer-key-MD5

String

否。当使用SSE-C方式时,必选。

参数解释:

在SSE-C加密方式下使用该头域,该头域表示解密使用的密钥的MD5值。MD5值用于验证密钥传输过程中没有出错。

示例:x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ==

约束限制:

该头域由密钥的128-bit MD5值经过base64-encoded得到,需要和x-obs-server-side-encryption-customer-algorithm,x-obs-server-side-encryption-customer-key一起使用。

取值范围:

密钥ID MD5的base64值。

默认取值:

请求消息元素

该请求消息中不使用消息元素。

响应消息样式

1
2
3
4
5
6
HTTP/1.1 status_code
Content-Type: type
Date: date
Content-Length: length
Etag: etag
Last-Modified: time

响应消息头

该请求的响应消息使用公共消息头,具体请参考表1

除公共响应消息头之外,还可能使用如下表3中的消息头。

表3 附加响应消息头

消息头名称

消息头类型

描述

x-obs-expiration

String

参数解释:

对象的详细过期信息。

约束限制:

取值范围:

当对象单独设置了对象lifecycle,过期时间以对象lifecycle为准,该消息头用expiry-date描述对象的详细过期信息;如果对象没有设置对象lifecycle,设置了桶级别lifecycle,过期时间以桶级别lifecycle为准,该消息头用expiry-date和rule-id两个键值对描述对象的详细过期信息;否则不显示该头域。

默认取值:

x-obs-website-redirect-location

String

参数解释:

当桶设置了Website配置,就可以设置对象元数据的这个属性,Website接入点返回301重定向响应,将获取这个对象的请求重定向到该属性指定的桶内另一个对象或一个外部的URL,该参数指明对象的重定向地址。

例如,重定向请求到桶内另一对象:

WebsiteRedirectLocation:/anotherPage.html

或重定向请求到一个外部URL:

WebsiteRedirectLocation:http://www.example.com/

OBS将这个值从头域中取出,保存在对象的元数据“WebsiteRedirectLocation”中。

约束限制:

  • 必须以“/”、“http://”或“https://”开头,长度不超过2KB。
  • OBS仅支持为桶根目录下的对象设置重定向,不支持为桶中文件夹下的对象设置重定向。

默认取值:

x-obs-version-id

String

参数解释:

对象的版本号。如果该对象无版本号,则响应中不会出现该消息头。

约束限制:

长度为32的字符串。

取值范围:

默认取值:

Access-Control-Allow-Origin

String

参数解释:

当桶设置了CORS配置,如果请求中的Origin满足服务端的CORS配置,则在响应中包含这个Origin。

约束限制:

取值范围:

符合CORS协议的取值范围。

默认取值:

Access-Control-Allow-Headers

String

参数解释:

当桶设置了CORS配置,如果请求的headers满足服务端的CORS配置,则在响应中包含这个headers。

约束限制:

最多可填写一个“*”通配符,不支持&、:、<、空格以及中文字符。

取值范围:

符合CORS协议的取值范围。

默认取值:

Access-Control-Max-Age

Integer

参数解释:

桶CORS规则中的MaxAgeSeconds。MaxAgeSeconds指请求来源的客户端可以对跨域请求返回结果的缓存时间。

约束限制:

每个CORSRule可以包含至多一个MaxAgeSeconds。

取值范围:

大于等于0的整型数,单位:秒。

默认取值:

3000

Access-Control-Allow-Methods

String

参数解释:

当桶设置了CORS配置,如果请求的Access-Control-Request-Method满足服务端的CORS配置,则在响应中包含这条rule中的Methods。

取值范围:

  • GET
  • PUT
  • HEAD
  • POST
  • DELETE

Access-Control-Expose-Headers

String

参数解释:

桶CORS规则中的ExposeHeader。ExposeHeader是指CORS规则允许响应中可返回的附加头域,给客户端提供额外的信息。默认情况下浏览器只能访问以下头域:Content-Length、Content-Type,如果需要访问其他头域,需要在附加头域中配置。

约束限制:

不支持*、&、:、<、空格以及中文字符。

取值范围:

默认取值:

x-obs-server-side-encryption

String

参数解释:

该头域表示服务端的加密方式。

示例:x-obs-server-side-encryption:kms

约束限制:

如果服务端加密是SSE-KMS方式,响应包含该头域。

取值范围:

  • kms
  • AES256

默认取值:

x-obs-server-side-encryption-kms-key-id

String

参数描述:

当加密方式为SSE-KMS且使用指定密钥加密时,需输入密钥ID。密钥ID获取方法请参见查看密钥

约束限制:

当您设置了x-obs-server-side-encryption头域且赋值为“kms”,即选择kms加密方式时,才能使用该头域指定加密密钥。

默认取值:

当您选择使用kms加密方式,但未设置此头域时,默认的主密钥将会被使用。如果默认主密钥不存在,系统将默认创建并使用。

x-obs-server-side-encryption-customer-algorithm

String

参数解释:

如果服务端加密是SSE-C方式,响应包含该头域,该头域表示解密使用的算法。

示例:x-obs-server-side-encryption-customer-algorithm:AES256

约束限制:

取值范围:

AES256

默认取值:

x-obs-server-side-encryption-customer-key-MD5

String

参数解释:

如果服务端加密是SSE-C方式,响应包含该头域,该头域表示解密使用的密钥的MD5值。

示例:x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ==

约束限制:

由密钥值经过MD5加密再经过Base64编码后得到,示例:4XvB3tbNTN+tIEVa0/fGaQ==

取值范围:

密钥ID MD5的base64值。

默认取值:

x-obs-storage-class

String

参数解释:

对象的存储类型。

约束限制

仅当对象为非标准存储类型时,会返回此头域。

取值范围:

  • WARM
  • COLD
  • DEEP_ARCHIVE

默认取值:

x-obs-restore

String

参数解释:

标识对象的恢复状态。

示例:正在恢复ongoing-request="true";已恢复 ongoing-request="false", expiry-date="Wed, 7 Nov 2012 00:00:00 GMT"。其中expiry-date表示对象恢复后的失效时间。

约束限制:

仅当对象为归档或深度归档存储类型,并且处于正在恢复或已经恢复时,会返回此头域。

取值范围:

默认取值:

x-obs-object-type

String

参数解释:

对象的类型。

约束限制:

仅当对象为非Normal对象时,会返回此头域。

取值范围:

Appendable

默认取值:

x-obs-next-append-position

Integer

参数解释:

指明下一次请求应该提供的position。

约束限制:

仅当对象为Appendable对象时,会返回此头域。

取值范围:

默认取值:

x-obs-uploadId

String

参数解释:

表示对应的多段任务ID。

约束限制:

仅当对象由多段上传任务合而来时,会返回此头域。

取值范围:

默认取值:

x-obs-object-lock-mode

String

参数解释:

应用于此对象的WORM模式。

示例:x-obs-object-lock-mode:COMPLIANCE

约束限制:

  • 仅当对象有配置过对象级WORM保护策略或应用桶级默认WORM策略时返回该参数。
  • 该用户具有GetObjectRetention权限。

取值范围:

目前仅支持COMPLIANCE,即合规模式。

默认取值:

x-obs-object-lock-retain-until-date

String

参数解释:

此对象的锁定过期的截止时间。

示例:x-obs-object-lock-retain-until-date:2015-07-01T04:11:15Z

约束限制:

  • 格式要求为UTC时间,并符合ISO 8601标准。如:2015-07-01T04:11:15Z。
  • 仅当对象有配置过对象级WORM保护策略或应用桶级默认WORM策略时返回该参数。
  • 该用户具有GetObjectRetention权限。

取值范围:

设置该值时需要大于当前时间。

默认取值:

响应消息元素

该请求的响应消息中不带消息元素。

错误响应消息

无特殊错误;所有错误已经包含在表2中。

请求示例

1
2
3
4
5
6
HEAD /object1 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 04:19:25 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:/cARjk81l2iExMfQqn6iT3qEZ74=

响应示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 8DF400000163D3E4BB5905C41B6E65B6
Accept-Ranges: bytes
ETag: "3b46eaf02d3b6b1206078bb86a7b7013"
Last-Modified: WED, 01 Jul 2015 01:19:21 GMT
Content-Type: binary/octet-stream
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSD3nAiTaBoeyt9oHp9vTYtXnLDmwV6D
Date: WED, 01 Jul 2015 04:19:21 GMT
Content-Length: 4572

请求示例:当Bucket启用版本控制时获取对象元数据

HEAD /object1?versionId=G001118A49821905FFFFD28739D419DA HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml

响应示例:当Bucket启用版本控制时获取对象元数据

x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCShLiL70qeT0g5qpMquCeztsnr1jJmRs
Accept-Ranges: bytes
x-obs-request-id: 0000018A4986DDCDD24538ACF6B54255
Server: OBS
ETag: \
x-obs-tagging-count: 0
Last-Modified: Thu, 31 Aug 2013 02:52:57 GMT
Content-Length: 0
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: text/plain
x-obs-version-id: G001118A49821905FFFFD28739D419DA