本文介绍了使用AWS CLI从S3获取上次修改的对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个用例,其中我以编程方式启动一个EC2实例,从S3复制一个可执行文件,运行它并关闭实例(在user-data中完成)。我只需要从S3获取最后添加的文件。

是否有办法使用AWS CLI工具从S3存储桶中获取上次修改的文件/对象?

推荐答案

您可以使用aws s3 ls $BUCKET --recursive列出存储桶中的所有对象:

$ aws s3 ls $BUCKET --recursive
2015-05-05 15:36:17          4 an_object.txt
2015-06-08 14:14:44   16322599 some/other/object
2015-04-29 12:09:29      32768 yet-another-object.sh
它们按键的字母顺序排序,但第一列是最后修改时间。快速sort将按日期重新排序:

$ aws s3 ls $BUCKET --recursive | sort
2015-04-29 12:09:29      32768 yet-another-object.sh
2015-05-05 15:36:17          4 an_object.txt
2015-06-08 14:14:44   16322599 some/other/object

tail -n 1选择最后一行,awk '{print $4}'提取第四列(对象名称)。

$ aws s3 ls $BUCKET --recursive | sort | tail -n 1 | awk '{print $4}'
some/other/object

最后但并非最不重要,将其放入aws s3 cp以下载对象:

$ KEY=`aws s3 ls $BUCKET --recursive | sort | tail -n 1 | awk '{print $4}'`
$ aws s3 cp s3://$BUCKET/$KEY ./latest-object

这篇关于使用AWS CLI从S3获取上次修改的对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-19 11:20