生命周期管理
功能介绍
用户可以使用 QingStor 对象存储的生命周期管理功能来配置一条或多条规则对 Bucket 中的 Object 进行生命周期管理。每条规则定义了对 Bucket 中的哪些 Object 过多长时间执行哪种操作。
QingStor 对象存储定义只有 Bucket 的所有者才能设置该功能。
操作类型:
-
转换存储层级
用户可以使用该功能将过一段时间后访问频率变低的 Object 转换至低频存储层级。目前 QingStor 对象存储仅支持将标准存储转换至低频存储。需要注意的是,Object 的最后更新时间为 30 天前,包括 30 天,才能将其转换为低频存储。低频存储中的 Object 需在低频存储中最少存储30天,若在 30 天内被修改或删除,系统仍然以 30 天计费。
-
过期删除
用户通过配置此功能,可将指定资源过一段时间后自动删除。包括删除 Object 和取消分段上传,删除未完成的分段上传。
规则冲突
当两条或多条生命周期规则重叠或冲突时,QingStor 对象存储的处理如下:
-
若同一个 Object 匹配到多条规则,并且匹配的这些规则是同一操作,那么生效时间最早的规则,先执行。举例说明如下:
案例1: 一个 Object 匹配到了两条规则。规则 A 是 7 天后删除该 Object;规则 B 是 30 天后删除该 Object。QingStor 对象存储将在 7 天后删除该 Object。
案例2: 一个 Object 匹配到了两条规则。规则 A 是 30 天后变更该 Object 为低频存储;规则 B 是 120 天后变更该 Object 为低频存储。QingStor 对象存储将在 30 天后变更该 Object 为低频存储。
-
若同一个 Object 匹配到多条规则,并且匹配的这些规则是不同操作,那么生效时间更早的先执行,生效时间晚的后执行。举例说明如下:
案例1: 一个 Object 匹配到了两条规则。规则 A 是 30 天后变更该 Object 为低频存储;规则 B 是 120 天后删除该 Object。QingStor 对象存储将在 30 天后变更该 Object 为低频存储,并在 120 天后删除该 Object。
-
当用户添加或修改
转换存储层级规则
时,若存在某过期删除规则
的前缀覆盖其前缀的范围,且转换存储层级规则
的生命周期大于或等于过期删除规则
的生命周期,QingStor 对象存储判定用户误操作,不允许添加或修改该转换存储层级规则
,并返回400 invalid_request
以及相应的冲突信息。举例说明:条件1: 用户添加规则 A,120 天后变更前缀为
logs/test
的 Object 为低频存储;条件2: 已经存在规则 B,30 天后删除前缀为
logs/
的 Object;服务端处理: 此时用户添加规则 A 失败,QingStor 对象存储返回
400 invalid_request
以及相应的冲突信息。 -
当用户添加或修改
过期删除规则
时,若存在某转换存储层级规则
的前缀处于其前缀范围之下,且过期删除规则
的生命周期小于或等于转换存储层级规则
的生命周期,QingStor 对象存储判定用户误操作,不允许添加或修改该过期删除规则
,并返回400 invalid_request
以及相应的冲突信息。举例说明:条件1: 用户添加规则 A,30 天后删除前缀为
logs/
的 Object;条件2: 已经存在规则 B,120 天后变更前缀为
logs/test
的 Object 为低频存储;服务端处理: 此时用户添加规则 A 失败,QingStor 对象存储返回
400 invalid_request
以及相应的冲突信息。
操作步骤
- 进入 QingStor 对象存储的主页面,选择待设置生命周期的 Bucket,点击 右键 > 设置:
- 进入 Bucket 设置页面,点击 生命周期 > 添加规则:
- 在弹出的对话框内,根据页面提示信息,填写相关参数后,点击 提交 按钮:
说明:
- 对象前缀: 用于指定该规则匹配的 Object 名。
- 缺省时,说明该规则对 Bucket 内所有 Object 均适用;
- 不支持通配符和正则表达式;
- 需进行编码,编码后长度在 1 ~ 1023 个字符之间。
- 操作: 当选择
取消未完成的分段上传
时,则无需选择操作对象。 - 操作对象: 对于开启了版本管理功能的 Bucket,需要配置该规则生效的具体对象为当前版本或是历史版本。具体规则如下:
操作对象 | 操作 | 说明 |
---|---|---|
对历史版本操作 | 变更存储级别 | 若历史版本为删除标记,则不进行操作。若历史版本不为删除标记,则将历史版本进行存储级别的变更 |
删除对象 | 彻底删除历史版本。 | |
对当前版本操作 | 变更存储级别 | 若当前版本为删除标记,则不进行操作。若当前版本不为删除标记,则将当前版本进行存储级别的变更 |
删除对象 | 若当前 Object 仅一个版本,且为删除标记,则删除当前的删除标记。若当前 Object 有多个版本,且当前版本为删除标记,则不进行操作。若当前 Object 不为删除标记,则增加删除标记为当前版本。 |
- 天数: Object 创建或修改的指定天数后执行操作。
- 变更存储级别时,天数必须大于或等于 30 天;
- 删除 Object,或者取消未完成的分段上传,天数必须大于 0 天。
- 成功创建的生命周期规则,列表显示:
相关API
操作 | API | 说明 |
---|---|---|
设置 Bucket Lifecycle | PUT Bucket Lifecycle | 用于设置 Bucket 的生命周期规则 |
获取 Bucket Lifecycle | GET Bucket Lifecycle | 用于获取已设置的 Bucket 生命周期规则 |
删除 Bucket Lifecycle | DELETE Bucket Lifecycle | 用于删除已经设置的 Bucket 策略生命周期规则 |