配置桶级默认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)
| 参数名称 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| ObjectLockConfiguration | 是 | Container | 参数解释: 桶级WORM配置的容器,ObjectLockConfiguration是ObjectLockEnabled和Rule的父节点。 约束限制: 不涉及 取值范围: 请详见表2。 默认取值: 不涉及 |
| 参数名称 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| ObjectLockEnabled | 否 | String | 参数解释: 桶级WORM开关状态。 约束限制: 不涉及 取值范围: Enabled:启用桶级WORM功能。 默认取值: 不涉及 |
| Rule | ObjectLockEnabled为Enabled时必选,不携带则会清空当前配置的桶级默认WORM策略 | Container | 参数解释: 桶级WORM策略的规则容器,Rule是DefaultRetention的父节点。 约束限制: 不涉及 取值范围: 请详见表3。 默认取值: 不涉及 |
| 参数名称 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| DefaultRetention | 如果有Rule容器则必选 | Container | 参数解释: 桶级WORM策略的容器,DefaultRetention是Mode、Days、Years的父节点。 约束限制: 不涉及 取值范围: 请详见表4。 默认取值: 不涉及 |
| 参数名称 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| Mode | 如果有DefaultRetention容器则必选 | String | 参数解释: 桶的WORM保护策略。 约束限制: 不涉及 取值范围: COMPLIANCE:合规模式。 默认取值: 不涉及 |
| Days | 如果有DefaultRetention容器则和Years二选一,必须选择其中一个且不能同时指定 | Integer | 参数解释: 保护天数。单位:天。 约束限制: Days和Years只能有一个不为0,并且在规定取值范围内。 取值范围: 1~36500 默认取值: 不涉及 |
| Years | 如果有DefaultRetention容器则和Days二选一,必须选择其中一个且不能同时指定 | Integer | 参数解释: 默认的保护年数,单位:年。 约束限制:
取值范围: 1~100 默认取值: 不涉及 |
响应消息样式
HTTP/1.1 status_code Date: date Content-Length: length
响应头 (Response Headers)
该请求的响应消息使用公共响应头,具体请参考表1。
响应体 (Response Body)
本接口的响应消息中不携带响应体。
错误响应消息
此请求可能的特殊错误如下表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
相关文档
- 了解更多配置桶级默认WORM策略相关信息,请参见配置对象锁定(WORM)防止对象被更改或删除。
- API操作涉及的计费项参见计费项。