存储空间(Bucket)开启版本控制后,针对数据的覆盖和删除操作将会以历史版本的形式保存下来。当Bucket累积了大量的历史版本或者过期删除标记时,您可以结合生命周期规则删除不必要的历史版本以及过期删除标记,从而减少存储成本并有效提升列举Object的性能。
前提条件
目标Bucket已开启版本控制。详情请参见开启版本控制。
场景说明
当目标存储空间examplebucket开启版本控制后,王先生在某一年2月8日上传了名为example.txt的文件,此后在同一年份的不同时间内对example.txt文件进行了多次覆盖或不指定versionID的删除操作,OSS对该文件的每一次覆盖和删除操作均生成全局唯一的随机字符串versionID(图示中的versionID均以简易版本号标识,不代表实际versionID),并将文件以历史版本的形式保存在目标Bucket中。
文件经多次覆盖和不指定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。
有关生命周期规则的更多信息,请参见基于最后一次修改时间的生命周期规则。
操作步骤
保留指定版本文件
假设当前时间为9月10日,则通过配置以下生命周期规则可实现仅保留5月8日以及9月10日上传的文件版本。
恢复指定版本文件
将5月8日生成的最新历史版本文件恢复为当前版本的操作步骤如下:
在examplebucket管理页面,选择文件管理>文件列表。
单击历史版本右侧的显示。
找到更新时间为5月8日对应版本的example.txt文件。
单击目标历史版本右侧的恢复。
相关文档
您也可以使用API方式恢复文件。如果需要恢复Object的早期版本为当前版本,您只需将Object的早期版本拷贝到同一个Bucket中,OSS会将该Object对应早期版本置为当前版本。更多信息,请参见CopyObject。