Excon错误:: BadRequest

时间:2015-04-21 18:18:24

标签: ruby-on-rails

任何人都知道这个错误来自哪里?我是AWS的新手,并且相信它可能来自那里?

  

Excon :: Errors ::在UsersController中的BadRequest #recate Expected(200)< =>   实际(400 Bad Request)excon.error.response:body => “\ N IncompleteBody的   请求正文终止   unexpectedly9C1EC55648FB3ED91vv / 2RNBp9egndYkTjzbCBgQu0jk3AjpAZffR + firWM4Yzd6ilQxJnfKwKZVK8 + N”   :headers => {“Connection”=> “关闭”“内容类型”=>   “application / xml”“Date”=> “星期二,2015年4月21日18:13:09 GMT”“服务器”   => “AmazonS3”“x-amz-id-2”=> “1vv / 2RNBp9egndYkTjzbCBgQu0jk3AjpAZffR + firWM4Yzd6ilQxJnfKwKZVK8 + N”   “x-amz-request-id”=> “9C1EC55648FB3ED9”}:local_address =>   “10.151.101.107”:local_port => 51335:reason_phrase => “错误的请求”   :remote_ip => “54.231.232.1”:status => 400:status_line => “HTTP / 1.1   400 Bad Request \ r \ n“

这是我的UsersController:

class UsersController < ApplicationController
   before_action :authenticate_user!

   def update
     if current_user.update_attributes(user_params)
       flash[:notice] = "User information updated"
       redirect_to edit_user_registration_path
     else
       flash[:error] = "Invalid user information"
       redirect_to edit_user_registration_path
     end
   end

   private
   def user_params
     params.require(:user).permit(:name, :avatar)
   end
 end

3 个答案:

答案 0 :(得分:3)

我也可以通过指向错误的区域来发现这种情况。我不小心指着我们 - 西2号,但我的S3斗是我们东 - 1。我改变了我的雾设置,现在事情变得更加快乐了。离开这里有希望帮助别人。

答案 1 :(得分:0)

你的POST中有一个格式错误的身体。检查您在体内传递的数据。你是否在换行\n?如果是这样,请务必正确编码。

答案 2 :(得分:0)

我不确定这是否是导致此特定问题的原因,但&#34; IncompleteBody&#34;有时可能是由于Excon分块请求,在某些情况下似乎终止了S3连接。

尝试使用以下代码添加初始值设定项:

if ENV["RAILS_GROUPS"] == 'assets'
  Excon.defaults[:nonblock] = false
end

来源:Handling S3 IncompleteBody error when using asset_sync gem