根据文件日期从本地从AWS S3存储桶复制数据

时间:2019-01-30 23:39:09

标签: amazon-web-services powershell

我要将复制日期的最新CSV文件从AWS S3存储桶复制到本地驱动器。

我有将下载文件的基本代码,但是它会下载存储桶中的所有文件,我只希望当天上传文件,最新文件。

1 个答案:

答案 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命令将该对象下载到本地目录