授权标头无效 - 需要一个且只有一个'(空格) - Amazon S3

时间:2013-08-20 13:39:08

标签: ruby-on-rails-3 amazon-s3

尝试precompile我的资产在Rails应用中syncAmazon S3 Storage

有这个消息:

任何反馈意见:

Expected(200) <=> Actual(400 Bad Request)
response => #<Excon::Response:0x00000007c45a98 @data={:body=>"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>InvalidArgument</Code><Message>Authorization header is invalid -- one and only one ' ' (space) required</Message><ArgumentValue>AWS [\"AKIAINSIQYCZLWYSROWQ\", \"7RAxhY5nLkbACICMqjDlee5pCaEhf4LKgSpJ+R9k\"]:LakbTXVMX6I72MViNie/fe+79qU=</ArgumentValue><ArgumentName>Authorization</ArgumentName><RequestId>250C76936044E6D5</RequestId><HostId>j2jK/dv0xTnNddtSFHuVicGv5wWjXl4zXuhOyPcO6+2WWlAYWSkn0CHPwdtnOPet</HostId></Error>", :headers=>{"x-amz-request-id"=>"250C76936044E6D5", "x-amz-id-2"=>"j2jK/dv0xTnNddtSFHuVicGv5wWjXl4zXuhOyPcO6+2WWlAYWSkn0CHPwdtnOPet", "Content-Type"=>"application/xml", "Transfer-Encoding"=>"chunked", "Date"=>"Tue, 20 Aug 2013 13:28:36 GMT", "Connection"=>"close", "Server"=>"AmazonS3"}, :status=>400, :remote_ip=>"205.251.235.165"}, @body="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>InvalidArgument</Code><Message>Authorization header is invalid -- one and only one ' ' (space) required</Message><ArgumentValue>AWS [\"AKIAINSIQYCZLWYSROWQ\", \"7RAxhY5nLkbACICMqjDlee5pCaEhf4LKgSpJ+R9k\"]:LakbTXVMX6I72MViNie/fe+79qU=</ArgumentValue><ArgumentName>Authorization</ArgumentName><RequestId>250C76936044E6D5</RequestId><HostId>j2jK/dv0xTnNddtSFHuVicGv5wWjXl4zXuhOyPcO6+2WWlAYWSkn0CHPwdtnOPet</HostId></Error>", @headers={"x-amz-request-id"=>"250C76936044E6D5", "x-amz-id-2"=>"j2jK/dv0xTnNddtSFHuVicGv5wWjXl4zXuhOyPcO6+2WWlAYWSkn0CHPwdtnOPet", "Content-Type"=>"application/xml", "Transfer-Encoding"=>"chunked", "Date"=>"Tue, 20 Aug 2013 13:28:36 GMT", "Connection"=>"close", "Server"=>"AmazonS3"}, @status=400, @remote_ip="205.251.235.165">

5 个答案:

答案 0 :(得分:12)

现在两次同一消息出错,两次都是由于在访问密钥或配置文件中的密钥末尾粘贴了额外的空格。

答案 1 :(得分:9)

检查您设置aws_access_key_id与资产同步系统一起使用的位置。

这应该看起来像AKIAINSIQYCZLWYSROWQ,而看起来你已经将它设置为访问密钥ID和秘密访问密钥的2元素数组。

此外,鉴于您现在已将这些凭据放在公共域中,您应立即撤销它们。

答案 2 :(得分:0)

错误400发生超过20个案例。这是一个描述所有错误的pdf:List of AWS S3 Error Codes

答案 3 :(得分:0)

访问密钥末尾的额外空间是一个问题,原因是从Amazon IAM UI复制会放置额外的空间。

另一件事是,当您在/.aws/credentials文件夹中进行配置或其他配置与环境值冲突时。配置CircleCI和docker计算机时,这发生在我身上。

答案 4 :(得分:0)

如果您尚未在Cloudfront中启用GET / POST并尝试对托管在Cloudfront之后的api进行GET / POST,也会发生此错误。