调用PutBucketObjectWormConfiguration接口在Bucket上启用对象级别保留策略(ObjectWorm),并可选配置默认保留策略。此操作不可逆,一旦为Bucket启用ObjectWorm,将无法关闭。
注意事项
该功能目前为邀测功能,如需使用,请联系技术支持申请开通。当前仅支持华东1(杭州)、西南1(成都)、华南1(深圳)、华南3(广州)、华北1(青岛)、华北2(北京)、华北5(呼和浩特)、华南2(河源)、中国香港、德国(法兰克福)、日本(东京)、韩国(首尔)、新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、菲律宾(马尼拉)、泰国(曼谷)、沙特(利雅得)、阿联酋(迪拜)地域。
此操作不可逆。一旦为Bucket启用对象级别保留策略,将无法关闭ObjectWorm功能,同时也将无法关闭Bucket的版本控制功能。
调用该接口前,Bucket必须已开启版本控制。如果未开启版本控制,调用将返回错误。
ObjectWorm与Bucket级别保留策略(BucketWorm)互斥,不支持同时开启。如果Bucket已开启BucketWorm,调用将返回错误。
默认保留策略为可选配置。如果设置了默认保留策略,后续新上传的文件将自动应用该策略。存量文件不会自动生效,需通过PutObjectRetention接口单独设置。
开启ObjectWorm后,不支持Append上传方式。
需要给相关用户授予
oss:PutObjectRetention和oss:GetObjectRetention权限后才可完成文件读写。
请求语法
PUT /?objectWorm HTTP/1.1
Content-MD5: ContentMD5
Content-Length: ContentLength
Content-Type: application/xml
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue请求头
参数名称 | 类型 | 是否必选 | 示例值 | 描述 |
Content-MD5 | 字符串 | 是 | B2M2Y8AsgTpgAmY7PhC**** | 请求体的MD5哈希值,用于数据完整性校验。 |
Content-Length | 正整数 | 是 | 188 | 请求体的长度。 |
请求元素
名称 | 类型 | 是否必须 | 示例值 | 描述 |
ObjectWormConfiguration | 容器 | 是 | 不涉及 | 配置Bucket对象级别保留策略的容器。 父节点:无 子节点:ObjectWormEnabled、Rule |
ObjectWormEnabled | 字符串 | 是 | Enabled | 启用对象级别保留策略。取值固定为 父节点:ObjectWormConfiguration |
Rule | 容器 | 否 | 不涉及 | 保存Bucket对象级别默认保留策略的容器。 父节点:ObjectWormConfiguration 子节点:DefaultRetention |
DefaultRetention | 容器 | 否 | 不涉及 | 默认保留策略的容器。 父节点:Rule 子节点:Mode、Days、Years |
Mode | 字符串 | 否 | COMPLIANCE | Bucket对象级别保留策略的默认保留模式。取值:
父节点:DefaultRetention |
Days | 正整数 | 否 | 1 | 默认保留天数,取值范围为1~36500。 父节点:DefaultRetention |
Years | 正整数 | 否 | 1 | 默认保留年数,取值范围为1~100。Days和Years只能选择其一进行设置。 父节点:DefaultRetention |
示例
示例1:开启ObjectWorm并设置默认合规保留策略
以下示例为Bucket开启ObjectWorm并设置默认保留策略为合规模式保留1天。
请求示例
PUT /?objectWorm HTTP/1.1 Date: Thu, 17 Mar 2026 11:18:32 GMT Content-Length: 188 Content-Type: application/xml Content-MD5: B2M2Y8AsgTpgAmY7PhC**** Host: examplebucket.oss-cn-hangzhou.aliyuncs.com Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20260317/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d**** <?xml version="1.0" encoding="UTF-8"?> <ObjectWormConfiguration> <ObjectWormEnabled>Enabled</ObjectWormEnabled> <Rule> <DefaultRetention> <Mode>COMPLIANCE</Mode> <Days>1</Days> </DefaultRetention> </Rule> </ObjectWormConfiguration>返回示例
HTTP/1.1 200 OK x-oss-request-id: 5374A2880232A65C2300**** Date: Thu, 17 Mar 2026 11:18:32 GMT Content-Length: 0 Server: AliyunOSS
示例2:仅开启ObjectWorm不设置默认策略
以下示例仅为Bucket开启ObjectWorm,不设置默认保留策略。后续可通过PutObjectRetention接口为单个Object单独设置保留策略。
请求示例
PUT /?objectWorm HTTP/1.1 Date: Thu, 17 Mar 2026 11:18:32 GMT Content-Length: 102 Content-Type: application/xml Content-MD5: C3N3Z9BthUpgBnZ8QiD**** Host: examplebucket.oss-cn-hangzhou.aliyuncs.com Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20260317/cn-hangzhou/oss/aliyun_v4_request,Signature=**** <?xml version="1.0" encoding="UTF-8"?> <ObjectWormConfiguration> <ObjectWormEnabled>Enabled</ObjectWormEnabled> </ObjectWormConfiguration>返回示例
HTTP/1.1 200 OK x-oss-request-id: 6485B3990232A65C3400**** Date: Thu, 17 Mar 2026 11:20:15 GMT Content-Length: 0 Server: AliyunOSS
错误码
错误码 | HTTP状态码 | 描述 |
InvalidBucketState | 409 | Bucket未开启版本控制,无法启用ObjectWorm。请先开启版本控制后重试。 |
BucketWormAlreadyEnabled | 409 | 该Bucket已开启桶级别保留策略(BucketWorm),不支持同时开启对象级别保留策略(ObjectWorm)。 |