文档首页/ 对象存储服务 OBS/ API参考/ 桶API/ 桶级对象锁定(WORM)/ 配置桶级默认WORM策略-SetBucketObjectLock
更新时间:2026-04-15 GMT+08:00
分享

配置桶级默认WORM策略-SetBucketObjectLock

功能介绍

OBS提供合规模式的WORM功能,当桶设置了WORM策略后,如果新上传的对象没有设置保护策略和保护期限,则其会自动应用桶级WORM策略。可通过本接口为指定桶配置默认保护策略和保护期限。了解更多配置桶级默认WORM策略相关信息,请参见配置对象锁定(WORM)防止对象被更改或删除

当您在桶内配置了桶级默认WORM策略以后,如果您在上传对象时没有指定保护策略和保护期限,则新上传的对象会自动应用桶级默认WORM策略。和配置对象级WORM保护策略不同的地方在于,对象级WORM保护策略需要您提供一个明确的时间,在这个时间之前对象都会受到保护,桶级默认WORM策略则要求您提供一个保护期限,实际上对象受到保护的时间点为其上传时间+您指定的保护期限。

接口约束

  • 开启桶级WORM开关前,需要先开启多版本控制。使用控制台配置WORM时,控制台会自动开启多版本,并且不允许暂停多版本。使用API配置WORM时,需要您自行调用设置桶的多版本状态接口开启多版本。WORM保护是基于对象版本号的,配置WORM的版本受到WORM保护,没有配置WORM的版本可正常删除。例如,test.txt 001受到WORM保护。此时再次上传同名文件,产生新的对象版本test.txt 002,test.txt 002并未配置WORM,那么test.txt 002就不受保护可以正常删除。当您下载对象时,不指定版本号下载的是最新对象,也就是test.txt 002。
  • 处于保护中的对象不会被生命周期删除,但是能正常进行存储类别转换。受保护的对象不再受保护后,如果满足生命周期过期规则,将会被系统删除。
  • 开启桶级WORM开关的桶暂不支持跨区域复制能力。
  • 在客户销户、欠费超期情况下,WORM未到期数据会被删除而不做保留。
  • 不支持迁移场景。
  • WORM不阻止修改对象元数据。
  • 并行文件系统不支持WORM。
  • 策略目前仅支持设置为合规模式"COMPLIANCE"
  • 支持设置的保留期限为1天-100*365天或1年~100年。
  • 您可以修改甚至清空桶级默认WORM策略,但这仅对修改后上传的对象生效,修改前上传的对象的保护状态不受影响。
  • 多段上传的对象在合并前不受保护,合并后受桶级默认对象策略保护,您可以在其合并后单独为其配置对象级WORM保护策略。

授权信息

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

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

      授权项

      Action

      访问级别

      Access Level

      资源类型(*为必须)

      Resource Type (*: required)

      条件键

      Condition Key

      别名

      Alias

      依赖的授权项

      Dependencies

      obs:bucket:putBucketObjectLockConfiguration

      Write

      bucket *

      -

      -

      -

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

请求消息样式

PUT /?object-lock HTTP/1.1
Host: bucketname.obs.cn-north-4.myhuaweicloud.com
Date: date
Authorization: authorization
Content-Type: application/xml
Content-Length: length
<ObjectLockConfiguration xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/">
    <ObjectLockEnabled>Enabled</ObjectLockEnabled>
    <Rule>
       <DefaultRetention>
          <Days>integer</Days>
          <Mode>COMPLIANCE</Mode>
          <Years>integer</Years>
       </DefaultRetention>
    </Rule>
</ObjectLockConfiguration>

URI参数(URI Parameters)

该请求消息中不使用消息参数

请求头参数(Request headers)

该请求使用公共请求头,具体参见表1

请求体参数(Request body)

表1 请求体参数

参数名称

是否必选

参数类型

描述

ObjectLockConfiguration

Container

参数解释:

桶级WORM配置的容器,ObjectLockConfiguration是ObjectLockEnabled和Rule的父节点。

约束限制:

不涉及

取值范围:

请详见表2

默认取值:

不涉及

表2 ObjectLockConfiguration参数解释

参数名称

是否必选

参数类型

描述

ObjectLockEnabled

String

参数解释:

桶级WORM开关状态。

约束限制:

不涉及

取值范围:

Enabled:启用桶级WORM功能。

默认取值:

不涉及

Rule

ObjectLockEnabled为Enabled时必选,不携带则会清空当前配置的桶级默认WORM策略

Container

参数解释:

桶级WORM策略的规则容器,Rule是DefaultRetention的父节点。

约束限制:

不涉及

取值范围:

请详见表3

默认取值:

不涉及

表3 Rule参数说明

参数名称

是否必选

参数类型

描述

DefaultRetention

如果有Rule容器则必选

Container

参数解释:

桶级WORM策略的容器,DefaultRetention是Mode、Days、Years的父节点。

约束限制:

不涉及

取值范围:

请详见表4

默认取值:

不涉及

表4 DefaultRetention参数解释

参数名称

是否必选

参数类型

描述

Mode

如果有DefaultRetention容器则必选

String

参数解释:

桶的WORM保护策略。

约束限制:

不涉及

取值范围:

COMPLIANCE:合规模式。

默认取值:

不涉及

Days

如果有DefaultRetention容器则和Years二选一,必须选择其中一个且不能同时指定

Integer

参数解释:

保护天数。单位:天。

约束限制:

Days和Years只能有一个不为0,并且在规定取值范围内。

取值范围:

1~36500

默认取值:

不涉及

Years

如果有DefaultRetention容器则和Days二选一,必须选择其中一个且不能同时指定

Integer

参数解释:

默认的保护年数,单位:年。

约束限制:

  • 一年实际上视为保护365天,不考虑闰年。
  • Days和Years只能有一个不为0,并且在规定取值范围内。

取值范围:

1~100

默认取值:

不涉及

响应消息样式

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

响应头 (Response Headers)

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

响应体 (Response Body)

本接口的响应消息中不携带响应体。

错误响应消息

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

表5 错误响应消息

错误码

描述

HTTP状态码

InvalidRequest

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

400

MalformedXML

策略配置格式错误

400

InvalidBucketState

Versioning must be 'Enabled' on the bucket to apply a Object Lock configuration.

409

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

请求示例 1

配置桶级默认WORM策略为保护两年

PUT /?object-lock 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
<ObjectLockConfiguration xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/">
    <ObjectLockEnabled>Enabled</ObjectLockEnabled>
    <Rule>
       <DefaultRetention>
          <Mode>COMPLIANCE</Mode>
          <Years>2</Years>
       </DefaultRetention>
    </Rule>
</ObjectLockConfiguration>

响应示例 1

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

请求示例 2

清空当前的桶级默认WORM策略配置

PUT /?object-lock 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
<ObjectLockConfiguration xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/">
</ObjectLockConfiguration>

响应示例 2

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

相关文档

相关文档