使用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
EXPERTO
preguntada hace 5 meses48 visualizaciones
1 Respuesta
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
EXPERTO
respondido hace 5 meses

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.

Pautas para responder preguntas