您可以暂停版本控制以停止在存储空间(Bucket ) 中继续累积同一文件(Object)的新版本。暂停版本控制后,您可以上传文件,并通过指定版本ID(versionId)的方式对历史版本文件进行下载和删除操作。
上传文件
向已暂停版本控制的Bucket上传文件时,OSS会为新文件添加versionId为null,且每个文件只保留一个versionId为null的版本。
通过PUT操作上传文件时,OSS会自动添加null的版本ID。
如果Bucket中已有版本ID为111111的文件,通过PUT操作上传同名文件时,新文件会分配null的版本ID,旧版本ID为111111的文件将作为历史版本保存。
如果Bucket中已有版本ID为null的文件,上传同名文件时将覆盖原文件。
您可以通过cp命令或各语言SDK(如Java、PHP、Node.js、Python、.NET、Go、C++)在已暂停版本控制的Bucket中上传文件。
下载文件
您可以在已暂停版本控制Bucket中下载当前版本或指定版本的文件。
通过GET请求下载文件时,未指定版本ID则返回当前版本(版本ID为null)。
如需下载指定版本,通过GET请求时需指定版本ID。如下图所示(ID=222222)。
您可以通过cp命令或各语言SDK(如Java、PHP、Node.js、Python、.NET、Go、C++)在已暂停版本控制的Bucket中下载文件。
删除文件
在已暂停版本控制的Bucket中执行DELETE操作时,分以下三种情形:
对Bucket中当前版本ID不为null的文件执行DELETE操作时,OSS会插入版本ID为null的删除标记(Delete Marker)作为当前版本。
对Bucket中当前版本ID为null的文件执行DELETE操作时,OSS会插入版本ID为null的删除标记作为当前版本。由于OSS保证同一个文件只允许存在一个null的版本,因此原版本ID为null的版本将被覆盖。
如果通过DELETE+versionId的方式删除文件,则该指定版本的文件将被永久删除,如下图所示(即删除版本ID=333333的文件 )。
您可以通过rm命令或各语言SDK(如Java、PHP、Node.js、Python、.NET、Go、C++)在已暂停版本控制的Bucket中删除文件。