功能描述
COS 支持对存储桶开启对象锁定功能,并可以配置相应的默认保留周期。通过 PUT Bucket ObjectLockConfiguration 接口,可实现以下两个功能:
1. 为存储桶开启对象锁定功能。此时,代表着该存储桶内可以使用对象锁定功能,用户可以根据需要选择性为存储桶内的对象添加锁定。上传后添加锁定可参见 PUT Object Retention、上传时添加锁定可参见 PUT Object。
注意:
存储桶的对象锁定功能开启后不支持关闭。
2. 已开启对象锁定功能后,支持为该存储桶配置默认保留周期。当用户上传对象未携带对象锁定头部时,会自动根据默认保留周期设置相应的保留期限。详情可参考 对象锁定概述。
注意:
默认保留周期是一个可选配置,支持修改、关闭。
修改默认保留周期,不会影响存量对象的锁定状态,只会影响后续新增对象。
请求
请求示例
PUT /?object-lock HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateAuthorization: Auth String
说明:
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com,其中 <BucketName-APPID> 为带 APPID 后缀的存储桶名字,例如 examplebucket-1250000000,可参阅 存储桶概览 > 基本信息 和 存储桶概述 > 存储桶命名规范 文档;<Region> 为 COS 的可用地域,可参阅 地域和访问域名 文档。
Authorization: Auth String(详情请参见 请求签名 文档)。
请求头
请求体
<ObjectLockConfiguration><ObjectLockEnabled>Enabled</ObjectLockEnabled><Rule><DefaultRetention><Mode>COMPLIANCE</Mode><Days>30</Days></DefaultRetention></Rule></ObjectLockConfiguration>
具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
ObjectLockConfiguration | 无 | 对象锁定配置 | Container | 是 |
ObjectLockEnabled | ObjectLockConfiguration | 是否开启对象锁定,仅支持传入 Enabled 。对象锁定开启后不支持关闭 | String | 是 |
Rule | ObjectLockConfiguration | 对象锁定规则 | Container | 否 |
DefaultRetention | ObjectLockConfiguration.Rule | 存储桶的对象锁定默认保留周期和模式,未携带锁定头部的对象遵循桶配置设置保留期限。存储桶配置支持删除、修改 | Container | 是 |
Days | ObjectLockConfiguration.Rule.DefaultRetention | 对象锁定默认周期时长(范围为1-36500) | Int | 是 |
Mode | ObjectLockConfiguration.Rule.DefaultRetention | 对象锁定默认模式,仅支持枚举值 COMPLIANCE 。若不填入此字段,默认为COMPLIANCE | Enum | 否 |
响应
响应头
响应体
该响应体为空。
错误码
实际案例
案例一:为存储桶开启对象锁定功能
请求
以下示例表示对存储桶 examplebucket-1250000000 开启对象锁定功能。
PUT /?object-lock HTTP/1.1Host: exmaplebucket-1250000000.cos.ap-beijing.myqcloud.comContent-Length: 281Content-Type: application/x-www-form-urlencodedAuthorization: Auth String<ObjectLockConfiguration><ObjectLockEnabled>Enabled</ObjectLockEnabled></ObjectLockConfiguration>
响应
HTTP/1.1 200 OKContent-Length: 0Connection: keep-aliveDate: Fri, 09 Dec 2022 08:17:20 GMTServer: tencent-cosx-cos-request-id: NjM5MmVmMTBfNmM0ZTQ0MGJfMjA4****
案例二:为存储桶开启对象锁定功能并配置默认保留周期
请求
以下示例表示对存储桶 examplebucket-1250000000 开启对象锁定功能,并配置默认保留周期。
PUT /?object-lock HTTP/1.1Host: exmaplebucket-1250000000.cos.ap-beijing.myqcloud.comContent-Length: 281Content-Type: application/x-www-form-urlencodedAuthorization: Auth String<ObjectLockConfiguration><ObjectLockEnabled>Enabled</ObjectLockEnabled><Rule><DefaultRetention><Days>1</Days><Mode>COMPLIANCE</Mode></DefaultRetention></Rule></ObjectLockConfiguration>
响应
HTTP/1.1 200 OKContent-Length: 0Connection: keep-aliveDate: Fri, 09 Dec 2022 08:17:20 GMTServer: tencent-cosx-cos-request-id: NjM5MmVmMTBfNmM0ZTQ0MGJfMjA4****
案例三:修改存储桶的默认保留周期
请求
以下示例表示对存储桶 examplebucket-1250000000 修改存储桶的默认保留周期。例如,存储桶之前的默认保留周期为3天,以下请求会将默认保留周期修改为10天。
PUT /?object-lock HTTP/1.1Host: exmaplebucket-1250000000.cos.ap-beijing.myqcloud.comContent-Length: 281Content-Type: application/x-www-form-urlencodedAuthorization: Auth String<ObjectLockConfiguration><ObjectLockEnabled>Enabled</ObjectLockEnabled><Rule><DefaultRetention><Days>10</Days><Mode>COMPLIANCE</Mode></DefaultRetention></Rule></ObjectLockConfiguration>
响应
HTTP/1.1 200 OKContent-Length: 0Connection: keep-aliveDate: Fri, 09 Dec 2022 08:17:20 GMTServer: tencent-cosx-cos-request-id: NjM5MmVmMTBfNmM0ZTQ0MGJfMjA4****