Amazon web services AWS S3下载并复制

Amazon web services AWS S3下载并复制,amazon-web-services,amazon-s3,aws-cli,Amazon Web Services,Amazon S3,Aws Cli,我们在AWS S3中有一个bucket,用于将生产备份复制到其中 我的任务是将最新的备份文件从AWS S3复制到本地沙盒SQL Server,然后执行恢复 我已经在本地服务器上安装了所有AWS windows工具。连接到AWS S3工作的凭证等。 我的本地服务器可以列出AWS S3存储桶中的所有文件。我可以成功下载一个文件,如果我特别命名该文件 这是一个从2016年7月25日起提取最新副本的工作示例 aws s3 cp s3://mybucket/databasefile_20160725.zi

我们在AWS S3中有一个bucket,用于将生产备份复制到其中

我的任务是将最新的备份文件从AWS S3复制到本地沙盒SQL Server,然后执行恢复

我已经在本地服务器上安装了所有AWS windows工具。连接到AWS S3工作的凭证等。 我的本地服务器可以列出AWS S3存储桶中的所有文件。我可以成功下载一个文件,如果我特别命名该文件

这是一个从2016年7月25日起提取最新副本的工作示例

aws s3 cp s3://mybucket/databasefile_20160725.zip E:\DBA 
我的目标是创建一个复制脚本,只提取最近的文件,我不知道文件名。我想安排一下


我在谷歌上搜索或尝试的任何东西都不能让我获得正确的语法来执行此操作。

要检索您的存储桶中的最新文件,您可以执行以下操作

aws s3api list-objects --bucket "mybucket" |\
jq '.Contents | sort_by(.LastModified) | .[-1].Key' --raw-output
第一个命令将在Json中列出bucket的对象,Json的元素将被列出 然后,您需要根据元素的上次修改日期对其进行排序,获取最后一个元素,并希望它们输入密钥(即bucket中的文件名)。将
--raw output
标志添加到键名的条带引号中

您可以在脚本中重用它,也可以使用下面的s3cp命令将其管道化

aws s3api list-objects --bucket "mybucket" |\
jq '.Contents | sort_by(.LastModified) | .[-1].Key' --raw-output |\
xargs -I {} aws s3 cp s3://mybucket/{} E:\DBA

这些备份文件是否按创建日期保存?