【问题标题】:S3api CLI Put Command IssueS3api CLI 放置命令问题
【发布时间】:2018-04-15 12:40:31
【问题描述】:

我正在使用 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):不允许同时指定 Canned ACL 和 Header Grants

如何将 Canned 和 Header Grants 应用于对象?

我第一次尝试只提供罐头 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 更改被覆盖。它只包括标题授权

你能帮我解决这个问题吗?

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-cli


    【解决方案1】:

    您不能这样做,您必须使用 Canned ACL 或标头授权。 您可以包含存储桶所有者的电子邮件地址以授予完全控制权并授予其他人读取访问权限。

    我的意思是包含存储桶所有者的详细信息,运行类似于 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=@ 987654321@

    请参阅 AWS 文档中的说明。

    注意 您可以使用标准 ACL 或明确指定访问权限。你不能两者都做。

    https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html

    【讨论】:

    • 感谢乌斯曼。似乎我们只能从控制台而不是 CLI 来做到这一点。是的,我能够做到他们中的任何一个而不是他们两个。
    猜你喜欢
    • 1970-01-01
    • 2022-01-19
    • 2022-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    相关资源
    最近更新 更多