删除 Amazon S3 对象 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

删除 Amazon S3 对象

您可以使用 Amazon S3 控制台、Amazon SDK、Amazon Command Line Interface (Amazon CLI) 或 REST API 直接从 Amazon S3 删除一个或多个对象。由于 S3 存储桶中的所有对象都会产生存储费用,因此您应从中删除不再需要的对象。例如,如果您正在收集日志文件,最好在不再需要这些文件时将其删除。您可以将生命周期规则设置为自动删除对象 (如日志文件)。有关更多信息,请参阅在存储桶上设置生命周期配置

有关 Amazon S3 特征和定价的信息,请参阅 Amazon S3 定价

删除对象时,您可以使用以下 API 选项:

  • 删除单个对象 – Amazon S3 提供了 DELETEDeleteObject)API 操作,使您能够删除单个 HTTP 请求中的一个对象。

  • 删除多个对象 – Amazon S3 提供了多对象删除(DeleteObjects)API 操作,使您能够在单个 HTTP 请求中删除多达 1000 个对象。

从未启用版本控制的存储桶中删除对象时,您只需要提供对象键名称。但是,从启用版本控制的存储桶中删除对象时,您可以选择提供对象的版本 ID 以删除该对象的特定版本。

以编程方式从启用版本控制的存储桶中删除对象

如果您的存储桶已启用版本控制,则存储桶中可能存在同一对象的多个版本。使用启用了版本控制的存储桶时,删除 API 操作将启用以下选项:

  • 指定不受版本控制的删除请求 – 仅指定对象的键,而不指定版本 ID。在此情况下,Amazon S3 将创建一个删除标记并返回它在响应中的版本 ID。这将使您的对象从存储桶中消失。有关对象版本控制和删除标记概念的信息,请参阅 在 S3 存储桶中使用版本控制

  • 指定受版本控制的删除请求 – 不仅可以指定键,还可以指定版本 ID。在此情况下,可能会出现以下两种结果:

    • 如果版本 ID 映射到特定的对象版本,则 Amazon S3 将删除该特定版本的对象。

    • 如果版本 ID 映射到对象的删除标记,则 Amazon S3 将删除该删除标记。这将使您的对象重新出现在存储桶中。

从启用了 MFA 的存储桶中删除对象

从启用了多重身份验证(MFA)的存储桶中删除对象时,请注意以下内容:

  • 如果您提供了无效的 MFA 令牌,请求将始终失败。

  • 如果您拥有一个启用了 MFA 的存储桶,并且发送了一个受版本控制的删除请求(您提供了对象键和版本 ID),若您不能提供有效的 MFA 令牌,请求将失败。此外,对启用了 MFA 的存储桶使用多对象删除 API 操作时,如果任意删除是受版本控制的删除请求(即您指定了对象键和版本 ID),若您不能提供有效的 MFA 令牌,则整个请求将失败。

但是,在下面的情况下,请求将成功:

  • 如果您拥有一个启用了 MFA 的存储桶,并发出一个不受版本控制的删除请求(不删除受版本控制的对象),且您未提供 MFA 令牌,删除会成功。

  • 如果您发出一个多对象删除请求,此请求指定从一个启用了 MFA 的存储桶中仅删除不受版本控制的对象,且您未提供 MFA 令牌,这些删除会成功。

有关 MFA 删除的信息,请参阅配置 MFA 删除