Amazon Simple Storage Service
开发人员指南 (API Version 2006-03-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

使用删除标记

删除标记是用于受版本控制的对象 (已在简单 DELETE 请求中命名) 的占位符 (标记)。因为对象位于已启用版本控制的存储桶中,所以不能删除该对象。但是,删除标记可以使 Amazon S3 将对象视为已删除。

与任何其他对象一样,删除标记同样有键名称 (键) 和版本 ID。但是,删除标记在以下方面与其他对象不同:

  • 没有关联的数据。

  • 没有关联的访问控制列表 (ACL) 值。

  • 由于删除标记不包含数据,因此 GET 请求检索不到任何内容;该操作会引发 404 错误。

  • 可以对删除标记执行的操作只有 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 (未找到对象) 错误。

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