我正在使用AWS CLI将ACL策略应用于S3中的对象,这是我使用的命令
aws s3api put-object-acl --bucket XXXX --key XXXX --acl bucket-owner-full-control --grant-read uri = http://acs.amazonaws.com/groups/global/AllUsers
此命令返回错误
调用PutObjectAcl操作时发生错误(InvalidRequest):不允许指定预制ACL和标头授权
如何将Canned和Header Grants应用于对象?
我试过第一次只提供Canned ACL( aws s3api put-object-acl --bucket XXXX --key XXXX --acl bucket-owner-full-control )并且应用了,但当我第二次跑( aws s3api put-object-acl --bucket XXXX --key XXXX --grant-read uri = http://acs.amazonaws.com/groups/global/AllUsers排除固定ACL )并包括Header Grants变化被覆盖了。它只包括Header Grants
你能帮我解决这个问题吗?
答案 0 :(得分:0)
你不能这样做,要么你必须使用Canned ACL或Header grants。 您可以包含存储桶拥有者的电子邮件地址以授予完全控制权以及其他读取权限。
我的意思是包括存储桶拥有者详细信息运行如下文所述的命令,如AWS文档示例中所述。
aws s3api put-object-acl --bucket MyBucket --key file.txt --grant-full-control emailaddress = user1 @ example.com,emailaddress = user2 @ example.com --grant-read uri = { {3}}
请参阅AWS文档中的注释。
请注意 您可以使用预制ACL或明确指定访问权限。你不能两者兼顾。