【发布时间】:2021-05-29 05:31:05
【问题描述】:
我的用例:
我正在使用 s3 文件夹来上传/下载一堆小 (~2kB) 文件。每个文件都有唯一的内容,文件名是内容的散列。文件名中没有时间/日期戳。每天大约 1-3 次,我运行一个脚本来构建这些文件中的一个新文件,并使用 AWS S3 CLI 将其上传到文件夹。这些文件随后会被应用使用。
但是,文件数量已接近 1000 个,而且我发现我可以每个月修剪 20-30% 的最旧的文件,这样应用程序就可以了。
问题:
我想编写一个脚本,可以按上传/修改日期对s3文件夹中的文件进行排序,然后删除最旧的n个文件或最旧的m%文件。使用 AWS S3 CLI 执行此操作的最有效方法是什么?
我想避免在 AWS Web 控制台中使用分页或任何涉及手动操作的东西。
【问题讨论】:
-
最简单的解决方案是在存储桶本身上设置生命周期规则以删除超过 x 天的对象。
-
我会使用其中一个受支持的 SDK 编写 Lambda 函数,因此我可以完全控制逻辑。
-
按照其他 cmets 设置具有生命周期存储桶策略的 cron 作业以自动化一切
标签: amazon-web-services amazon-s3 aws-cli