访问 aws s3 公共存储桶

Posted

技术标签:

【中文标题】访问 aws s3 公共存储桶【英文标题】:Access aws s3 public bucket 【发布时间】:2016-11-16 17:31:02 【问题描述】:

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

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

从其他 *** 问题中,我意识到我需要使用 REST 端点并使用 AWS CLI 或 Cyber​​duck 之类的工具,但我还不能让这些工作。

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

谢谢。

【问题讨论】:

注意...we don't entertain“是否有工具用于...” Stack Overflow 上的问题。 【参考方案1】:

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

【讨论】:

【参考方案2】: 我不断得到
SSL validation failed for https://s3bucket.eu-central-1.amazonaws.com/?list-type=2&prefix=&delimiter=%2F&encoding-type=url [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)
我使用 --no-verify-ssl,然后
aws s3 ls s3bucket --no-sign-request --no-verify-ssl

... 成功了

【讨论】:

以上是关于访问 aws s3 公共存储桶的主要内容,如果未能解决你的问题,请参考以下文章

Cloudfront 提供通过 AWS CDK Python 为 S3 存储桶来源创建的访问被拒绝响应,无需公共访问

授予对 s3 存储桶的公共访问权限,而不是为 aws 无服务器应用程序提供静态网站

访问 Amazon S3 公共存储桶

有没有办法在 AWS S3 上托管一个静态网站而不提供公共访问权限?

在 Amazon S3 中将在 aws3 存储桶中创建的文件夹设为公共或私有文件夹

阻止公共访问设置的哪些组合使我的 s3 存储桶对所有人可见?