Я пытаюсь загрузить файл из корзины S3, который является общедоступным и не требует аутентификации (то есть не нужно жестко кодировать ключи доступа и секретные ключи для доступа или сохранения в 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' нет атрибута 'Bucket'
Если это поможет, вот моя публичная политика:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::converted-parquet-bucket/*"
}
]
}
Если вы предлагаете хранить ключи, пожалуйста, не надо, это не то, что я пытаюсь сделать.