更新时间:2025-07-11 GMT+08:00
分享

设置对象属性

功能说明

设置对象的属性或按对象名前缀批量设置对象的属性。

只有3.0版本的桶支持设置对象存储类型。

命令结构

  • 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

附加参数,可选

设置对象属性时可指定的目标对象的标准和自定义元数据。

  • 标准元数据包括:Content-Type、Content-Encoding、Cache-Control、Content-Disposition、Content-Language、Expires。
  • 自定义元数据格式为:key:value,多个自定义元数据使用#链接。例如key1:value1#key2:value2#key3:value3,其含义是,设置对象属性后,桶内目标对象包含三组自定义元数据,分别为:key1:value1、key2:value2、key3:value3。

该参数需要与direct搭配使用才会生效。

direct

附加参数,可选

元数据操作指示符。

取值为:

  • REPLACE_NEW:对于已经存在值的元数据进行替换,不存在值的元数据进行赋值,未指定的元数据保持不变。
  • REPLACE:使用当前请求中携带的头域完整替换,未指定的元数据会被删除。

该参数需要与meta搭配使用才会生效。

sc

附加参数,可选

对象的存储类别。支持的值:

  • standard:标准存储,访问时延低、吞吐量高,适用于有大量热点文件(平均一个月多次)或小文件(小于1MB)。
  • warm:低频访问存储,,可用性略低于standard,适用于不频繁访问(平均一年少于12次)但在需要时也要求快速访问数据的业务场景。
  • cold:归档存储,,安全、持久且成本极低,适用于很少访问(平均一年访问一次)数据的业务场景。

存储类型为cold的对象,必须首先恢复该对象再设置其存储类别,否则无法设置成功,恢复对象的命令请参见恢复对象

acl

附加参数,可选

对象的预定义访问策略。支持的值:

  • private:私有读写
  • public-read:公共读
  • public-read-write:公共读写
  • bucket-owner-full-control:桶拥有者完全控制

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>
  • Owner节点为可选,指定对象拥有者ID。
  • AccessControlList节点下的Grant子节点包含被授权的用户列表,Grantee子节点指定被授权用户的ID,Canned子节点指定被授权的用户组(当前仅支持Everyone)。
  • 可支持被授予的权限有:
    • WRITE:写权限
    • WRITE_ACP:写ACL权限
    • READ:读权限
    • READ_ACP:读ACL权限
    • FULL_CONTROL:完全控制权限

由于该参数值必定含有“<”和“>”,作为命令运行时,必须使用引号转义(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)。

fs

附加参数,可选

是否使用并行文件系统的列举方式,如果桶是并行文件系统,推荐加上该参数。

  • 该参数开启后,会忽略marker和limit值,统计桶或者并行文件系统或者指定目录的大小。
  • Util 5.5.12版本及以上支持该参数。
  • 该列举方式会因为目录结构,耗时差别很大。

versionId

附加参数,设置单个对象属性时可选

待设置属性对象的版本号。

fr

附加参数,设置单个对象属性时可选

设置单个对象属性时生成结果清单文件。

f

附加参数,批量设置对象属性时可选

强制操作,不进行询问提示。

r

附加参数,批量设置对象属性时必选

按指定的对象名前缀批量设置对象属性。

v

附加参数,批量设置对象属性时可选

按指定的对象名前缀批量设置多版本对象属性。

o

附加参数,可选

生成结果清单文件的文件夹,命令执行完成后,会在该文件夹下生成结果清单文件(包含成功结果和失败结果两个文件)。

默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。

  • 结果清单文件命名规则:cp_{succeed | failed | warning}_report_时间_TaskId.txt。
  • 单个结果清单文件默认情况下最大为30MB,可在配置文件中通过recordMaxLogSize分别配置。
  • 单个结果清单文件默认情况下最多可保留1024个文件,可在配置文件中通过recordBackups分别配置。
  • 当涉及多文件/文件夹时,如需确认失败任务的具体错误信息,可参考结果清单文件夹下的失败结果清单文件“chattri_failed_report_时间_TaskId.txt”及日志路径下的日志文件

j

附加参数,批量设置对象属性时可选

批量设置对象属性的最大并发数,默认为配置文件中的defaultJobs。

说明:

工具会保证该值至少为1。

config

附加参数,可选

运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明

e

附加参数,可选

指定终端节点。

i

附加参数,可选

指定用户的AK。

k

附加参数,可选

指定用户的SK。

t

附加参数,可选

指定用户的securitytoken。

每次命令只能选择设置sc、acl和aclXml中的一个。

响应结果

请参考上传对象的响应结果

相关文档