开启存储空间(Bucket)版本控制特性后,针对数据的覆盖和删除操作将会以历史版本的形式保存下来。通过文件(Object)的版本控制,用户在错误覆盖或者删除 Object 后,能够将 Bucket 中存储的 Object 恢复至任意时刻的历史版本。

说明 版本控制目前已在印度区域支持白名单开通,其他区域即将陆续开通,敬请期待。

应用场景

  • 用户数据误删除

    当前 OSS 不提供回收站功能。当用户删除 OSS 数据时,无法找回已删除的数据,必须依赖线下或者第三方的备份产品。

  • 文件被覆盖

    针对网盘、在线协作类产品,该类产品里的文档被频繁的修改。在线办公场景下,针对文件的编辑会产生大量的临时版本,用户经常需要找回某个时间点的版本。

原理介绍

版本控制应用于 Bucket 内的所有 Object,而不是某些指定的 Object。当第一次针对 Bucket 开启版本控制后,该 Bucket 中所有的 Object 将在之后一直受到版本控制,并且每个版本都具有唯一的版本 ID。

  • Bucket 的版本状态包括:
    • 非版本化(默认)
    • 启用版本控制
    • 暂停版本控制
    说明 开启 Bucket 版本控制后,则无法返回到非版本化状态,但允许暂停版本控制。
  • 可以配置 Bucket 版本控制的用户:
    • 根账号
    • 授权 OSSFullAccess 权限的子账号或者角色
    • 授权 PutBucketVersioning 权限的子账号或者角色
说明 Bucket 开启版本控制后,针对文件的每次覆盖都会生成 一个历史版本,并且针对每个版本进行收费。您可以通过 lifecycle 自动删除过期版本。