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

配置桶级默认WORM策略-SetBucketObjectLock

功能介绍

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

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

接口约束

  • 开启对象级WORM功能前需要先开启桶级WORM,当对象同时被桶级WORM和对象级WORM锁定时,优先遵从对象级WORM的保护策略。
  • 对象级WORM保留期只能延长不能缩短。
  • 在客户销户、欠费超期情况下,WORM未到期数据会被删除而不做保留。
  • 分段上传产生的分段文件不受WORM保护。
  • 在配置桶日志记录时,不建议您将日志存储桶设置为WORM保留策略生效的桶,可能会由于老旧文件无法被删除而导致存储费用持续增长。
  • 在开启了WORM开关的桶中,使用追加写上传对象将失败并返回403。
  • 策略目前仅支持合规模式。
  • 策略目前仅支持设置为合规模式"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权限,具体操作请参见自定义创建桶策略

URI

PUT /

调用方法

请参见如何调用API。调用前需要先计算API签名,并将签名添加到请求中。

您还可以使用API Explorer在线调试接口。

请求消息样式

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和Years不能同时为非零值,必须指定其中一个,另一个设为0或不携带,并且在规定取值范围内 -->
       <DefaultRetention>
          <Days>integer</Days>
          <Mode>COMPLIANCE</Mode>
          <Years>integer</Years>
       </DefaultRetention>
    </Rule>
</ObjectLockConfiguration>

URI参数(URI Parameters)

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

请求头参数(Request headers)

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

请求体参数(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(100*365)

默认取值:

不涉及

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

要对存储桶应用对象锁定配置,必须开启桶多版本控制功能。

409

其余错误已包含在错误码概述中。

请求示例 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

相关文档

相关文档