我要将复制日期的最新CSV文件从AWS S3存储桶复制到本地驱动器。
我有将下载文件的基本代码,但是它会下载存储桶中的所有文件,我只希望当天上传文件,最新文件。
答案 0 :(得分:0)
按修改日期下载最新对象
如果仅希望获取最近存储在Amazon S3上的文件,则可以使用:
aws s3 cp s3://my-bucket/`aws s3api list-objects-v2 --bucket my-bucket --query 'sort_by(Contents, &LastModified)[-1].Key' --output text` .
此命令执行以下操作:
aws s3api list-objects-v2
命令列出存储段,按日期排序(取反),然后返回上次修改的对象的键(文件名)aws s3 cp
命令将该对象下载到本地目录根据文件名下载最新对象
如果文件名如下:
some_file_20190130.csv
some_file_20190131.csv
some_file_20190201.csv
然后您可以按前缀列出并复制最后一个:
aws s3 cp s3://my-bucket/`aws s3api list-objects-v2 --bucket my-bucket --prefix some_file_ --query 'sort_by(Contents, &Key)[-1].Key' --output text` .
此命令执行以下操作:
aws s3api list-objects-v2
命令列出了存储桶,仅显示具有给定前缀some_file_
的文件,按Key(反向)排序,然后返回位于该对象的对象的Key(文件名)。结束aws s3 cp
命令将该对象下载到本地目录