2016-07-13 268 views
1

我正试图从亚马逊的公共存储桶中下载数据。 Here is a description of the bucket in question访问aws s3公共存储桶

该存储桶具有可供网络访问的文件夹example。 我想下载说出该文件夹中列出的所有文件。 会有一长串合适的方块标识出来,目标是一次性获取文件夹中的所有文件,而不是单独从http站点下载每个文件。

从其他StackOverflow问题我意识到我需要使用REST端点并使用像AWS CLI或Cyber​​duck这样的工具,但我无法让这些工作到目前为止。

我认为这个问题可能是身份验证。我没有AWS账户,我希望坚持访客/匿名访问。 有没有人有一个很好的解决方案/工具来遍历一个公共桶,并获取作为客人的内容?对于这种类型的任务,使用curl或wget可以采用不同的方法吗?

谢谢。

+0

注... [我们不招待(http://stackoverflow.com/help/on-topic)“堆栈溢出”中有“是否存在...”的问题。 –

回答

2

对于AWS CLI,您需要提供--no-sign-request标志来跳过签名。例如:

> aws s3 ls landsat-pds 
Unable to locate credentials. You can configure credentials by running "aws configure". 
> aws s3 ls landsat-pds --no-sign-request 
          PRE L8/ 
          PRE landsat-pds_stats/ 
          PRE runs/ 
          PRE tarq/ 
          PRE tarq_corrupt/ 
          PRE test/ 
2015-01-28 10:13:53  23764 index.html 
2015-04-14 10:43:22   25 robots.txt 
2016-07-13 12:53:31   38 run_info.json 
2016-07-13 12:53:30 23971821 scene_list.gz 

要下载整个斗到一个目录下,你会做这样的事情:

> mkdir landsat-pds 
> aws s3 sync s3://landsat-pds landsat-pds --no-sign-request 
+0

感谢乔丹,这就像一个魅力。 – Grant