修改对象元数据
功能介绍
用户可以通过本接口添加、修改或删除桶中已经上传的对象的元数据。
请求消息样式
1 2 3 4 5 6 7 8 |
PUT /ObjectName?metadata HTTP/1.1 Host: bucketname.obs.region.example.com Content-Type: application/xml Content-Length: length Authorization: authorization Date: date <Optional Additional Header> <object Content> |
请求消息参数
参数名称 |
描述 |
是否必选 |
---|---|---|
versionId |
对象的版本号。 类型:String |
否 |
请求消息头
OBS支持在修改对象元数据的请求里携带HTTP协议规定的6个请求头:Cache-Control、Expires、Content-Encoding、Content-Disposition、Content-Type、Content-Language,OBS会直接将这些头域的值保存在对象元数据中,在下载对象或者HEAD对象的时候,这些保存的值将会被设置到对应的HTTP头域中返回客户端。
消息头名称 |
描述 |
是否必选 |
---|---|---|
x-obs-metadata-directive |
元数据操作指示符。 取值为REPLACE_NEW或REPLACE。 REPLACE_NEW表示:对于已经存在值的元数据进行替换,不存在值的元数据进行赋值,未指定的元数据保持不变(备注:自定义头域作替换处理)。 REPLACE表示:使用当前请求中携带的头域完整替换,未指定的元数据(本表中除x-obs-storage-class的其它元数据)会被删除。 类型:String |
是 |
Cache-Control |
指定Object被下载时的网页的缓存行为。 类型:String |
否 |
Content-Disposition |
指定Object被下载时的名称。 类型:String |
否 |
Content-Encoding |
指定Object被下载时的内容编码格式。 类型:String |
否 |
Content-Language |
指定Object被下载时的内容语言格式。 类型:String |
否 |
Content-Type |
Object文件类型。 类型:String |
否 |
Expires |
指定Object被下载时的网页的缓存过期时间。 类型:String |
否 |
x-obs-website-redirect-location |
当桶设置了Website配置,可以将获取这个对象的请求重定向到桶内另一个对象或一个外部的URL。 例如,重定向请求到桶内另一对象: x-obs-website-redirect-location:/anotherPage.html 或重定向请求到一个外部URL: x-obs-website-redirect-location:http://www.example.com/ 类型:String 约束:必须以“/”、“http://”或“https://”开头,长度不超过2KB |
否 |
x-obs-storage-class |
指定对象的存储类型。 类型:String 说明:存储类型有3种:STANDARD(标准存储)、WARM(温存储)、COLD(冷存储)。因此这里可配置的值有:STANDARD、WARM、COLD,注意大小写敏感。 示例:x-obs-storage-class: STANDARD |
否 |
x-obs-meta-* |
可以在请求中加入以“x-obs-meta-”开头的消息头,用来加入自定义的元数据,以便对对象进行自定义管理。当用户获取此对象或查询此对象元数据时,加入的自定义元数据将会在返回消息的头中出现。 类型:String 示例:x-obs-meta-test: test metadata |
否 |
请求消息元素
该请求消息中不使用消息元素。
响应消息样式
1 2 3 4 5 |
HTTP/1.1 status_code Date: date Content-Length: length Etag: etag Last-Modified: time |
响应消息头
消息头名称 |
描述 |
---|---|
x-obs-metadata-directive |
元数据操作指示符。 取值为REPLACE_NEW或REPLACE。 类型:String |
Cache-Control |
指定Object被下载时的网页的缓存行为。如果请求携带了此头域,那么响应的消息中应该包含此消息头。 类型:String |
Content-Disposition |
指定Object被下载时的名称。如果请求携带了此头域,那么响应的消息中应该包含此消息头。 类型:String |
Content-Encoding |
指定Object被下载时的内容编码格式。如果请求携带了此头域,那么响应的消息中应该包含此消息头。 类型:String |
Content-Language |
指定Object被下载时的内容语言格式。如果请求携带了此头域,那么响应的消息中应该包含此消息头。 类型:String |
Expires |
指定Object被下载时的网页的缓存过期时间。如果请求携带了此头域,那么响应的消息中应该包含此消息头。 类型:String |
x-obs-website-redirect-location |
当桶设置了Website配置,可以将获取这个对象的请求重定向到桶内另一个对象或一个外部的URL。如果请求携带了此头域,那么响应的消息中应该包含此消息头。 类型:String |
x-obs-storage-class |
指定对象的存储类型。如果请求携带了此头域,那么响应的消息中应该包含此消息头。 类型:String |
x-obs-meta-* |
用户自定义的元数据,以便对对象进行自定义管理。如果请求携带了此头域,那么响应的消息中应该包含此消息头。 类型:String |
响应消息元素
该请求的响应消息中不带消息元素。
错误响应消息
无特殊错误;所有错误已经包含在表2中。
请求示例:添加对象元数据
给对象object添加元数据:Content-Type:application/zip和x-obs-meta-test:meta。
1 2 3 4 5 6 7 8 9 |
PUT /object?metadata HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.example.com Accept: */* Date: WED, 01 Jul 2015 14:24:33 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s= x-obs-metadata-directive:REPLACE_NEW Content-Type:application/zip x-obs-meta-test:meta |
响应示例:添加对象元数据
1 2 3 4 5 6 7 8 9 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 8DF400000163D3E4BB5905C41B6E65B6 Accept-Ranges: bytes x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSD3nAiTaBoeyt9oHp9vTYtXnLDmwV6D Date: WED, 01 Jul 2015 04:19:21 GMT Content-Length: 0 x-obs-metadata-directive:REPLACE_NEW x-obs-meta-test:meta |
请求示例:修改对象元数据
对象object已存在元数据x-obs-meta-test:testmeta,且x-obs-storage-class为WARM,将对象object的元数据x-obs-meta-test修改为newmeta,x-obs-storage-class修改为COLD。
1 2 3 4 5 6 7 8 9 |
PUT /object?metadata HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.example.com Accept: */* Date: WED, 01 Jul 2015 14:24:33 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s= x-obs-metadata-directive:REPLACE_NEW x-obs-meta-test:newmeta x-obs-storage-class:COLD |
响应示例:修改对象元数据
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 x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSD3nAiTaBoeyt9oHp9vTYtXnLDmwV6D Date: WED, 01 Jul 2015 04:19:21 GMT Content-Length: 0 x-obs-metadata-directive:REPLACE_NEW x-obs-meta-test:newmeta x-obs-storage-class:COLD |
请求示例:删除对象元数据
对象object已存在元数据x-obs-meta-test:newmeta,Content-Type:application/zip,删除元数据x-obs-meta-test。
1 2 3 4 5 6 7 8 |
PUT /object?metadata HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.example.com Accept: */* Date: WED, 01 Jul 2015 14:24:33 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s= x-obs-metadata-directive:REPLACE Content-Type:application/zip |
响应示例:删除对象元数据
1 2 3 4 5 6 7 8 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 8DF400000163D3E4BB5905C41B6E65B6 Accept-Ranges: bytes x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSD3nAiTaBoeyt9oHp9vTYtXnLDmwV6D Date: WED, 01 Jul 2015 04:19:21 GMT Content-Length: 0 x-obs-metadata-directive:REPLACE |