【问题标题】:How do I download files with AWS CLI based on a list?如何使用基于列表的 AWS CLI 下载文件?
【发布时间】:2020-07-08 21:39:24
【问题描述】:

我正在尝试从包含数百万 IRS 文件的公共 s3 存储桶下载文件子集。我可以使用以下命令下载整个存储库:

aws s3 sync s3://irs-form-990/ ./

但是时间太长了!

我知道我应该使用 --include / --exclude 标志,但我不知道如何将它们与值列表一起使用。我有一个 csv,其中包含我想要的 2017 年所有文件的唯一标识符,但是如何在 AWS CLI 中使用它?该列表本身有 50 万个 ID。

帮助非常感谢。谢谢。

【问题讨论】:

标签: amazon-web-services amazon-s3 command-line


【解决方案1】:

有一个 bash 脚本可以读取文件 filename.txt 中的所有文件名。 您所要做的就是将这些 ID 转换为文件名。

#!/bin/bash  
set -e  
while read line  
do  
   aws s3 cp s3://bucket-name/$line dest-path/  
done <filename.txt

这个问题之前有人问过,你可以找到答案here

【讨论】:

  • 这是我第一次写bash脚本,有点迷茫。 “$line dest-path/”应该是什么?假设是 filename.txt 的位置吗?调用 HeadObject 操作时,我还收到错误“不存在错误(404):键“20161239.xml”。如果这意味着特定文件不存在,有没有办法跳过它并尝试下一个?
  • 我已经回答了你的问题,这是正确的做法。关于如何编写 bash 脚本,什么是循环,什么是变量,或者要了解“dest-path”是应该复制文件的路径,您需要自己做一些研究。
  • 好吧,即使我将 dest-path 设置为我希望复制它们的位置,它也不起作用,所以没有必要粗鲁。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多