您可以暂停版本控制以停止在存储空间(Bucket ) 中继续累积同一文件(Object)的新版本。

暂停版本控制后,您仍旧可以通过指定 versionId 对历史版本 Object 进行下载、拷贝、删除等操作。

上传文件

向暂停版本控制的存储空间(Bucket)上传文件(Object)时,OSS 将为新生成的 Object 添加 versionId 为 null 的版本,且每个 Object 只会保留一个 versionId 为 null 的版本。

  • 如下图所示,向暂停版本控制的 Bucket 中通过 PUT 操作上传 Object 时,OSS 会为上传的 Object 自动添加 null 版本 ID。
  • 如下图所示,如果暂停版本控制的 Bucket 中存在开启版本控制时生成的 Object 版本(ID=111111),通过 PUT 操作向该 Bucket 上传同名 Object 时,OSS 会为新版本 Object 分配 null versionID ,且该版本作为当前版本,同时开启版本控制时生成的 Object 版本(ID=111111)将作为历史版本保存下来。
  • 如果暂停版本控制的 Bucket 中已存在 versionId 为 null 的 Object ,通过 PUT 操作向该 Bucket 上传同名 Object 时,原 versionId 为 null 的版本将被覆盖。

下载文件

您可以在暂停版本控制的存储空间(Bucket)中下载当前版本或指定版本的文件(Object)。

通过 GET 请求下载 Object 时:
  • 如果没有指定 Object 的版本 ID,默认情况下返回 Object 的当前版本。如下图所示返回 versionID 为 null 的当前版本。
  • 如果要下载指定的版本,则通过 GET 请求下载 Object 时需要指定其版本 ID ,如下图所示获取的指定版本为(ID=222222)。

删除文件

在暂停版本控制的 Bucket 中执行 DELETE 操作时,分以下三种情形:

  • 如果对 Bucket 中当前 versionId 不为 null 的 Object 执行 DELETE 操作时,则 OSS 会插入删除标记(Delete Marker)作为当前版本,且 versionId 为 null,如下图所示。
  • 如果对 Bucket 中当前 versionId 为 null 的 Object 执行 DELETE 操作时,则 OSS 会插入删除标记(Delete Marker)作为当前版本,且 versionId 为 null。由于 OSS 保证同一个 Object 只会有一个 versionId 为 null 的版本,因此原 versionId 为 null 的版本将被覆盖。
  • 如果通过 DELETE versionId 的方式删除 Object ,则该指定版本的 Object 将被永久删除,如下图所示(即删除版本 ID=333333 的 Object )。