华为云对象存储OBS获取对象元数据_云淘科技

功能介绍

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

该操作支持服务端加密功能。

多版本

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

请求消息样式

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

请求消息参数

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

表1 请求消息参数

参数名称

描述

是否必选

versionId

对象的版本号。

类型:String

请求消息头

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

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

表2 请求消息头

消息头名称

描述

是否必选

Origin

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

类型:String

Access-Control-Request-Headers

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

类型:String

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

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

类型:String

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

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

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

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

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

类型:String

示例: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一起使用。

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

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

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

类型:String

示例: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一起使用。

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

请求消息元素

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

响应消息样式

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

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

类型:String

x-obs-website-redirect-location

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

类型:String

x-obs-version-id

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

类型:String

默认值:无

Access-Control-Allow-Origin

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

类型:String

Access-Control-Allow-Headers

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

类型:String

Access-Control-Max-Age

当桶设置了CORS配置,服务端CORS配置中的MaxAgeSeconds。

类型:Integer

Access-Control-Allow-Methods

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

类型:String

有效值:GET、PUT、HEAD、POST 、DELETE

Access-Control-Expose-Headers

当桶设置了CORS配置,服务端CORS配置中的ExposeHeader。

类型:String

x-obs-server-side-encryption

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

类型:String

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

x-obs-server-side-data-encryption

如果服务端加密是SSE-KMS方式,且数据加密算法为SM4,响应包含该头域。

类型:String

示例:x-obs-server-side-data-encryption:SM4

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

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

类型:String

格式为: regionID:domainID(租户ID):key/key_id. 其中regionID是使用密钥所属region的ID;domainID是使用密钥所属租户的租户ID;key_id是本次加密使用的密钥ID。

示例: x-obs-server-side-encryption-kms-key-id:cn-north-4:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0

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

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

类型:String

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

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

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

类型:String

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

x-obs-storage-class

对象为非标准存储对象时,会返回此头域,可取值为:WARM或者COLD、DEEP_ARCHIVE

类型:String

x-obs-restore

对象为归档或深度归档存储类型,并且处于正在恢复或已经恢复时,会返回此头域。表示对象的恢复状态:正在恢复ongoing-request=”true”;已恢复 ongoing-request=”false”, expiry-date=”Wed, 7 Nov 2012 00:00:00 GMT”。其中expiry-date表示对象恢复后的失效时间。

类型:String

x-obs-object-type

对象为非Normal对象时,会返回此头域,可取值为:Appendable

类型:String

x-obs-next-append-position

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

类型:Integer

x-obs-uploadId

对象为多段上传任务合并而来时,会返回此头域,头域值表示对应的多段任务ID

类型:String

x-obs-object-lock-mode

应用于此对象的WORM模式,目前仅支持COMPLIANCE,即合规模式,仅当对象有配置过对象级WORM保护策略或应用桶级默认WORM策略时返回,需要有GetObjectRetention权限。

类型:String

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

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

此对象的锁定过期的截止时间,格式要求为UTC时间,并符合ISO 8601标准。如:2015-07-01T04:11:15Z,仅当对象有配置过对象级WORM保护策略或应用桶级默认WORM策略时返回,需要有GetObjectRetention权限。

类型:String

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

响应消息元素

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

错误响应消息

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

请求示例

1
2
3
4
5
6
HEAD /object1 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.cn-north-4.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

父主题: 对象操作

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家