文档中心>对象存储

对象锁定概述

最近更新时间:2024-09-20 18:33:11

我的收藏

概述

腾讯云对象存储(Cloud Object Storage,COS)提供了对象锁定功能,支持用户设定保留期限内的对象不可改写、不可删除。
对象锁定功能当前为对象级别,支持用户为单个或多个对象设置保留期限。用户也可以通过开启存储桶的对象锁定配置,对新上传到存储桶的对象默认设置对象锁定。
注意:
对象一旦设置了对象锁定,不支持解除对象锁定、不支持缩短保留期限,只允许延长保留期限。
多 AZ 存储桶仅广州地域支持开启Worm,且不支持在对象上传后修改锁定状态。如需要为多 AZ 桶开启 Worm 请 联系我们 开通白名单,详情见 MAZ 存储桶开启对象锁定
说明:
基于对象锁定功能,对象存储 COS 可满足严格的电子记录保留要求,包括 SEC Rule 17a-4(f)、FINRA 4511、CFTC 1.31等合规要求。
SEC 17A-4 法规是美国证券交易委员会根据1934年美国证券交易法而颁布的法规,该法规概述了数据保留、索引、可访问性要求,适用于从事股票,债券和期货等金融证券交易或经纪业务公司,根据该法规,许多类型交易记录必须保留并不可重写和擦除,期限为两年内可立即访问,至少六年内为非立即访问。

存储桶开启对象锁定功能

在为对象加锁之前,存储桶需要先开启 WORM 功能。需要注意的是,开启对象锁定功能,仅是将存储桶标记为“可使用对象锁定功能”的状态,并不会自动对桶内所有对象加锁。存储桶开启 WORM 功能后,用户可以选择为指定对象开启对象锁定,或保持不锁定的状态。

存储桶的对象锁定配置一旦开启后,不支持关闭。开启对象锁定配置的存储桶,会受到以下限制:
不支持开启版本控制。若存储桶已开启版本控制,则无法开启对象锁定配置。
不支持开启存储桶复制。原因是,存储桶复制要求必须开启版本控制。
不支持开启智能分层配置。若存储桶已开启智能分层配置,则无法开启对象锁定配置。
不支持使用追加上传(Append)。

使用方法

您可以通过 API 方式为存储桶开启对象锁定配置。

使用 REST API

调用 PUT Bucket ObjectLockConfiguration 接口,开启对象锁定配置。

为对象设置保留期限

保留期限

存储桶开启对象锁定功能后,用户可为桶内对象配置锁定保留期限。COS 在对象的元数据中存储了一个时间戳用于标识锁定的过期时间(RetainUntilDate),在保留期限之前:
对象不可删除、修改。
对象的存储类型不可修改。
对象 HTTP 头部和用户元数据都不可修改,包括 Content-Type、Content-Encoding、 Content-Language、Content-Disposition、Cache-Control、Expires、x-cos-meta-。
用户可以单独为指定对象配置保留期限。对象上传时,支持通过 x-cos-object-lock-retain-until-date 头部配置保留期限;对象上传后,支持通过 PUT Object Retention 接口配置保留期限。
用户也可以通过设定存储桶默认配置,在对象上传时自动配置保留期限。详情可参考 存储桶默认配置

使用方法

您可以通过API 为对象设置保留期限。

使用 REST API

在上传时为对象设置保留期限 调用上传接口(PutObject、InitiateMultipartUploads、PostObject),并同时传入对象锁定相关的头部或表单域。详情请参见以下 API 文档:
在上传后为对象设置保留期限,详情请参见 PUT Object Retention
查看对象的保留期限,详情请参见 GET Object Retention

为存储桶设置默认保留天数

COS 支持为存储桶添加默认的对象锁定保留期限,单位为天。当用户上传对象未携带对象锁定头部时,会自动根据存储桶配置的保留天数为对象加锁。但是,当用户上传对象携带了对象锁定头部时,则会忽略存储桶配置,根据头部设置保留期限。
说明:
存储桶默认保留天数可以缩短、延长、关闭。
配置存储桶默认保留天数,只会对后续新增的对象生效,不会影响存量对象的锁定状态。
下面举例说明存储桶默认配置对对象保留期限的影响。
对象上传时间
存储桶默认配置
对象上传时头部
对象的锁定到期时间
2023-01-01T18:30:00Z
7天
x-cos-object-lock-retain-until-date: 2023-01-02T18:30:00Z
2023-01-02T18:30:00Z
2023-01-01T18:30:00Z
7天
x-cos-object-lock-retain-until-date: 2023-01-20T18:30:00Z
2023-01-20T18:30:00Z
2023-01-01T18:30:00Z
7天
未携带
2023-01-08T18:30:00Z
2023-01-01T18:30:00Z
未配置
x-cos-object-lock-retain-until-date: 2023-01-02T18:30:00Z
2023-01-02T18:30:00Z
2023-01-01T18:30:00Z
未配置
x-cos-object-lock-retain-until-date: 2023-01-20T18:30:00Z
2023-01-20T18:30:00Z
2023-01-01T18:30:00Z
未配置
未携带
不锁定

使用方法

您可以通过 API 设置存储桶的对象锁定默认配置。

REST API

您可以直接通过以下 API 管理对象锁定:

限制说明

1. 对象锁定功能目前仅对白名单客户开放,请 联系我们
2. 多 AZ 存储桶具有更多限制,如需要开启 Worm 请 联系我们 开通白名单,详情见 MAZ 存储桶开启对象锁定
3. 对象锁定不支持版本控制功能,已开启对象锁定的存储桶不支持开启版本控制,存储桶版本控制处于开启、暂停状态,均不支持开启对象锁定。
4. 对象锁定不支持存储桶复制功能,由于对象锁定不兼容版本控制功能,且在存储桶复制规则下源存储桶、目标存储桶必须开启版本控制,所以开启对象锁定的存储桶无法作为存储桶复制的源存储桶、目标存储桶。
5. 对象锁定不支持智能分层功能。已开启对象锁定的存储桶不支持开启智能分层配置,存储桶开启智能分层配置后,不支持开启对象锁定。
6. 对象锁定与生命周期规则的关系。对象处于保留期内,生命周期配置的沉降、删除操作均不生效;对象超过保留期后,生命周期配置的沉降、删除操作可正常生效。
生命周期规则
对象锁定保留期
生命周期执行表现
20天沉降对象
30天保留期
上传后第20天,对象不沉降,上传后第31天对象沉降。
20天删除对象
30天保留期
上传后第20天,对象不删除,上传后第31天对象被删除。
20天沉降对象
10天保留期
上传后20天对象正常沉降。
20天删除对象
10天保留期
上传后20天对象正常删除。
7. 对存储桶开启对象锁定后,文件碎片不受对象锁定规则限制,用户可以清除存储桶内的文件碎片。
8. 对象锁定功能开启后无法关闭。
9. 开启对象锁定后,存储桶和对象 ACL 可以修改。

MAZ 存储桶开启对象锁定

1. MAZ 存储桶开启 Worm 需要单独申请白名单。
2. 仅广州地域的 MAZ 存储桶支持开启 Worm,其他地域 MAZ 桶不支持开启 Worm。
3. MAZ 存储桶内的对象,一旦上传后不支持修改对象的锁定状态(即不支持调用 PutObjectRetention 操作,包括为未加锁对象开启锁定,或延长已加锁对象的的保留时间)。
4. (推荐用法)建议用户在存储桶创建后,直接开启对象锁定并设定一个保留天数,后续上传到桶的对象会自动按照保留天数添加锁定。
说明:
设置好保留天数后不建议修改该天数,原因是修改后的天数仅会对后续新增对象生效,存量对象的锁定期限保持不变,随意修改天数容易导致存量、新增对象的保留天数不同,不便于管理。