使用boto3创建启用ACL的桶。

0

【以下的问题经过翻译处理】 你好。 我正在使用boto3创建一个存储桶:

s3X = boto3.resource('s3') s3X.create_bucket(Bucket=’my_bucket_name’)

这会创建一个存储桶,但会阻塞所有公共访问(并禁用ACL设置)。我尝试修改最后一行为:

s3X.create_bucket(Bucket='my_bucket_name',ACL=’public-read-write’)

然而,这会生成错误消息:

botocore.exceptions.ClientError:当调用CreateBucket操作时发生InvalidBucketAclWithObjectOwnership错误:存储桶无法设置带有ObjectOwnership的BucketOwnerEnforced设置的ACLs

该实例具有AWS凭据,我希望能够通过boto3设置存储桶属性。

profile picture
전문가
질문됨 5달 전48회 조회
1개 답변
0

【以下的回答经过翻译处理】 对不起,我刚刚查看了文档,发现默认设置是禁止公共访问。https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html 换句话说,在创建存储桶后,需要禁用公共访问设置并设置访问控制列表(ACL),所以代码应该看起来像下面这样。

s3X.create_bucket(Bucket='my_bucket_name', ObjectOwnership='ObjectWriter')
s3X.put_public_access_block(Bucket=bucket_name, PublicAccessBlockConfiguration={'BlockPublicAcls': False, 'IgnorePublicAcls': False, 'BlockPublicPolicy': False, 'RestrictPublicBuckets': False})
s3X.put_bucket_acl(ACL='public-read-write', Bucket='my_bucket_name')
profile picture
전문가
답변함 5달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인