如何使用 boto3 访问 Python 中的 AWS S3 存储桶
How to Access AWS S3 Bucket in Python using boto3
我是一名刚入门的数据工程专业的学生。下面是 link 到 public S3 数据集,其中包含存档和实时天气雷达报告。
https://registry.opendata.aws/noaa-nexrad/
我能够使用 Python 中的 nexradaws 模块轻松访问存档数据。但是,我无法访问 Python 中的实时数据集,因为 nexradaws 模块中没有提供它。
我阅读了一些与此相关的 Whosebug 帖子,发现了一些不同的方法:
- 使用 boto3 包 - 我试过了,但 boto3 文档似乎专注于在 Python 中创建存储桶。然后,使用访问密钥和秘密密钥访问这些存储桶。但是,此存储桶不需要凭据即可访问。不确定在我的案例中实施 boto3 的正确方法是什么。此外,我浏览了官方的 boto3 文档,但无法找到有关如何访问不需要访问密钥的 public 存储桶的信息。但是,为了以防万一,我确实设置了一个 AWS 帐户并尝试在创建存储桶时使用 ARN,但是,创建的存储桶仍然是空的。
- 在 Python 和 运行 AWS CLI 中使用子进程模块 - 我也在尝试这个,但无法找到在子进程模块中实施 AWS CLI 的正确方法。
- 使用 brilliant sh Python 包 - 试试这个,我遇到了和上面一样的问题。
我的问题是,如何使用 boto3 访问实时数据?我怎样才能下载数据? boto3的好资源在哪里?
与boto3
:
import boto3
from botocore import UNSIGNED
from botocore.client import Config
s3 = boto3.resource("s3", config=Config(signature_version=UNSIGNED))
bucket = s3.Bucket("noaa-nexrad-level2")
for obj in bucket.objects.filter(Prefix="2021/01/01"):
print(obj)
我是一名刚入门的数据工程专业的学生。下面是 link 到 public S3 数据集,其中包含存档和实时天气雷达报告。
https://registry.opendata.aws/noaa-nexrad/
我能够使用 Python 中的 nexradaws 模块轻松访问存档数据。但是,我无法访问 Python 中的实时数据集,因为 nexradaws 模块中没有提供它。
我阅读了一些与此相关的 Whosebug 帖子,发现了一些不同的方法:
- 使用 boto3 包 - 我试过了,但 boto3 文档似乎专注于在 Python 中创建存储桶。然后,使用访问密钥和秘密密钥访问这些存储桶。但是,此存储桶不需要凭据即可访问。不确定在我的案例中实施 boto3 的正确方法是什么。此外,我浏览了官方的 boto3 文档,但无法找到有关如何访问不需要访问密钥的 public 存储桶的信息。但是,为了以防万一,我确实设置了一个 AWS 帐户并尝试在创建存储桶时使用 ARN,但是,创建的存储桶仍然是空的。
- 在 Python 和 运行 AWS CLI 中使用子进程模块 - 我也在尝试这个,但无法找到在子进程模块中实施 AWS CLI 的正确方法。
- 使用 brilliant sh Python 包 - 试试这个,我遇到了和上面一样的问题。
我的问题是,如何使用 boto3 访问实时数据?我怎样才能下载数据? boto3的好资源在哪里?
与boto3
:
import boto3
from botocore import UNSIGNED
from botocore.client import Config
s3 = boto3.resource("s3", config=Config(signature_version=UNSIGNED))
bucket = s3.Bucket("noaa-nexrad-level2")
for obj in bucket.objects.filter(Prefix="2021/01/01"):
print(obj)