多版本控制
使用场景
利用多版本控制,您可以在一个桶中保留多个版本的对象,使您更方便地检索和还原各个版本,在意外操作或应用程序故障时快速恢复数据。
默认情况下,OBS中新创建的桶不会开启多版本功能,向同一个桶上传同名的对象时,新上传的对象将覆盖原有的对象。
约束与限制
开启了桶级WORM开关,系统将自动开启多版本,并且不允许暂停多版本。
开启多版本控制
- 桶中已有对象版本ID(空)和内容都不会变化。再次上传该同名对象,对象版本示意图如图1所示。
- 新上传对象,OBS自动为每个对象创建唯一的版本号。上传同名的对象将以不同的版本号同时保存在OBS中,如图2所示。
表1 版本说明 版本
描述
最新版本
多版本控制开启后,同名对象多次操作,每次操作都会对应一个版本号进行保存。最后一次操作保存的版本号,为最新版本。
历史版本
多版本控制开启后,同名对象多次操作,每次操作都会对应一个版本号进行保存。除最后一次外的,其他保存的版本号为历史版本。
- 列出桶内对象列表时默认列出最新对象列表。
- 可以指定版本号下载对象,不指定版本号默认下载最新的对象。详细操作请参见多版本控制的相关操作。
- 可以选中目标对象,并单击右侧的“删除”删除对象。对象被删除后,OBS将插入一个删除标记,对象在“已删除对象”列表中呈现。详细操作请参见删除对象。此时如果访问该对象,会返回404错误。
图3 删除标记示意图
- 删除带删除标记的对象可恢复该对象。详细操作请参见相关操作。
- 在“已删除对象”列表,选中对象,可指定版本号彻底删除指定版本对象。详细操作请参见多版本控制功能对删除操作的影响。
- 一个对象只会显示在对象列表或已删除对象列表中,不会同时出现。
例如,上传一个对象A后,将其删除,对象A将显示在已删除对象列表中。如果再次上传同名对象A,同名对象A会显示在对象列表中,显示在已删除对象列表中的原对象A将不会存在。对象A版本示意图如图4所示。
- 除带删除标记的版本外,其他每个版本的对象存储在OBS中均需要进行计费。
暂停多版本控制
多版本控制一旦启动,不可以关闭,只能暂停使用。暂停后,新上传的对象版本号为空。如果之前有空版本号的同名对象,则会覆盖该带空版本号的对象。
当不需要对桶内对象进行版本控制时,可以暂停多版本控制:
- 历史版本将继续保留在OBS中,如果这些历史版本你不再需要,请手动删除。
- 仍可以指定版本号下载对象,不指定版本号默认下载最新的对象。
- 除带删除标记的版本外,其他历史版本的对象存储在OBS中仍需要进行计费。
暂停与未启用的区别
暂停多版本控制后,删除对象时,无论此对象是否存在历史版本,将会产生一个版本号为空的删除标记。而未启用多版本控制时,则不会产生删除标记。
多版本开启后,由于对象的每个历史版本都被保存下来,每个版本都会占用存储空间,OBS会对所有版本收取存储费用。请谨慎启用多版本开关,以免产生额外的存储费用。
使用方式
OBS支持通过控制台、API、SDK方式配置多版本控制,不支持通过OBS Browser+、obsutil方式配置多版本控制。
相关操作
开启多版本控制后,进入对象详情页面,在“版本”页签,可以对多版本对象进行删除、分享、下载、延长WORM对象版本保留期操作。
- 在OBS管理控制台左侧导航栏选择“对象存储”。
- 在OBS管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
- 在“对象”列表,单击待操作的对象,进入对象详情页面。
- 在“版本”页签,显示该对象的所有版本。
- 对多版本对象可做以下操作。
- 在待操作版本对象右侧,单击“下载”,可下载该版本对象。
如果该版本对象为“归档存储”或“深度归档存储”类别,需要先恢复,再下载。
- 在待操作版本对象右侧,单击“分享”,可分享该版本对象。
- 在待操作版本对象右侧,单击“更多>删除”,将永久删除该版本对象,不可恢复。如果删除的是最新版本的对象,那么时间最近的历史版本将变成新的最新版本。
WORM桶内对象未配置保留策略或者保留策略已过期,可在对象详情->版本,选择对应的版本进行删除操作;如果对象版本在保留期内,则无法成功删除。
- 在需要延长保留期的对象版本右侧,单击“更多>延长保留期”,选择时间点。保留期不支持缩短,仅支持选择延后的指定时间点。
- 在待操作版本对象右侧,单击“下载”,可下载该版本对象。