链接复制成功!
配置、编辑、查看对象元数据
使用场景
元数据(Metadata)为描述对象属性的信息,是一组名称和值的配对,用作对象管理的一部分。OBS 中有两种元数据:系统定义的对象元数据和自定义元数据。系统定义的元数据包括对象的创建日期、大小和存储类别等元数据;自定义元数据是您可以为对象自行设置的某些具有特殊含义的元数据,用来标识对象的用途或属性等。
您可以在上传对象时在OBS中设置对象元数据,也可以在上传对象后新增或修改元数据。
系统定义的对象元数据
系统定义的元数据又分为两种类别:系统控制和用户控制。
- 系统控制:受系统控制的元数据。例如:LastModified日期等数据由系统控制,人为不可修改。
- 用户控制:元数据的值可以由您控制,例如:使用OBS桶托管网站静态页面(静态页面存储在桶中),您可能希望将静态页面请求重定向到其他页面或外部URL,那么您可以为对象(静态页面)配置WebsiteRedirectLocation,将静态页面重定向值作为您可以控制的系统元数据。用户可控制修改的元数据见表1。
| 名称 | 说明 | 用户是否可修改该值 |
|---|---|---|
| ContentDisposition | 用来指示浏览器如何处理接收到的内容。最常见用于在下载文件时,指示浏览器直接显示文件还是重命名后下载至本地。常见的取值如下:
说明: 如果文件名包含特殊字符,那么文件被下载到本地时,文件的名称可能会被转义。为了确保文件名在不同浏览器中均正确显示,可以使用URL编码或RFC 5987编码。如:
关于更多内容,详情请参见HTTP协议中关于ContentDisposition的定义。 | 是 |
| ContentLanguage | 说明访问者希望根据自己偏好的语言来定制展示对象内容所采用的语言或语言组合。常见的取值如下:
说明: 一个或多个语言之间用逗号分隔,如:Content-Language: en-US, fr-FR。 关于更过内容,详情请参见HTTP协议中关于ContentLanguage的定义。 | 是 |
| WebsiteRedirectLocation | 为对象提供重定向功能,重定向到其他对象或者外部的URL。当对象被配置为重定向时,请求该对象,返回的响应头中会包含WebsiteRedirectLocation(用来告诉客户端应该重定向到其他URL页面)。重定向功能通过静态网站托管实现。 格式为:WebsiteRedirectLocation: <url>,其中“<url>”为重定向的目标URL。 OBS仅支持为桶根目录下的对象设置重定向,不支持为桶中文件夹下的对象设置重定向。 例如,可根据如下步骤实现对象重定向功能。
| 是 |
| ContentEncoding | 指定对象被下载时的内容编码格式。配置该元数据,可以让客户端根据对象的编码格式来正确解码,以便正确显示或处理内容。可以设置如下类型:
| 是 |
| CacheControl | 指定对象被下载时的网页的缓存行为。取值如下:
| 是 |
| Expires | 设置缓存过期时间(GMT)。 | 是 |
| ContentType | 设置对象的文件类型。文件类型决定了浏览器将以什么形式、什么编码读取文件。详见表2。 | 是 |
| Date | 当前日期和时间。如:WED, 01 Jul 2015 04:19:21 GMT | 否 |
| Content-Length | 对象大小 单位:字节 | 否 |
| Last-Modified | 对象首次上传日期或最后一次修改的日期。如:WED, 01 Jul 2015 04:19:21 GMT 对于分段上传,对象的创建日期是开始进行分段上传的日期。 | 否 |
| ETag | 对象的base64编码的128位MD5摘要。ETag是对象内容的唯一标识,可以通过该值识别对象内容是否有变化。例如:上传对象时ETag为A,下载对象时ETag为B,则说明对象内容发生了变化。 实际的ETag是对象的哈希值。 | 否 |
| x-obs-tagging-count | 对象关联的标签个数。如:x-obs-tagging-count:1表示该对象有1个标签 | 否 |
| x-obs-version-id | 对象的版本号。对桶启用多版本控制时,OBS会为桶中的对象指定版本号。更多信息,请参见多版本控制。 | 否 |
| x-obs-storage-class | 对象的存储类别。取值如下:
| 是 |
对象元数据Content-Type介绍:
使用浏览器访问对象时,会根据Content-Type类型来指定应用程序打开对象。您可以根据对象的文件扩展来修改Content-Type。
- 调用API上传对象时,需要指定Content-Type值。如果不指定,下载对象时,该值默认为“binary/octet-stream”。
- 通过管理控制台上传对象后,系统会根据对象的文件扩展名自动匹配Content-Type值。
- 如果设置或修改的Content-Type的值和文件扩展名不对应,将会导致下载文件后,文件后缀发生变化。
| 文件扩展名 | Content-Type | 文件扩展名 | Content-Type |
|---|---|---|---|
| .*(二进制流,不知道下载文件类型) | application/octet-stream | .7z | application/x-7z-compressed |
| .001 | application/x-001 | .301 | application/x-301 |
| .323 | text/h323 | .906 | application/x-906 |
| .907 | drawing/907 | .a11 | application/x-a11 |
| .acp | audio/x-mei-aac | .ai | application/postscript |
| .aif | audio/aiff | .aifc | audio/aiff |
| .aiff | audio/aiff | .anv | application/x-anv |
| .asa | text/asa | .asf | video/x-ms-asf |
| .asp | text/asp | .asx | video/x-ms-asf |
| .au | audio/basic | .avi | video/avi |
| .awf | application/vnd.adobe.workflow | .biz | text/xml |
| .bmp | application/x-bmp | .bot | application/x-bot |
| .c4t | application/x-c4t | .c90 | application/x-c90 |
| .cal | application/x-cals | .cat | application/vnd.ms-pki.seccat |
| .cdf | application/x-netcdf | .cdr | application/x-cdr |
| .cel | application/x-cel | .cer | application/x-x509-ca-cert |
| .cg4 | application/x-g4 | .cgm | application/x-cgm |
| .cit | application/x-cit | .class | java/* |
| .cml | text/xml | .cmp | application/x-cmp |
| .cmx | application/x-cmx | .cot | application/x-cot |
| .crl | application/pkix-crl | .crt | application/x-x509-ca-cert |
| .csi | application/x-csi | .css | text/css |
| .cut | application/x-cut | .dbf | application/x-dbf |
| .dbm | application/x-dbm | .dbx | application/x-dbx |
| .dcd | text/xml | .dcx | application/x-dcx |
| .der | application/x-x509-ca-cert | .dgn | application/x-dgn |
| .dib | application/x-dib | .dll | application/x-msdownload |
| .doc | application/msword | .dot | application/msword |
| .drw | application/x-drw | .dtd | text/xml |
| .dwf | Model/vnd.dwf | .dwf | application/x-dwf |
| .dwg | application/x-dwg | .dxb | application/x-dxb |
| .dxf | application/x-dxf | .edn | application/vnd.adobe.edn |
| .emf | application/x-emf | .eml | message/rfc822 |
| .ent | text/xml | .epi | application/x-epi |
| .eps | application/x-ps | .eps | application/postscript |
| .etd | application/x-ebx | .exe | application/x-msdownload |
| .fax | image/fax | .fdf | application/vnd.fdf |
| .fif | application/fractals | .fo | text/xml |
| .frm | application/x-frm | .g4 | application/x-g4 |
| .gbr | application/x-gbr | . | application/x- |
| .gif | image/gif | .gl2 | application/x-gl2 |
| .gp4 | application/x-gp4 | .hgl | application/x-hgl |
| .hmr | application/x-hmr | .hpg | application/x-hpgl |
| .hpl | application/x-hpl | .hqx | application/mac-binhex40 |
| .hrf | application/x-hrf | .hta | application/hta |
| .htc | text/x-component | .htm | text/html |
| .html | text/html | .htt | text/webviewhtml |
| .htx | text/html | .icb | application/x-icb |
| .ico | image/x-icon | .ico | application/x-ico |
| .iff | application/x-iff | .ig4 | application/x-g4 |
| .igs | application/x-igs | .iii | application/x-iphone |
| .img | application/x-img | .ins | application/x-internet-signup |
| .isp | application/x-internet-signup | .IVF | video/x-ivf |
| .java | java/* | .jfif | image/jpeg |
| .jpe | image/jpeg | .jpe | application/x-jpe |
| .jpeg | image/jpeg | .jpg | image/jpeg |
| .jpg | application/x-jpg | .js | application/x-javascript |
| .jsp | text/html | .la1 | audio/x-liquid-file |
| .lar | application/x-laplayer-reg | .latex | application/x-latex |
| .lavs | audio/x-liquid-secure | .lbm | application/x-lbm |
| .lmsff | audio/x-la-lms | .ls | application/x-javascript |
| .ltr | application/x-ltr | .m1v | video/x-mpeg |
| .m2v | video/x-mpeg | .m3u | audio/mpegurl |
| .m4e | video/mpeg4 | .mac | application/x-mac |
| .man | application/x-troff-man | .math | text/xml |
| .mdb | application/msaccess | .mdb | application/x-mdb |
| .mfp | application/x-shockwave-flash | .mht | message/rfc822 |
| .mhtml | message/rfc822 | .mi | application/x-mi |
| .mid | audio/mid | .midi | audio/mid |
| .mil | application/x-mil | .mml | text/xml |
| .mnd | audio/x-musicnet-download | .mns | audio/x-musicnet-stream |
| .mocha | application/x-javascript | .movie | video/x-sgi-movie |
| .mp1 | audio/mp1 | .mp2 | audio/mp2 |
| .mp2v | video/mpeg | .mp3 | audio/mp3 |
| .mp4 | video/mp4 | .mpa | video/x-mpg |
| .mpd | application/vnd.ms-project | .mpe | video/x-mpeg |
| .mpeg | video/mpg | .mpg | video/mpg |
| .mpga | audio/rn-mpeg | .mpp | application/vnd.ms-project |
| .mps | video/x-mpeg | .mpt | application/vnd.ms-project |
| .mpv | video/mpg | .mpv2 | video/mpeg |
| .mpw | application/vnd.ms-project | .mpx | application/vnd.ms-project |
| .mtx | text/xml | .mxp | application/x-mmxp |
| .net | image/pnetvue | .nrf | application/x-nrf |
| .nws | message/rfc822 | .odc | text/x-ms-odc |
| .out | application/x-out | .p10 | application/pkcs10 |
| .p12 | application/x-pkcs12 | .p7b | application/x-pkcs7-certificates |
| .p7c | application/pkcs7-mime | .p7m | application/pkcs7-mime |
| .p7r | application/x-pkcs7-certreqresp | .p7s | application/pkcs7-signature |
| .pc5 | application/x-pc5 | .pci | application/x-pci |
| .pcl | application/x-pcl | .pcx | application/x-pcx |
| | application/pdf | | application/pdf |
| .pdx | application/vnd.adobe.pdx | .pfx | application/x-pkcs12 |
| .pgl | application/x-pgl | .pic | application/x-pic |
| .pko | application/vnd.ms-pki.pko | .pl | application/x-perl |
| .plg | text/html | .pls | audio/scpls |
| .plt | application/x-plt | .png | image/png |
| .png | application/x-png | .pot | application/vnd.ms-powerpoint |
| .ppa | application/vnd.ms-powerpoint | .ppm | application/x-ppm |
| .pps | application/vnd.ms-powerpoint | .ppt | application/vnd.ms-powerpoint |
| .ppt | application/x-ppt | .pr | application/x-pr |
| .prf | application/pics-rules | .prn | application/x-prn |
| .prt | application/x-prt | .ps | application/x-ps |
| .ps | application/postscript | .ptn | application/x-ptn |
| .pwz | application/vnd.ms-powerpoint | .r3t | text/vnd.rn-realtext3d |
| .ra | audio/vnd.rn-realaudio | .ram | audio/x-pn-realaudio |
| .ras | application/x-ras | .rat | application/rat-file |
| .rdf | text/xml | .rec | application/vnd.rn-recording |
| .red | application/x-red | .rgb | application/x-rgb |
| .rjs | application/vnd.rn-realsystem-rjs | .rjt | application/vnd.rn-realsystem-rjt |
| .rlc | application/x-rlc | .rle | application/x-rle |
| .rm | application/vnd.rn-realmedia | .rmf | application/vnd.adobe.rmf |
| .rmi | audio/mid | .rmj | application/vnd.rn-realsystem-rmj |
| .rmm | audio/x-pn-realaudio | .rmp | application/vnd.rn-rn_music_package |
| .rms | application/vnd.rn-realmedia-secure | .rmvb | application/vnd.rn-realmedia-vbr |
| .rmx | application/vnd.rn-realsystem-rmx | .rnx | application/vnd.rn-realplayer |
| .rp | image/vnd.rn-realpix | .rpm | audio/x-pn-realaudio-plugin |
| .rsml | application/vnd.rn-rsml | .rt | text/vnd.rn-realtext |
| .rtf | application/msword | .rtf | application/x-rtf |
| .rv | video/vnd.rn-realvideo | .sam | application/x-sam |
| .sat | application/x-sat | .sdp | application/sdp |
| .sdw | application/x-sdw | .sit | application/x-stuffit |
| .slb | application/x-slb | .sld | application/x-sld |
| .slk | drawing/x-slk | .smi | application/smil |
| .smil | application/smil | .smk | application/x-smk |
| .snd | audio/basic | .sol | text/plain |
| .sor | text/plain | .spc | application/x-pkcs7-certificates |
| .spl | application/futuresplash | .spp | text/xml |
| .ssm | application/streamingmedia | .sst | application/vnd.ms-pki.certstore |
| .stl | application/vnd.ms-pki.stl | .stm | text/html |
| .sty | application/x-sty | .svg | text/xml |
| .swf | application/x-shockwave-flash | .tdf | application/x-tdf |
| .tg4 | application/x-tg4 | .tga | application/x-tga |
| .tif | image/tiff | .tif | application/x-tif |
| .tiff | image/tiff | .tld | text/xml |
| .top | drawing/x-top | .torrent | application/x-bittorrent |
| .tsd | text/xml | .txt | text/plain 说明: 如果您想在线预览txt文件,可将Content-Type设置为text/plain;charset=UTF-8,以避免乱码。 |
| .uin | application/x-icq | .uls | text/iuls |
| .vcf | text/x-vcard | .vda | application/x-vda |
| .vdx | application/vnd.visio | .vml | text/xml |
| .vpg | application/x-vpeg005 | .vsd | application/vnd.visio |
| .vsd | application/x-vsd | .vss | application/vnd.visio |
| .vst | application/vnd.visio | .vst | application/x-vst |
| .vsw | application/vnd.visio | .vsx | application/vnd.visio |
| .vtx | application/vnd.visio | .vxml | text/xml |
| .wav | audio/wav | .wax | audio/x-ms-wax |
| .wb1 | application/x-wb1 | .wb2 | application/x-wb2 |
| .wb3 | application/x-wb3 | .wbmp | image/vnd.wap.wbmp |
| .wiz | application/msword | .wk3 | application/x-wk3 |
| .wk4 | application/x-wk4 | .wkq | application/x-wkq |
| .wks | application/x-wks | .wm | video/x-ms-wm |
| .wma | audio/x-ms-wma | .wmd | application/x-ms-wmd |
| .wmf | application/x-wmf | .wml | text/vnd.wap.wml |
| .wmv | video/x-ms-wmv | .wmx | video/x-ms-wmx |
| .wmz | application/x-ms-wmz | .wp6 | application/x-wp6 |
| .wpd | application/x-wpd | .wpg | application/x-wpg |
| .wpl | application/vnd.ms-wpl | .wq1 | application/x-wq1 |
| .wr1 | application/x-wr1 | .wri | application/x-wri |
| .wrk | application/x-wrk | .ws | application/x-ws |
| .ws2 | application/x-ws | .wsc | text/scriptlet |
| .wsdl | text/xml | .wvx | video/x-ms-wvx |
| .xdp | application/vnd.adobe.xdp | .xdr | text/xml |
| .xfd | application/vnd.adobe.xfd | .xfdf | application/vnd.adobe.xfdf |
| .xhtml | text/html | .xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| .xls | application/x-xls | .xlw | application/x-xlw |
| .xml | text/xml | .xpl | audio/scpls |
| .xq | text/xml | .xql | text/xml |
| .xquery | text/xml | .xsd | text/xml |
| .xsl | text/xml | .xslt | text/xml |
| .xwd | application/x-xwd | .x_b | application/x-x_b |
| .sis | application/vnd.symbian.install | .sisx | application/vnd.symbian.install |
| .x_t | application/x-x_t | .ipa | application/vnd.iphone |
| .apk | application/vnd.android.package-archive | .xap | application/x-silverlight-app |
| .zip | application/zip | .rar | application/x-rar-compressed |
| .wasm | application/wasm | - | - |
自定义元数据
OBS支持用户使用以“x-obs-meta-”开头的消息头来加入自定义的元数据,以便对对象进行自定义管理。当用户获取此对象或查询此对象元数据时,加入的自定义元数据将会在返回的消息头中出现。
- 对于对象来说,通常校验和与对应的算法一起存储为对象元数据的一部分,元数据是对象的附加信息而不包含在对象的实际内容中。
- 当使用KMS密钥加密对象时,实际上KMS只对对象的实际数据部分进行加密。如果使用OBS的服务端加密功能加密对象,那么不仅对象实际数据部分会被加密,校验和也会被加密并存储在对象元数据中。有关服务端加密的更多信息,请参见服务端加密。
- 校验和(x-obs-meta-md5chksum自定义元数据)是用于验证数据完整性和一致性的,通常是通过某种算法(如:MD5)计算得到。
- 如果需要增加“gid”和“uid”元数据,请通过挂载私有客户端obsfs,并使用文件语义的方式增加,详情请参见挂载并行文件系统。
自定义元数据需要满足以下要求:
- 所有自定义元数据总大小限制为8KB,计算方式为:每个键和值的UTF-8 编码中的字节总数来测量用户定义的元数据的大小。
- 自定义元数据的key值不区分大小写,OBS统一转为小写进行存储。value值区分大小写。
1 2 3 4 5 6 7
PUT /key HTTP/1.1 Host: bucket01.obs.myhuaweicloud.com x-obs-meta-Test1: Test Meta1 HEAD /Key HTTP/1.1 Host: bucket01.obs.myhuaweicloud.com x-obs-meta-test1: Test Meta1
- 自定义元数据key-value对均必须符合US-ASCII。如果一定要使用非ASCII码或不可识别字符,需要客户端自行做编解码处理,可以采用URL编码或者Base64编码,服务端不会做解码处理。例如x-obs-meta-中文:中文 经URL编码后发送,“中文”的URL编码为:%E4%B8%AD%E6%96%87,则响应为x-obs-meta-%E4%B8%AD%E6%96%87: %E4%B8%AD%E6%96%87
1 2 3 4 5 6 7
PUT /key HTTP/1.1 Host: bucket01.obs.myhuaweicloud.com x-obs-meta-%E4%B8%AD%E6%96%87: %E4%B8%AD%E6%96%87 HEAD /Key HTTP/1.1 Host: bucket01.obs.myhuaweicloud.com x-obs-meta-%E4%B8%AD%E6%96%87: %E4%B8%AD%E6%96%87
约束与限制
- 当桶开启多版本控制时,最新版本的对象支持设置元数据,历史版本的对象不支持设置元数据。
- 对于存储类别为归档存储或深度归档存储的对象,不能对其设置对象的元数据。
- 自定义元数据总大小限制为8KB。
- 配置、编辑、查看对象元数据,需要的权限请参见对象相关权限。
配置对象元数据
OBS支持通过管理控制台、API、SDK、obsutil方式配置对象元数据。
使用API
使用命令行工具obsutil
命令结构:
- Windows操作系统
- 设置单个对象属性
obsutil chattri obs://bucket/key [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-versionId=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- 批量设置对象属性
obsutil chattri obs://bucket[/key] -r [-f] [-v] [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-o=xxx] [-j=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- 设置单个对象属性
- macOS/Linux操作系统
- 设置单个对象属性
./obsutil chattri obs://bucket/key [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-versionId=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- 批量设置对象属性
./obsutil chattri obs://bucket[/key] -r [-f] [-v] [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-o=xxx] [-j=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- 设置单个对象属性
运行示例:
- 以Windows操作系统为例,运行obsutil chattri obs://bucket-test/key -acl=public-read,设置对象的访问策略为公共读。
obsutil chattri obs://bucket-test/key -acl=public-read Start at 2024-09-30 08:17:15.5572914 +0000 UTC Set the acl of object [key] in the bucket [bucket-test] to [public-read] successfully, request id [04050000016836DDFA73B2B5320E2651]
- 以Windows操作系统为例,运行obsutil chattri obs://bucket-test -r -f -acl=public-read,批量设置桶内所有对象的访问策略为公共读。
obsutil chattri obs://bucket-test -r -f -acl=public-read Start at 2024-09-30 08:18:03.105373 +0000 UTC [------------------------------------------------] 100.00% tps:155.15 5/5 233ms Succeed count: 5 Failed count: 0 Metrics [max cost:177 ms, min cost:53 ms, average cost:102.40 ms, average tps:20.41] Task id: 9d7f73ff-f747-4fdd-9b2a-815ba2dc3b07
参数说明:
| 参数 | 约束 | 描述 |
|---|---|---|
| bucket | 必选 | 对象所属的桶的名称。 |
| key | 设置单个对象属性时必选 批量设置对象属性时可选 | 待设置属性的对象名,或批量设置对象属性时的对象名前缀。 批量设置对象属性时,如果该值为空,则表示设置桶内所有对象的属性。 |
| meta | 附加参数,可选 | 设置对象属性时可指定的目标对象的标准和自定义元数据。
该参数需要与direct搭配使用才会生效。 |
| direct | 附加参数,可选 | 元数据操作指示符。 取值为:
该参数需要与meta搭配使用才会生效。 |
| sc | 附加参数,可选 | 对象的存储类别。支持的值:
存储类型为cold的对象,必须首先恢复该对象再设置其存储类别,否则无法设置成功,恢复对象的命令请参见恢复对象。 |
| acl | 附加参数,可选 | 对象的预定义访问策略。支持的值:
|
| aclXml | 附加参数,可选 | 桶的访问策略(xml格式表示)。格式如下: <AccessControlPolicy>
<Owner>
<ID>ownerid</ID>
</Owner>
<AccessControlList>
<Grant>
<Grantee>
<ID>userid</ID>
</Grantee>
<Permission>[WRITE|WRITE_ACP|READ|READ_ACP|FULL_CONTROL]</Permission>
</Grant>
<Grant>
<Grantee>
<Canned>Everyone</Canned>
</Grantee>
<Permission>[WRITE|WRITE_ACP|READ|READ_ACP|FULL_CONTROL]</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
由于该参数值必定含有“<”和“>”,作为命令运行时,必须使用引号转义(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)。 |
| fs | 附加参数,可选 | 是否使用并行文件系统的列举方式,如果桶是并行文件系统,推荐加上该参数。
|
| versionId | 附加参数,设置单个对象属性时可选 | 待设置属性对象的版本号。 |
| fr | 附加参数,设置单个对象属性时可选 | 设置单个对象属性时生成结果清单文件。 |
| f | 附加参数,批量设置对象属性时可选 | 强制操作,不进行询问提示。 |
| r | 附加参数,批量设置对象属性时必选 | 按指定的对象名前缀批量设置对象属性。 |
| v | 附加参数,批量设置对象属性时可选 | 按指定的对象名前缀批量设置多版本对象属性。 |
| o | 附加参数,可选 | 生成结果清单文件的文件夹,命令执行完成后,会在该文件夹下生成结果清单文件(包含成功结果和失败结果两个文件)。 默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。
|
| j | 附加参数,批量设置对象属性时可选 | 批量设置对象属性的最大并发数,默认为配置文件中的defaultJobs。 说明: 工具会保证该值至少为1。 |
| bucket-cname | 附加参数,可选 | 指定桶绑定的自定义域名 说明: Util 5.7.9版本及以上支持该参数。 |
| config | 附加参数,可选 | 运行当前命令时的自定义配置文件。可支持的配置参数请参考配置参数说明。 |
| e | 附加参数,可选 | 指定终端节点。 |
| i | 附加参数,可选 | 指定用户的AK。 |
| k | 附加参数,可选 | 指定用户的SK。 |
| t | 附加参数,可选 | 指定用户的securitytoken。 |
每次命令只能选择设置sc、acl和aclXml中的一个。
响应结果:
| 字段名 | 描述 |
|---|---|
| Parallel | 请求中的-p参数。 |
| Jobs | 请求中的-j参数。 |
| Threshold | 请求中的-threshold参数。 |
| PartSize | 请求中的-ps参数。 |
| Exclude | 请求中的-exclude参数。 |
| Include | 请求中的-include参数。 |
| TimeRange | 请求中的-timeRange参数。 |
| VerifyLength | 请求中的-vlength参数。 |
| VerifyMd5 | 请求中的-vmd5参数。 |
| CheckpointDir | 请求中的-cpd参数。 |
| OutputDir | 请求中的-o参数。 |
| ArcDir | 请求中的-arcDir参数。 |
| Succeed count | 成功的任务数。 |
| Failed count | 失败的任务数。 |
| Skip count | 增量上传/下载/复制、同步上传/下载/复制跳过的任务数。 说明: 跳过的任务数也会记录到成功的任务数中。 |
| Warning count | 执行完成但包含警告的任务数。 说明:
|
| Succeed bytes | 上传/下载成功的字节数。 |
| max cost | 所有任务中的最长耗时,单位:毫秒。 |
| min cost | 所有任务中的最短耗时,单位:毫秒。 |
| average cost | 平均耗时,单位:毫秒。 |
| average tps | 平均每秒的任务完成个数。 |
| Task id | 每次运行的唯一标识号,用于查找批量任务生成的结果清单文件。 |
编辑对象元数据
OBS支持通过管理控制台、API、SDK、obsutil方式编辑对象元数据。
使用API
使用命令行工具obsutil
命令结构:
- Windows操作系统
- 设置单个对象属性
obsutil chattri obs://bucket/key [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-versionId=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- 批量设置对象属性
obsutil chattri obs://bucket[/key] -r [-f] [-v] [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-o=xxx] [-j=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- 设置单个对象属性
- macOS/Linux操作系统
- 设置单个对象属性
./obsutil chattri obs://bucket/key [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-versionId=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- 批量设置对象属性
./obsutil chattri obs://bucket[/key] -r [-f] [-v] [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-o=xxx] [-j=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- 设置单个对象属性
运行示例:
- 以Windows操作系统为例,运行obsutil chattri obs://bucket-test/key -acl=public-read,设置对象的访问策略为公共读。
obsutil chattri obs://bucket-test/key -acl=public-read Start at 2024-09-30 08:17:15.5572914 +0000 UTC Set the acl of object [key] in the bucket [bucket-test] to [public-read] successfully, request id [04050000016836DDFA73B2B5320E2651]
- 以Windows操作系统为例,运行obsutil chattri obs://bucket-test -r -f -acl=public-read,批量设置桶内所有对象的访问策略为公共读。
obsutil chattri obs://bucket-test -r -f -acl=public-read Start at 2024-09-30 08:18:03.105373 +0000 UTC [------------------------------------------------] 100.00% tps:155.15 5/5 233ms Succeed count: 5 Failed count: 0 Metrics [max cost:177 ms, min cost:53 ms, average cost:102.40 ms, average tps:20.41] Task id: 9d7f73ff-f747-4fdd-9b2a-815ba2dc3b07
参数说明:
| 参数 | 约束 | 描述 |
|---|---|---|
| bucket | 必选 | 对象所属的桶的名称。 |
| key | 设置单个对象属性时必选 批量设置对象属性时可选 | 待设置属性的对象名,或批量设置对象属性时的对象名前缀。 批量设置对象属性时,如果该值为空,则表示设置桶内所有对象的属性。 |
| meta | 附加参数,可选 | 设置对象属性时可指定的目标对象的标准和自定义元数据。
该参数需要与direct搭配使用才会生效。 |
| direct | 附加参数,可选 | 元数据操作指示符。 取值为:
该参数需要与meta搭配使用才会生效。 |
| sc | 附加参数,可选 | 对象的存储类别。支持的值:
存储类型为cold的对象,必须首先恢复该对象再设置其存储类别,否则无法设置成功,恢复对象的命令请参见恢复对象。 |
| acl | 附加参数,可选 | 对象的预定义访问策略。支持的值:
|
| aclXml | 附加参数,可选 | 桶的访问策略(xml格式表示)。格式如下: <AccessControlPolicy>
<Owner>
<ID>ownerid</ID>
</Owner>
<AccessControlList>
<Grant>
<Grantee>
<ID>userid</ID>
</Grantee>
<Permission>[WRITE|WRITE_ACP|READ|READ_ACP|FULL_CONTROL]</Permission>
</Grant>
<Grant>
<Grantee>
<Canned>Everyone</Canned>
</Grantee>
<Permission>[WRITE|WRITE_ACP|READ|READ_ACP|FULL_CONTROL]</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
由于该参数值必定含有“<”和“>”,作为命令运行时,必须使用引号转义(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)。 |
| fs | 附加参数,可选 | 是否使用并行文件系统的列举方式,如果桶是并行文件系统,推荐加上该参数。
|
| versionId | 附加参数,设置单个对象属性时可选 | 待设置属性对象的版本号。 |
| fr | 附加参数,设置单个对象属性时可选 | 设置单个对象属性时生成结果清单文件。 |
| f | 附加参数,批量设置对象属性时可选 | 强制操作,不进行询问提示。 |
| r | 附加参数,批量设置对象属性时必选 | 按指定的对象名前缀批量设置对象属性。 |
| v | 附加参数,批量设置对象属性时可选 | 按指定的对象名前缀批量设置多版本对象属性。 |
| o | 附加参数,可选 | 生成结果清单文件的文件夹,命令执行完成后,会在该文件夹下生成结果清单文件(包含成功结果和失败结果两个文件)。 默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。
|
| j | 附加参数,批量设置对象属性时可选 | 批量设置对象属性的最大并发数,默认为配置文件中的defaultJobs。 说明: 工具会保证该值至少为1。 |
| bucket-cname | 附加参数,可选 | 指定桶绑定的自定义域名 说明: Util 5.7.9版本及以上支持该参数。 |
| config | 附加参数,可选 | 运行当前命令时的自定义配置文件。可支持的配置参数请参考配置参数说明。 |
| e | 附加参数,可选 | 指定终端节点。 |
| i | 附加参数,可选 | 指定用户的AK。 |
| k | 附加参数,可选 | 指定用户的SK。 |
| t | 附加参数,可选 | 指定用户的securitytoken。 |
每次命令只能选择设置sc、acl和aclXml中的一个。
响应结果:
| 字段名 | 描述 |
|---|---|
| Parallel | 请求中的-p参数。 |
| Jobs | 请求中的-j参数。 |
| Threshold | 请求中的-threshold参数。 |
| PartSize | 请求中的-ps参数。 |
| Exclude | 请求中的-exclude参数。 |
| Include | 请求中的-include参数。 |
| TimeRange | 请求中的-timeRange参数。 |
| VerifyLength | 请求中的-vlength参数。 |
| VerifyMd5 | 请求中的-vmd5参数。 |
| CheckpointDir | 请求中的-cpd参数。 |
| OutputDir | 请求中的-o参数。 |
| ArcDir | 请求中的-arcDir参数。 |
| Succeed count | 成功的任务数。 |
| Failed count | 失败的任务数。 |
| Skip count | 增量上传/下载/复制、同步上传/下载/复制跳过的任务数。 说明: 跳过的任务数也会记录到成功的任务数中。 |
| Warning count | 执行完成但包含警告的任务数。 说明:
|
| Succeed bytes | 上传/下载成功的字节数。 |
| max cost | 所有任务中的最长耗时,单位:毫秒。 |
| min cost | 所有任务中的最短耗时,单位:毫秒。 |
| average cost | 平均耗时,单位:毫秒。 |
| average tps | 平均每秒的任务完成个数。 |
| Task id | 每次运行的唯一标识号,用于查找批量任务生成的结果清单文件。 |
查看对象元数据
OBS支持通过管理控制台、API、SDK、obsutil方式查看对象元数据息。
使用OBS控制台
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在桶列表中,单击待操作的桶,进入“对象”页面。
- 单击待查看信息的对象名称,进入对象基本信息页面。
- 切换至“元数据”页签,可以查看对象的元数据。
使用API
使用命令行工具obsutil
命令结构:
- Windows操作系统
obsutil stat obs://bucket/key [-acl][-bf=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- macOS/Linux操作系统
./obsutil stat obs://bucket/key [-acl][-bf=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
运行示例:
- 以Windows操作系统为例,运行obsutil stat obs://bucket-test/key,查询对象基本属性。
obsutil stat obs://bucket-test/key Start at 2024-09-25 04:48:10.1147483 +0000 UTC Key: obs://bucket-test/key LastModified: 2018-11-16T02:15:49Z Size: 7 StorageClass: standard ETag: 43d93b553855b0e1fc67e31c28c07b65 ContentType: text/plain Type: file Metadata: key=value
参数说明:
| 参数 | 约束 | 描述 |
|---|---|---|
| bucket | 必选 | 对象所属的桶的名称。 |
| key | 必选 | 待查询属性的对象名称。 |
| acl | 可选 | 同时查询对象的访问策略。 |
| bf | 附加参数,可选 | 对象大小字节数的显示格式。支持的值:
对于普通用户来说,human-readable 更易于理解;而对于需要进行精确计算或自动化处理的场景,raw 格式则更为合适。 如果未设置该参数,则对象大小字节数的显示格式由配置文件中的humanReadableFormat参数决定。 |
| bucket-cname | 附加参数,可选 | 指定桶绑定的自定义域名 说明: Util 5.7.9版本及以上支持该参数。 |
| config | 附加参数,可选 | 运行当前命令时的自定义配置文件。可支持的配置参数请参考配置参数说明。 |
| e | 附加参数,可选 | 指定终端节点。 |
| i | 附加参数,可选 | 指定用户的AK。 |
| k | 附加参数,可选 | 指定用户的SK。 |
| t | 附加参数,可选 | 指定用户的securitytoken。 |
响应结果:
| 字段名 | 描述 |
|---|---|
| Key | 对象名称。 |
| LastModified | 对象的最后修改时间。 |
| Size | 对象的大小。 单位:字节。 |
| StorageClass | 对象的存储类别。 支持的值:
|
| MD5 | 对象真实的MD5值。用来确保数据的完整性和验证数据的完整性。 仅当使用cp命令并且配置了-vmd5选项上传对象后,才能查询到该值。 |
| ETag | 服务端计算的对象ETag值。 |
| ContentType | 对象的文件类型。文件类型决定了浏览器将以什么形式、什么编码读取文件。 常见的ContentType类型,请参见Content-Type介绍。 |
| Type | 文件的类型。 |
| Metadata | 对象的自定义元数据。对象有自定义元数据后,才能查询到该值。 关于对象的自定义元数据,请参见自定义元数据。 |

