在 AWS 中调用 PutObject 操作时的 InvalidRequest
InvalidRequest when calling the PutObject operation in AWS
我正在使用以下命令验证我的用户是否可以访问 S3 存储桶:(基于此 link:http://docs.aws.amazon.com/AmazonS3/latest/dev/example-walkthroughs-managing-access-example1.html)
$ aws s3api put-object --bucket bymspsbucket --key AWS.png --body Desktop/AWS.png --profile spsadmin
但我遇到了以下错误并坚持下去,不知道出了什么问题...
"An error occurred (InvalidRequest) when calling the PutObject operation: Missing required header for this request: x-amz-content-sha256"
我已经 运行 使用 --debug
命令
请查看下面的调试输出文件link:
https://github.com/minafa/AWS/wiki
$ aws --version
aws-cli/1.10.59 Python/2.7.10 Darwin/15.0.0 botocore/1.4.49
我用cmd配置了config文件:aws configure,结果如下:
#vim ./aws/credentials
[default]
aws_access_key_id =
aws_secret_access_key =
[spsadmin]
aws_access_key_id =
aws_secret_access_key =
#vim ./aws/config
已编辑:
由于凭证文件中没有区域,我手动修改了文件。所以它可以用于 putobject,但是 get object 给出访问拒绝错误:
aws s3api get-object --bucket examplebucket --key AWS.png OutputFile.jpg --profile spsadmin
调用 GetObject 操作时发生错误(拒绝访问):拒绝访问
我在 s3 存储桶中设置的我的用户可以访问的权限如下:
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:GetObject",
"s3:PutObject"
是否也需要在 IAM 我的用户帐户中附加相同的策略?
在 IAM 的附加策略下,我只设置了 "AmazonS3FullAccess" 但它不应该是 FullAccess,因为用户必须只能访问我分配的存储桶。
如有任何帮助,我们将不胜感激。
我已经解决了以下问题:
put-object 不起作用,因为 config/credentials 文件中没有设置区域。
所以 .aws/credentials 被修改了。
get-object 给出访问被拒绝的错误,因为它需要设置:
"Action":"s3:GetBucketAcl" 在存储桶策略中。
应创建一个策略(具有与存储桶策略相同的操作)并将其附加到 IAM 用户,说明基于以下 link:
http://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_managed-policies.html
如果 IAM 用户想通过控制台查看 S3 存储桶并生成更多存储桶,则可以将 AmazonS3FullAccess 附加到该用户。否则它可能会被解除连接。
我正在使用以下命令验证我的用户是否可以访问 S3 存储桶:(基于此 link:http://docs.aws.amazon.com/AmazonS3/latest/dev/example-walkthroughs-managing-access-example1.html)
$ aws s3api put-object --bucket bymspsbucket --key AWS.png --body Desktop/AWS.png --profile spsadmin
但我遇到了以下错误并坚持下去,不知道出了什么问题...
"An error occurred (InvalidRequest) when calling the PutObject operation: Missing required header for this request: x-amz-content-sha256"
我已经 运行 使用 --debug
命令请查看下面的调试输出文件link: https://github.com/minafa/AWS/wiki
$ aws --version
aws-cli/1.10.59 Python/2.7.10 Darwin/15.0.0 botocore/1.4.49
我用cmd配置了config文件:aws configure,结果如下:
#vim ./aws/credentials
[default]
aws_access_key_id =
aws_secret_access_key =
[spsadmin]
aws_access_key_id =
aws_secret_access_key =
#vim ./aws/config
已编辑:
由于凭证文件中没有区域,我手动修改了文件。所以它可以用于 putobject,但是 get object 给出访问拒绝错误:
aws s3api get-object --bucket examplebucket --key AWS.png OutputFile.jpg --profile spsadmin
调用 GetObject 操作时发生错误(拒绝访问):拒绝访问
我在 s3 存储桶中设置的我的用户可以访问的权限如下:
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:GetObject",
"s3:PutObject"
是否也需要在 IAM 我的用户帐户中附加相同的策略? 在 IAM 的附加策略下,我只设置了 "AmazonS3FullAccess" 但它不应该是 FullAccess,因为用户必须只能访问我分配的存储桶。
如有任何帮助,我们将不胜感激。
我已经解决了以下问题:
put-object 不起作用,因为 config/credentials 文件中没有设置区域。 所以 .aws/credentials 被修改了。
get-object 给出访问被拒绝的错误,因为它需要设置:
"Action":"s3:GetBucketAcl" 在存储桶策略中。
应创建一个策略(具有与存储桶策略相同的操作)并将其附加到 IAM 用户,说明基于以下 link: http://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_managed-policies.html
如果 IAM 用户想通过控制台查看 S3 存储桶并生成更多存储桶,则可以将 AmazonS3FullAccess 附加到该用户。否则它可能会被解除连接。