Amazon S3 删除标记

ale*_*ips 5 php amazon-s3 amazon-web-services

我为 Amazon S3 中的某些文件设置了 Web 存储。我正在使用它的 PHP SDK 来管理这些文件。我运行一个自动化脚本,在一段时间后从某个存储桶中删除文件。我刚刚意识到我不相信它实际上是在删除文件,而是用删除标记替换它们。当我使用 Transmission (Mac) 等程序查看存储桶时,它列出了自 2013 年我设置脚本以来的所有文件。但是,如果我在浏览器中进入管理界面,它只会列出我在脚本中设置的截止日期之前的文件。

我的问题是:当我不需要实际保留任何这些文件时,我是否需要为这些标记的存储支付更多的钱?以及如何永久删除这些文件?我发现这只是版本化存储桶的问题,但这个特定的存储桶没有版本化。根据文档,我需要在删除调用中包含对象的版本 ID 以删除标记,但此时,我如何检索该信息,因为“listObjects”不返回这些信息。

如果我使用 Transmission 下拉“已删除”文件,该文件仍然会打开并运行,就像从未被删除一样。

Joh*_*ein 9

如果在 Amazon S3 存储桶上启用了版本控制,则将对象上传到现有密钥名称的所有操作都将导致创建该对象的附加版本。之前的版本将保留在 Amazon S3 上。删除对象会添加删除标记,使该对象看起来已被删除,但之前的版本仍然可供下载。

如果Bucket启用了版本控制,您可以在控制台中查看对象版本并删除标记:

  • 在 Amazon S3 控制台中访问您的存储桶
  • 查找屏幕顶部的版本按钮。它应该有两个按钮:显示隐藏
  • 选择“显示”将显示删除标记和对象的所有先前版本

一段时间后从 Amazon S3 中删除对象的更简单方法是:

  • 选择您的桶
  • 打开属性
  • 单击生命周期
  • 创建规则集以在对象创建日期后 n 天永久删除