Я пытаюсь загрузить файл на s3 в python. Пока что мой код такой:
import boto3
from botocore.exceptions import NoCredentialsError
ACCESS_KEY = 'XXXXXXXXXXXX'
SECRET_KEY = 'XXXXXXXXXXXX'
def upload_to_aws(local_file, bucket, s3_file):
s3 = boto3.client('s3', aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY)
try:
s3.upload_file(local_file, bucket, s3_file)
print("Upload Successful")
return True
except FileNotFoundError:
print("The file was not found")
return False
except NoCredentialsError:
print("Credentials not available")
return False
uploaded = upload_to_aws('image-1.png', 'bucketname', 'image-1.png')
Но когда я пытаюсь запустить код, появляется сообщение об ошибке типа
boto3.exceptions.S3UploadFailedError: Не удалось загрузить image-1.png в bucketname / image-1.png: при вызове операции PutObject произошла ошибка (AccessDenied): Access Denied
Я проверил разрешение на ведро и его штраф. Разрешение выглядит так:
Block all public access
Off
Block public access to buckets and objects granted through new access control lists (ACLs)
Off
Block public access to buckets and objects granted through any access control lists (ACLs)
Off
Block public access to buckets and objects granted through new public bucket policies
On
Block public and cross-account access to buckets and objects through any public bucket policies
On