我正在尝试使用boto3提取有关S3存储桶的信息。以下是设置( bucketname 设置为有效的S3存储桶名称):
import boto3
s3 = boto3.client('s3')
result = s3.get_bucket_acl(Bucket=bucketname)
当我尝试时,我收到此错误:
ClientError:调用时发生错误(InvalidRequest) GetBucketAcl操作:未配置S3传输加速 这个桶
所以,我尝试启用传输加速:
s3.put_bucket_accelerate_configuration(Bucket=bucketname, AccelerateConfiguration={'Status': 'Enabled'})
但是,我得到了这个错误,这似乎很愚蠢,因为上面的行试图配置存储桶。我也有IAM权限(允许:*)来修改存储桶:
ClientError:调用时发生错误(InvalidRequest) PutBucketAccelerateConfiguration操作:S3传输加速 未在此存储桶上配置
有没有人对我在这里失踪的东西有任何想法?
答案 0 :(得分:0)
虽然我从boto3文档中借用了原始问题中的代码,但这个结构并不完整,并且没有提供我期望的连接:
s3 = boto3.client('s3')
真正需要的是完全初始化的会话和客户端处理程序,如下所示(假设在〜/ .aws / config文件中正确设置了配置文件变量,并且bucketname是有效的S3存储桶):
from boto3 import Session
session = Session(profile_name=profile)
client = session.client('s3')
result = client.get_bucket_acl(Bucket=bucketname)
完成此操作后(duh),我可以连接或不连接传输加速。
感谢评论者,因为这些评论让我得到了解决方案。