amazon-web-services - 从 S3 IA 中删除 20 亿个对象的最便宜方法

标签 amazon-web-services amazon-s3 aws-sdk

我在 S3(不经常访问)中有一个包含 20 亿个对象的存储桶。在控制台中或通过 api 删除而无需花费数年时间,它太大了。
我可以创建生命周期规则来过期和删除对象,但计算器预测这将花费我 > 20,000 美元 .那是正确的吗?有没有更好的方法来删除存储桶?
如果有帮助,我有一个文件有效地包含该存储桶中所有对象的列表。
2021 年更新:
下面来自@MAP 的回答指出现在有一个“空”按钮。我还没有测试过,但看起来像是要走的路(测试后我会接受这个答案):
screenshot of empty button

最佳答案

如果您有所有可用对象的列表,那么您当然可以使用 Multi Delete Object行动。显然是这个 API is free .我会创建 AWS Step Functions state machine to loop通过文件并一次删除 1000 个对象。 1000 似乎是极限。

删除存储桶中的所有对象大约需要 200 万步函数事务。根据 pricing对于步进功能,您将花费大约 50 美元 + cost of Lambda invocations大约 1 美元,所以总成本约为 51 美元。

更新

使用 Lambda 或 Step Functions 可能不是最具成本效益的选择,因为这两种方式都需要从某些源(如 S3)读取文件(包含对象键)。所以我认为从本地机器或任何 EC2 linux 屏幕运行脚本似乎是最好的选择。

关于amazon-web-services - 从 S3 IA 中删除 20 亿个对象的最便宜方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54255990/

相关文章:

Jenkins 与 Amazon S3 持续集成 - 一切都上传到根目录?

python - 使 S3 "folder hierarchy"比解析文件名更快的方法?

amazon-web-services - Lambda 的 aws-sdk 不是最新的吗?

python - 使用 boto3 检索 RDS 标签会出现索引错误。

amazon-web-services - 配置 CloudWatch Events 以使用 Terraform 将输入发送到 Lambda 函数

amazon-web-services - 从 python boto 客户端在 S3 中调用带有数据负载的 SageMaker 端点

java - 调配 AutoScaling 策略失败 : EMR instance group doesn't exist

amazon-web-services - Spring Boot应用程序无法从任何凭证链中找到aws凭证

amazon-s3 - 带有 postman 的 AWS S3 预签名 URL 上传图像

ios - 如何将登录映射添加到 CredentialsProvider?