更新时间:2024-12-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

附加参数,可选

复制对象时可指定的目标对象的标准和自定义元数据。格式为:key1:value1#key2:value2#key3:value3。

说明:
  1. 该参数需要与direct搭配使用才会生效。
  2. 以上值表示复制对象完成后,桶内目标对象包含三组自定义元数据,分别为:key1:value1、key2:value2、key3:value3。
  3. 标准元数据头包括:Content-Type、Content-Encoding、Cache-Control、Content-Disposition、Content-Language、Expires。

direct

附加参数,可选

元数据操作指示符。

取值为REPLACE_NEW或REPLACE。

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。

说明:
  • 结果清单文件命名规则:chattri_{succeed | failed}_report_时间_TaskId.txt。

    单个结果清单文件默认情况下最大为30MB且最大可保留的文件个数为1024,可在配置文件中通过recordMaxLogSize和recordBackups分别配置。

  • 当涉及多文件/文件夹时,如需确认失败任务的具体错误信息,可参考结果清单文件夹下的失败结果清单文件"chattri_failed_report_时间_TaskId.txt"及日志路径下的日志文件

j

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

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

说明:

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

config

附加参数,可选

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

e

附加参数,可选

指定终端节点。

i

附加参数,可选

指定用户的AK。

k

附加参数,可选

指定用户的SK。

t

附加参数,可选

指定用户的securitytoken。

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

响应结果

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