2016-12-27 156 views
1

我试图在使用linux shell脚本的AWS s3存储桶中获取最后添加的文件。 你能让我知道我能做这份工作吗?shell脚本 - AWS s3存储桶,找到最后添加的文件

+0

什么?最好有准确的错误信息或问题描述?你能解释一下S3“桶”是什么吗?它是一个目录吗? – Jens

+0

允许使用它的一个小提示:使用时间戳作为文件名和文件查询时的头文件。例如:1939847568_my_file_name – Conti

回答

0

一种方法是使用s3cmdsort的输出来获取最后添加的文件。

s3cmd ls s3://{{bucket}} | sort | tail -n 1 | awk '{print $2}' 
  • sort - 排序由创建时间
  • tail -n 1输出 - 返回的最后一个文件
  • awk '{print $2}' - 打印文件名,你都试过,你可以告诉我们
0

这是不可能的。 S3不是数据库或文件系统。

然而,随着S3的查询,您可以要求在一定日期后创建或修改的对象列表:

aws s3api list-objects --bucket "YOURBUCKET" --query 'Contents[?LastModified>=2016-12-27][].{Key: Key}' 

如果你想只加了对象,而不是修改,你必须创建自定义元数据属性,将其保存为基于该自定义属性的对象和查询。