从启用了版本控制的存储桶中删除对象版本 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

从启用了版本控制的存储桶中删除对象版本

您在需要时随时可以从 Amazon S3 存储桶中删除对象版本。您还可为具有明确定义的生命周期的对象定义生命周期配置规则,请求 Amazon S3 使当前对象版本过期,或者永久删除非当前对象版本。当存储桶启用了版本控制或者版本控制功能已暂停时,生命周期配置操作的工作方式如下:

  • Expiration 操作适用于当前对象版本。Amazon S3 通过添加删除标记将当前版本作为非当前版本保留(而不是删除当前对象版本),然后删除标记将成为当前版本。

  • NoncurrentVersionExpiration 操作适用于非当前对象版本,Amazon S3 会永久删除这些对象版本。无法恢复永久删除的对象。

有关更多信息,请参阅 管理存储生命周期

删除请求使用案例

DELETE 请求具有以下使用案例:

  • 启用版本控制后,简单 DELETE 无法永久删除对象。Amazon S3 将在存储桶中插入删除标记,该删除标记将成为对象的当前版本并具有新的 ID。

    当您尝试对当前版本为删除标记的对象执行 GET 操作时,Amazon S3 将该对象作为已删除对象对待(即使它尚未被擦除),并返回 404 错误。有关更多信息,请参阅 使用删除标记

    下图显示简单 DELETE 实际上不会删除指定的对象。但是,Amazon S3 将插入一个删除标记。

  • 要永久删除受版本控制的对象,您必须使用 DELETE Object versionId

    下图显示删除指定的对象版本将永久删除该对象。

要删除对象版本

您可以使用控制台、AWS 开发工具包或 REST API 删除 Amazon S3 中的对象版本。

  1. 登录 AWS 管理控制台,并通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. Bucket (存储桶) 列表中,选择包含对象的存储桶的名称。

  3. Objects(对象)列表中,选择对象的名称。

  4. 选择 Versions(版本)。

    Amazon S3 显示了对象的所有版本。

  5. 选中要检索的版本的 Version ID(版本 ID)旁的复选框。

  6. 选择 Delete

  7. Permanently delete objects?(永久删除对象?)中,输入 permanently delete

    警告

    永久删除对象版本时,该操作将无法撤消。

  8. 选择 Delete objects (删除对象)

    Amazon S3 将删除对象版本。

有关使用适用于 Java、.NET 和 PHP 的 AWS 开发工具包删除对象的示例,请参阅删除 Amazon S3 对象。在不受版本控制和启用了版本控制的存储桶中删除对象的示例是相同的。但是,对于启用了版本控制的存储桶,Amazon S3 会分配版本号。否则,版本号为空。

有关使用其他 AWS 开发工具包的信息,请参阅 AWS 开发人员中心

删除对象的特定版本的步骤

  • DELETE 中,指定版本 ID。

例 — 删除特定版本

以下示例删除了 photo.gif 的版本 UIORUnfnd89493jJFJ

DELETE /photo.gif?versionId=UIORUnfnd89493jJFJ HTTP/1.1 Host: bucket.s3.amazonaws.com Date: Wed, 12 Oct 2009 17:50:00 GMT Authorization: AWS AKIAIOSFODNN7EXAMPLE:xQE0diMbLRepdf3YB+FIEXAMPLE= Content-Type: text/plain Content-Length: 0

有关删除对象版本的更多信息,请参阅以下主题: