暂停版本控制下Object的操作

您可以暂停版本控制以停止在存储空间(Bucket ) 中继续累积同一文件(Object)的新版本。暂停版本控制后,您可以上传文件,并通过指定版本ID(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的版本ID ,且该版本作为当前版本,同时开启版本控制时生成的Object版本(ID=111111)将作为历史版本保存下来。

  • 如果已暂停版本控制的Bucket中存在版本ID为null的Object ,通过PUT操作向该Bucket上传同名Object时,原版本ID为null的版本将被覆盖。

您可以通过cp命令Java SDKPHP SDKNode.js SDKPython SDK.NET SDKGo SDKC++ SDK的方式在已暂停版本控制的Bucket中上传文件。

下载文件

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

  • 通过GET请求下载Object时,如果未指定Object的版本ID,则默认情况下返回Object的当前版本。如下图所示返回版本ID为null的当前版本。

  • 如果要下载指定的版本,则通过GET请求下载Object时需要指定其版本ID ,如下图所示获取指定版本(ID=222222)的Object。

您可以通过cp命令Java SDKPHP SDKNode.js SDKPython SDK.NET SDKGo SDKGo SDK的方式在已暂停版本控制的Bucket中下载文件。

删除文件

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

  • 如果对Bucket中当前版本ID不为null的Object执行DELETE操作时,则OSS会插入版本ID为null的删除标记(Delete Marker)作为当前版本。

  • 如果对Bucket中当前版本ID为null的Object执行DELETE操作时,则OSS会插入版本ID为null的删除标记(Delete Marker)作为当前版本。由于OSS保证同一个Object只允许存在一个null的版本,因此原版本ID为null的版本将被覆盖。

  • 如果通过DELETE+versionId的方式删除Object,则该指定版本的Object将被永久删除,如下图所示(即删除版本ID=333333的Object )。

您可以通过rm命令Java SDKPHP SDKNode.js SDKPython SDK.NET SDKGo SDKC++ SDK的方式在已暂停版本控制的Bucket中删除文件。