删除标记(Delete Marker)是用于受版本控制的对象(Object)的占位符,即DELETE请求中命名的标记符。了解删除标记有助于管理对象存储中的版本控制,确保在删除对象时能够正确处理和恢复数据。
删除标记与Object的差异
删除标记与其他Object一样,有文件名称(Key)和版本ID,但在以下方面不同:
没有关联的数据。
没有关联的访问控制列表(ACL)值。
由于删除标记不包含数据,因此GET请求无法检索内容。如果Object的当前版本是删除标记,则GET请求会返回404错误。
只有具有
oss:DeleteObjectVersion
权限的RAM用户才能对删除标记执行DELETE操作。
在已开启或暂停版本控制的Bucket中发送DeleteObject请求时,OSS会为Object创建删除标记。如果未指定版本ID,则不会删除Object,而是创建删除标记作为当前版本。
无法直接删除已开启版本控制的Bucket中的Object,但删除标记可以将Object视为已删除。
如何删除“删除标记”
以下内容介绍如何在已开启版本控制的Bucket中删除“删除标记”。
如果在DeleteObject请求中未指定版本ID,OSS会插入删除标记作为Object的当前版本,删除标记可以累积。如下图所示。
在已开启版本控制的Bucket中,相同的Object可能有多个删除标记,每个删除标记对应唯一的版本ID。
如果在DeleteObject请求中指定版本ID ,则该指定版本的Object将被永久删除,如下图所示(即删除versionId=333333的删除标记,versionId=222222的版本成为Object的当前版本)。
您可以通过Java SDK、Python SDK、PHP SDK、Node.js SDK、.NET SDK、Go SDK、C++ SDK删除指定版本Object及其删除标记。
- 本页导读 (1)
- 删除标记与Object的差异
- 如何删除“删除标记”