更新时间:2025-02-26 gmt 08:00

修改对象元数据-九游平台

功能介绍

用户可以通过本接口添加、修改或删除桶中已经上传的对象的元数据。

请求消息样式

1
2
3
4
5
6
7
8
put/objectname?metadatahttp/1.1
host:bucketname.obs.cn-north-4.myhuaweicloud.com
content-type:application/xml
content-length:length
authorization:authorization
date:date
additionalheader>
content>

请求消息参数

表1 请求消息参数

参数名称

参数类型

是否必选

描述

versionid

string

参数解释:

对象的版本号。

约束限制:

取值范围:

长度为32的字符串。

默认取值:

请求消息头

obs支持在修改对象元数据的请求里携带http协议规定的6个请求头:cache-control、expires、content-encoding、content-disposition、content-type、content-language,obs会直接将这些头域的值保存在对象元数据中,在下载对象或者head对象的时候,这些保存的值将会被设置到对应的http头域中返回客户端。

表2 请求消息头

消息头名称

消息头类型

是否必选

描述

x-obs-metadata-directive

string

参数解释:

元数据操作指示符。

约束限制:

如果您想要通过修改对象元数据的方式修改对象存储类别,x-obs-metadata-directive必须使用replace_new。

取值范围:

  • replace_new:表示对于已经存在值的元数据进行替换,不存在值的元数据进行赋值,未指定的元数据保持不变(自定义头域作替换处理)。
  • replace:表示使用当前请求中携带的头域完整替换,未指定的元数据(本表中除x-obs-storage-class的其它元数据)会被删除。

默认取值:

cache-control

string

参数解释:

指定对象被下载时的网页的缓存行为。

约束限制:

取值范围:

参见http标准头域cache-control的取值。

默认取值:

content-disposition

string

参数解释:

指定对象被下载时的名称。

约束限制:

取值范围:

参见http标准头域content-disposition的取值。

默认取值:

content-encoding

string

参数解释:

指定对象被下载时的内容编码格式。

约束限制:

取值范围:

参见http标准头域content-encoding的取值。

默认取值:

content-language

string

参数解释:

指定对象被下载时的内容语言格式。

约束限制:

取值范围:

参见http标准头域content-language的取值。

默认取值:

content-type

string

参数解释:

指定对象被下载时的文件类型。

约束限制:

取值范围:

参见http标准头域content-type的取值。

默认取值:

expires

string

参数解释:

指定对象被下载时的网页的缓存过期时间。

注意:

此参数不用于设置对象过期时间,设置过期时间的参数请使用x-obs-expires。

约束限制:

取值范围:

参见http标准头域expires的取值。

默认取值:

x-obs-website-redirect-location

string

参数解释:

当桶设置了website配置,可以将获取这个对象的请求重定向到桶内另一个对象或一个外部的url。

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

x-obs-website-redirect-location:/anotherpage.html

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

x-obs-website-redirect-location:http://www.example.com/

约束限制:

必须以“/”、“http://”或“https://”开头,长度不超过2kb。

取值范围:

默认取值:

x-obs-storage-class

string

参数解释:

指定对象的存储类型。

示例:x-obs-storage-class: standard

约束限制:

指定对象的存储类型时请注意大小写敏感。

取值范围:

  • standard
  • warm
  • cold
  • deep_archive

默认取值:

x-obs-meta-*

string

参数解释:

对象的自定义元数据。obs支持用户使用以“x-obs-meta-”开头的消息头来加入自定义的元数据,以便对对象进行自定义管理。当用户获取此对象或查询此对象元数据时,加入的自定义元数据将会在返回的消息头中出现。

示例:x-obs-meta-test: test metadata

约束限制:

  • 所有自定义元数据大小的总和不超过8k。单个自定义元数据大小的计算方式为:每个键和值的utf-8 编码中的字节总数。
  • 自定义元数据的key值不区分大小写,obs统一转为小写进行存储。value值区分大小写。
  • 自定义元数据key-value对都必须符合us-ascii。如果一定要使用非ascii码或不可识别字符,需要客户端自行做编解码处理,可以采用url编码或者base64编码,服务端不会做解码处理。例如x-obs-meta-中文:中文经url编码后发送,“中文”的url编码为:中文,则响应为x-obs-meta-中文: 中文

取值范围:

默认取值:

x-obs-expires

integer

参数解释:

指定对象过期时间,单位是天。过期之后对象会被自动删除。

示例:x-obs-expires:3

约束限制:

设置的天数计算出的过期时间不能早于当前时间,如10天前上传的对象,不能设置小于10的值。

取值范围:

大于0的整数值。

默认取值:

x-obs-tagging

string

参数解释:

以键值对(key-value)的形式指定对象的标签信息,可同时设置多个标签。

示例:x-obs-tagging:taga=a&tagb&tagc

约束限制:

  • key或value包含特殊字符以及“=”、中文字符时,需要进行url编码处理。
  • 如果某项没有“=”,则看作value为空字符串。

取值范围:

默认取值:

请求消息元素

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

响应消息样式

1
2
3
4
5
http/1.1status_code
date:date
content-length:length
etag:etag
last-modified:time

响应消息头

表3 附加响应消息头

消息头名称

消息头类型

描述

x-obs-metadata-directive

string

参数解释:

元数据操作指示符。

取值范围:

  • replace_new:表示对于已经存在值的元数据进行替换,不存在值的元数据进行赋值,未指定的元数据保持不变(自定义头域作替换处理)。
  • replace:表示使用当前请求中携带的头域完整替换,未指定的元数据(本表中除x-obs-storage-class的其它元数据)会被删除。

默认取值:

cache-control

string

参数解释:

指定对象被下载时的网页的缓存行为。

约束限制:

如果请求携带了此头域,那么响应的消息中应该包含此消息头。

取值范围:

参见http标准头域cache-control的取值。

默认取值:

content-disposition

string

参数解释:

指定对象被下载时的名称。

约束限制:

如果请求携带了此头域,那么响应的消息中应该包含此消息头。

取值范围:

参见http标准头域content-disposition的取值。

默认取值:

content-encoding

string

参数解释:

指定对象被下载时的内容编码格式。

约束限制:

如果请求携带了此头域,那么响应的消息中应该包含此消息头。

取值范围:

参见http标准头域content-encoding的取值。

默认取值:

content-language

string

参数解释:

指定对象被下载时的内容语言格式。

约束限制:

如果请求携带了此头域,那么响应的消息中应该包含此消息头。

取值范围:

参见http标准头域content-language的取值。

默认取值:

expires

string

参数解释:

指定对象被下载时的网页的缓存过期时间。

约束限制:

如果请求携带了此头域,那么响应的消息中应该包含此消息头。

取值范围:

参见http标准头域expires的取值。

默认取值:

x-obs-website-redirect-location

string

参数解释:

当桶设置了website配置,可以将获取这个对象的请求重定向到桶内另一个对象或一个外部的url。

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

x-obs-website-redirect-location:/anotherpage.html

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

x-obs-website-redirect-location:http://www.example.com/

约束限制:

  • 如果请求携带了此头域,那么响应的消息中应该包含此消息头。
  • 必须以“/”、“http://”或“https://”开头,长度不超过2kb。

取值范围:

默认取值:

x-obs-storage-class

string

参数解释:

指定对象的存储类型。

约束限制:

  • 如果请求携带了此头域,那么响应的消息中应该包含此消息头。
  • 指定对象的存储类型时请注意大小写敏感。

取值范围:

  • standard
  • warm
  • cold
  • deep_archive

默认取值:

x-obs-meta-*

string

参数解释:

对象的自定义元数据。obs支持用户使用以“x-obs-meta-”开头的消息头来加入自定义的元数据,以便对对象进行自定义管理。当用户获取此对象或查询此对象元数据时,加入的自定义元数据将会在返回的消息头中出现。

约束限制:

  • 如果请求携带了此头域,那么响应的消息中应该包含此消息头。
  • 所有自定义元数据大小的总和不超过8k。单个自定义元数据大小的计算方式为:每个键和值的utf-8 编码中的字节总数。
  • 自定义元数据的key值不区分大小写,obs统一转为小写进行存储。value值区分大小写。
  • 自定义元数据key-value对都必须符合us-ascii。如果一定要使用非ascii码或不可识别字符,需要客户端自行做编解码处理,可以采用url编码或者base64编码,服务端不会做解码处理。例如x-obs-meta-中文:中文经url编码后发送,“中文”的url编码为:中文,则响应为x-obs-meta-中文: 中文

取值范围:

默认取值:

x-obs-expires

integer

参数解释:

对象过期时间,单位是天。

约束限制:

  • 设置的天数计算出的过期时间不能早于当前时间,如10天前上传的对象,不能设置小于10的值。
  • 如果请求携带了此头域,那么响应的消息中应该包含此消息头。

取值范围:

大于0的整数值。

默认取值:

响应消息元素

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

错误响应消息

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

请求示例:添加对象元数据

给对象object添加元数据:content-type:application/zip和x-obs-meta-test:meta。

1
2
3
4
5
6
7
8
9
put/object?metadatahttp/1.1
user-agent:curl/7.29.0
host:examplebucket.obs.cn-north-4.myhuaweicloud.com
accept:*/*
date:wed,01jul201514:24:33gmt
authorization:obsh4ipjx0tqththebqqcec: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.1200ok
server:obs
x-obs-request-id:8df400000163d3e4bb5905c41b6e65b6
accept-ranges:bytes
x-obs-id-2:32aaaqaaeaabaaaqaaeaabaaaqaaeaabcsd3naitaboeyt9ohp9vtytxnldmwv6d
date:wed,01jul201504:19:21gmt
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?metadatahttp/1.1
user-agent:curl/7.29.0
host:examplebucket.obs.cn-north-4.myhuaweicloud.com
accept:*/*
date:wed,01jul201514:24:33gmt
authorization:obsh4ipjx0tqththebqqcec: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.1200ok
server:obs
x-obs-request-id:8df400000163d3e4bb5905c41b6e65b6
accept-ranges:bytes
x-obs-id-2:32aaaqaaeaabaaaqaaeaabaaaqaaeaabcsd3naitaboeyt9ohp9vtytxnldmwv6d
date:wed,01jul201504:19:21gmt
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?metadatahttp/1.1
user-agent:curl/7.29.0
host:examplebucket.obs.cn-north-4.myhuaweicloud.com
accept:*/*
date:wed,01jul201514:24:33gmt
authorization:obsh4ipjx0tqththebqqcec:nxtsms0javxllnxlo9awamtn47s=
x-obs-metadata-directive:replace
content-type:application/zip

响应示例:删除对象元数据

1
2
3
4
5
6
7
8
http/1.1200ok
server:obs
x-obs-request-id:8df400000163d3e4bb5905c41b6e65b6
accept-ranges:bytes
x-obs-id-2:32aaaqaaeaabaaaqaaeaabaaaqaaeaabcsd3naitaboeyt9ohp9vtytxnldmwv6d
date:wed,01jul201504:19:21gmt
content-length:0
x-obs-metadata-directive:replace

相关文档

网站地图