删除 Amazon S3 对象 - Amazon Simple Storage Service

删除 Amazon S3 对象

您可以使用 Amazon S3 控制台、AWS SDK、AWS Command Line Interface (AWS 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 删除