gpt4 book ai didi

python - 使用 Python 在无需身份验证的情况下下载公共(public) S3 存储桶上的文件

转载 作者:行者123 更新时间:2023-12-01 07:03:26 31 4
gpt4 key购买 nike

我正在尝试从公开且无需身份验证的 S3 存储桶下载文件(意味着无需对访问 key 和 key 进行硬编码即可访问或将其存储在 AWS CLI 中),但我仍然无法通过 boto3 访问它。

Python代码

import boto3
import botocore
from botocore import UNSIGNED
from botocore.config import Config

BUCKET_NAME = 'converted-parquet-bucket'
PATH = 'json-to-parquet/names.snappy.parquet'

s3 = boto3.client('s3', config=Config(signature_version=UNSIGNED))

try:
s3.Bucket(BUCKET_NAME).download_file(PATH, 'names.snappy.parquet')
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == "404":
print("The object does not exist.")
else:
raise

执行代码时收到此错误代码

AttributeError: 'S3' object has no attribute 'Bucket'

如果有帮助,这是我的公共(public)政策

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::converted-parquet-bucket/*"
}
]
}

如果您的建议是存储 key ,请不要,这不是我想要做的。

最佳答案

尝试使用资源s3 = boto3.resource('s3')而不是s3 = boto3.client('s3')

关于python - 使用 Python 在无需身份验证的情况下下载公共(public) S3 存储桶上的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58544347/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com