我正在使用 S3 存储桶来存储我的 Web 应用程序日志文件。现在我需要知道是否有任何可用选项,仅保留最新的 20 个文件,无论它们何时创建。我不能使用 S3 自动到期选项,因为我总是需要存储桶中的最新 20 个文件。
问问题
1419 次
2 回答
1
选项1:-
a) 使用 S3 通知服务并为 S3 中的每个 Put 对象触发 lambda
b)使用 python boto sdk 列出存储桶中的对象并将值(键,修改日期)存储在 list 中。
c) 按日期/时间对列表进行排序并删除旧记录数据第 21 条数据。
选项2:-
a) 在通知服务中配置 SQS 并为每个 put 对象触发 lambda。
b) 根据您的要求安排 lambda 服务。
c) 使用 python boto sdk 列出存储桶中的对象并将值(键,修改日期)存储在 list 中。
d) 按日期/时间对列表进行排序并删除旧记录数据第 21 条数据。
根据您的要求,您需要选择选项 1(或)选项 2。
如果您在 S3 存储桶中的文件写入/读取/下载是时间密集型操作,请选择选项 1
如果您的文件写入/读取/下载不是时间密集型操作,请选择选项 2。
于 2017-08-21T12:02:27.300 回答
1
我希望这个答案能解决你的问题
aws s3 ls s3://your-bucket/ --recursive | sort -k1 | sort -k2 | head -n -30 | awk '{$1=$2=$3=""; print $0}' | sed 's/^[ \t]*//' | while read -r line ; do
echo "Removing \"${line}\"";
aws s3 rm "s3://your-bucket/${line}";
done
于 2021-09-12T09:44:09.487 回答