我正在尝试从Amazon的公共(public)存储桶之一下载数据。
Here is a description of the bucket in question

存储桶具有example的可通过Web访问的文件夹。
我想下载该文件夹中列出的所有文件。
将找到一长串合适的磁贴,目标是一次性将所有文件保存在一个文件夹中,而不是从http站点单独下载每个文件。

在其他StackOverflow问题中,我意识到我需要使用REST端点并使用AWS CLI或Cyber​​duck之类的工具,但目前还无法使它们正常工作。

我认为问题可能是身份验证。我没有AWS账户,但我希望坚持访客/匿名访问。
有没有人有一个很好的解决方案/工具来遍历公共(public)存储桶并以访客身份获取其中的内容?使用curl或wget的其他方法是否可以用于此类任务?

谢谢。

最佳答案

对于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

关于amazon-web-services - 访问AWS S3公共(public)存储桶,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38363344/

10-13 08:13