【问题标题】:Download file/folder from Public AWS S3 with Python, no credentials使用 Python 从公共 AWS S3 下载文件/文件夹,无需凭证
【发布时间】:2020-09-17 00:37:54
【问题描述】:

我已经打开了对 S3 存储桶的公共访问权限,我需要使用 python 从存储桶中下载包含文件的文件/文件夹。诀窍是我不想提供凭据(boto3 显然需要)。有可能吗?

【问题讨论】:

  • 如果您没有得到答案。您可能更有机会在“数据科学”社区中获得答案,因为其中包括积极使用 AWS 和 python 的数据工程师。
  • 这可能会有所帮助:stackoverflow.com/questions/42090830/…
  • 感谢@E.Serra,但不幸的是,boto3 在设置时确实需要凭据。至少我看到的所有资源都表明了这一点。

标签: python amazon-web-services amazon-s3


【解决方案1】:

您可以使用 S3 REST API 中的 GetObject 以及 Python 中的 Requests 库。如果您授予匿名用户 READ 访问权限,则可以在不使用授权标头的情况下返回对象。

这样的 S3 REST 调用示例::

> GET /example-object HTTP/1.1
> Host: example-bucket.s3.<Region>.amazonaws.com    

Python(粗略示例):

import requests
url = '/example-object'
headers = {'Host': 'example-bucket.s3.<Region>.amazonaws.com'}
r = requests.get(url, headers=headers)

Requests

GetObject

【讨论】:

  • 在使用完整的url = 'https://&lt;example-bucket&gt;.s3-&lt;Region&gt;.amazonaws.com/&lt;path_in_bucket&gt; 后效果很好!
猜你喜欢
  • 2018-10-10
  • 2019-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-08
  • 2022-01-19
  • 1970-01-01
相关资源
最近更新 更多