使用boto3启用S3存储桶传输加速的问题

时间:2018-03-28 21:44:23

标签: python amazon-web-services amazon-s3 boto3

我正在尝试使用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传输加速   未在此存储桶上配置

有没有人对我在这里失踪的东西有任何想法?

1 个答案:

答案 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),我可以连接或不连接传输加速。

感谢评论者,因为这些评论让我得到了解决方案。