使用最后一次修改时间的生命周期规则结合版本控制降低存储成本

存储空间(Bucket)开启版本控制后,针对数据的覆盖和删除操作将会以历史版本的形式保存下来。当Bucket累积了大量的历史版本或者过期删除标记时,您可以结合生命周期规则删除不必要的历史版本以及过期删除标记,从而减少存储成本并有效提升列举Object的性能。

前提条件

目标Bucket已开启版本控制。详情请参见开启版本控制

场景说明

当目标存储空间examplebucket开启版本控制后,王先生在某一年2月8日上传了名为example.txt的文件,此后在同一年份的不同时间内对example.txt文件进行了多次覆盖或不指定versionID的删除操作,OSS对该文件的每一次覆盖和删除操作均生成全局唯一的随机字符串versionID(图示中的versionID均以简易版本号标识,不代表实际versionID),并将文件以历史版本的形式保存在目标Bucket中。versioning

文件经多次覆盖和不指定versionID的删除操作后,结合业务场景的变化,王先生需实现如下需求:

  • 仅保留5月8日以及9月10日上传的文件版本。

  • 将5月8日生成的最新历史版本文件恢复为当前版本。

注意事项

使用生命周期过期策略管理不同版本Object时,有如下注意事项:

  • 当前版本Object过期策略

    • 在开启版本控制的情况下,如果生命周期规则中的过期策略作用于当前版本Object,OSS会添加删除标记将当前版本Object作为历史版本Object保留,而不是删除当前版本Object,且删除标记将成为Object的当前版本。

    • 在暂停版本控制的情况下,如果生命周期规则中的过期策略作用于当前版本Object,OSS会添加删除标记作为当前版本,且versionID为null。由于OSS保证同一个Object只会有一个versionID为null的版本,因此原versionID为null的版本将被覆盖。

  • 历史版本Object过期策略

    在开启或暂停版本控制的情况下,如果生命周期规则中的过期策略作用于历史版本Object,OSS会永久删除历史版本Object,且无法恢复永久删除的历史版本Object。

有关生命周期规则的更多信息,请参见基于最后一次修改时间的生命周期规则

操作步骤

  1. 保留指定版本文件

    假设当前时间为9月10日,则通过配置以下生命周期规则可实现仅保留5月8日以及9月10日上传的文件版本。

    1. 登录OSS管理控制台

    2. 单击Bucket 列表,然后单击examplebucket。

    3. 选择数据管理 > 生命周期

    4. 单击创建规则,按如下说明配置生命周期规则,其余参数保留默认配置。

      区域

      配置项

      配置方法

      基础设置

      状态

      选择启动

      策略

      选择配置到整个Bucket

      当前版本文件执行策略设置

      文件时间策略

      选择清理对象删除标记

      历史版本文件执行策略设置

      文件时间策略

      选择指定天数

      生命周期管理规则

      设置为90天,Object会在其被转换为历史版本的90天后过期,并在过期的第二天被删除。

      碎片执行策略设置

      碎片过期策略

      选择指定天数

      碎片规则

      设置为90天,因分片上传产生的碎片90天后过期,并在过期的第二天被删除。

    5. 单击确定

  2. 恢复指定版本文件

    将5月8日生成的最新历史版本文件恢复为当前版本的操作步骤如下:

    1. 在examplebucket管理页面,选择文件管理>文件列表

    2. 单击历史版本右侧的显示

    3. 找到更新时间为5月8日对应版本的example.txt文件。

    4. 单击目标历史版本右侧的恢复

相关文档

您也可以使用API方式恢复文件。如果需要恢复Object的早期版本为当前版本,您只需将Object的早期版本拷贝到同一个Bucket中,OSS会将该Object对应早期版本置为当前版本。更多信息,请参见CopyObject