文档首页/ 对象存储服务 OBS/ API参考/ API/ 对象操作/ 配置对象级WORM保护策略-SetObjectLock
更新时间:2025-12-18 GMT+08:00
分享

配置对象级WORM保护策略-SetObjectLock

功能介绍

开启了WORM开关的桶,上传的对象支持配置或修改对象保护期限。

  • 如果上传对象时没有配置保护期限或自动应用桶级默认保护策略,您可以通过该操作配置对象保护期限。
  • 如果上传对象时配置了保护期限或自动应用了默认保护期限,允许用户通过该操作延长保护期限。
  • 对象保护期限仅允许修改,不允许删除。

    用户需要拥有“PutObjectRetention”权限才能配置或修改对象保护期限。

多版本

开启了WORM开关的桶默认开启了多版本,因此桶内对象在上传时会具备版本号。您在配置对象级WORM保护策略时可以指定版本号来为特定版本的对象配置,如果您不指定版本号,则改动只会对同名对象的最新版本生效。WORM功能不会对带唯一版本号的删除标记生效。

多段操作

多段上传的对象在合并前不会自动应用桶级默认WORM策略,也无法通过在上传或合并时指定头域来配置对象级WORM保护策略,指定已上传的段作为此接口的目标对象也无法进行配置。如果您需要对多段对象进行保护,您可以在合并多段对象后通过此接口为其配置对象级WORM保护策略。

授权信息

您必须是对象拥有者或拥有配置对象级WORM保护策略的权限,才能调用本接口,建议使用IAM或桶策略进行授权。了解更多OBS授权方式请参见OBS不同权限控制方式的区别

  • 如果使用IAM授权,那么请在“角色与策略授权”、“身份策略授权”两种IAM授权方式中选择一种,并配置相应权限:
    • 如果使用角色与策略授权(旧版IAM,即IAM v3接口),需具备obs:object:PutObjectRetention权限,授权操作请参见创建IAM自定义策略
    • 如果使用身份策略授权(新版IAM,即IAM v5接口),如下表所示,需具备obs:object:putObjectRetention权限,授权操作请参见创建IAM自定义身份策略

      授权项

      Action

      访问级别

      Access Level

      资源类型(*为必须)

      Resource Type (*: required)

      条件键

      Condition Key

      别名

      Alias

      依赖的授权项

      Dependencies

      obs:object:putObjectRetention

      Write

      object *

      g:EnterpriseProjectId

      -

      -

      -

      • obs:EpochTime
      • obs:SourceIp
      • obs:TlsVersion
      • obs:CustomDomain
  • 如果使用桶策略进行授权,需具备obs:object:PutObjectRetention权限,具体操作请参见自定义创建桶策略

请求消息样式

PUT /ObjectName?retention&versionId=versionid HTTP/1.1 
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Date: date
Authorization: authorization

<Retention>
    <Mode>String</Mode>
    <RetainUntilDate>Timestamp</RetainUntilDate>
</Retention>

请求消息参数

请求参数说明如表1所示。

表1 请求消息参数

参数名称

是否必选

参数类型

描述

retention

String

参数解释:

表示这是配置或修改对象保护期限操作。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

versionId

String

参数解释:

对象的版本号。表示更改指定版本对象的WORM策略。不携带versionId参数则为最新版本。

约束限制:

不涉及

取值范围:

长度为32的字符串。

默认取值:

不涉及,如果不设置则默认修改最新版本的对象。

请求消息头

该请求使用公共请求消息头,具体参见表3

请求消息元素

表2 请求消息元素

参数名称

是否必选

参数类型

描述

Retention

Container

参数解释:

对象级WORM保护策略配置的容器,Retention是Mode、RetainUntilDate的父节点。

约束限制:

不涉及

取值范围:

请详见表3

默认取值:

不涉及

表3 Retention参数说明

参数名称

是否必选

参数类型

描述

Mode

String

参数解释:

对象的保护策略。

约束限制:

不涉及

取值范围:

COMPLIANCE:合规模式

默认取值:

不涉及

RetainUntilDate

Long

参数解释:

对象的保护期限,时间戳格式,精确到毫秒级,如2015年7月1日13点20分35秒对应的值为1435728035000。

示例:1435728035000

约束限制:

该字段必须晚于当前时间,且仅可延长不能缩短。

取值范围:

不涉及

默认取值:

不涉及

响应消息样式

HTTP/1.1 status_code
Date: date
Content-Length: length

响应消息头

该请求的响应消息使用公共消息头,具体请参考表1

响应消息元素

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

错误响应消息

此请求可能的特殊错误如下表4描述。

表4 错误响应消息

错误码

描述

HTTP状态码

InvalidRequest

目标桶没有开启桶级WORM开关

400

InvalidRequest

保护期限设置错误

400

MalformedObjectLockError

策略配置格式错误

400

其余错误已经包含在表2中。

请求示例

PUT /objectname?retention HTTP/1.1
Host: bucketname.obs.cn-north-4.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:25:05 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:75/Y4Ng1izvzc1nTGxpMXTE6ynw=
Content-Type: application/xml
Content-Length: 157
<Retention>
    <Mode>COMPLIANCE</Mode>
    <RetainUntilDate>1435728035000</RetainUntilDate>
</Retention>

响应示例

HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF260000016435CE298386946AE4C482
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCT9W2tcvLmMJ+plfdopaD62S0npbaRUz
Date: WED, 01 Jul 2015 02:25:06 GMT
Content-Length: 0

相关文档