使用删除标记
Amazon S3 中的删除标记是用于受版本控制的对象(已在简单 DELETE
请求中命名)的占位符(或标记)。因为对象位于已启用版本控制的存储桶中,所以不能删除该对象。但是,删除标记可以使 Amazon S3 的行为类似于它已被删除。
与任何其他对象一样,删除标记同样有键名 (键) 和版本 ID。但是,删除标记在以下方面与其他对象不同:
-
没有关联的数据。
-
没有关联的访问控制列表 (ACL) 值。
-
由于删除标记不包含数据,因此
GET
请求检索不到任何内容;该操作会引发 404 错误。 -
可在删除标记上使用的唯一操作是 Amazon S3 API
DELETE
调用。为此,您必须使用具有适当权限的 Amazon Identity and Access Management (IAM) 用户或角色来发出DELETE
请求。
删除标记将累积对 Amazon S3 中的存储的名义费用。删除标记的存储大小等于删除标记键名的大小。键名是 Unicode 字符序列。对于名称中的每个字符,UTF-8 编码将 1 到 4 字节的存储添加到存储桶。
有关键名称的更多信息,请参阅 创建对象键名称。有关将删除标记删除的信息,请参阅 管理删除标记。
仅 Amazon S3 可以创建删除标记,且当您在已启用版本控制或已暂停版本控制的存储桶的对象上发送 DELETE
Object
请求时执行此操作。在 DELETE
请求中指定的对象实际上不会删除。而是使删除标记成为对象的当前版本。该对象的键名(键)将成为删除标记的键。如果您尝试获取对象,而其当前版本为删除标记,则 Amazon S3 的响应如下:
-
404 (Object not found) 错误
-
响应标头,
x-amz-delete-marker: true
响应标头告知您所访问的对象是删除标记。此响应标头永不会返回 false
。如果值为 false
,则 Amazon S3 不会在响应中包含此响应标头。
下图显示了对象(其当前版本为删除标记)上的简单 GET
如何返回 404 No Object Found (未找到对象) 错误。

列出删除标记(和对象的其他版本)的唯一方法在 versions
请求中使用 GET Bucket versions
子资源。简单 GET
不会检索删除标记对象。下图显示 GET Bucket
请求不会返回其当前版本为删除标记的对象。
