2015-04-24 50 views
0

我在Nitrous.io上的开发模式下测试我的应用程序,在本地主机上运行它。用户登录后编辑其帐户并上传图像具有管理员的角色。但是,当用户试图上传从本地计算机/笔记本电脑的图像文件,下面的错误引发:通过AvatarUploader上传图片时出现的错误

EXCON ::错误::在UsersController#更新故宫

Expected(200) <=> Actual(403 Forbidden) excon.error.response :body =>  "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AllAccessDisabled</Code><Message>All access to this object has been disabled</Message><RequestId>982179552F0C4C29</RequestId><HostId>a5RfS52/0VwdIvro6g7kdaeO4OWm3aUrXVIkcKVY5HVuVM6VnRp0m3ksEflo8jxP88fL8/lBExM=</HostId></Error>" :headers => { "Connection" => "close" "Content-Type" => "application/xml" "Date" => "Fri, 24 Apr 2015 05:07:12 GMT" "Server" => "AmazonS3" "x-amz-id-2" => "a5RfS52/0VwdIvro6g7kdaeO4OWm3aUrXVIkcKVY5HVuVM6VnRp0m3ksEflo8jxP88fL8/lBExM=" "x-amz-request-id" => "982179552F0C4C29" } :local_address => "192.168.239.45" :local_port => 35419 :reason_phrase => "Forbidden" :remote_ip => "54.231.13.136" :status => 403 

Extracted source (around line #5): 
    4 def update 
    5 if current_user.update_attributes(user_params) 
    6  flash[:notice] = "User information updated" 
    7  redirect_to edit_user_registration_path 
    8 else 


Request 

Parameters: 

{"utf8"=>"✓", 
"_method"=>"patch", 
"authenticity_token"=>"9Gzm2XuPF0s1vQhQZFbeX0xwNQ8v4wx+4K79OSomXEN6ITkvh6hu+/8RmhdiSOOpxUOIiu74S3j0AhS3u/mISQ==", 
"user"=>{"name"=>"lacey", 
"avatar"=>#<ActionDispatch::Http::UploadedFile:0x007fd26f0d3218 @tempfile=#<Tempfile:/tmp/RackMultipart20150424-2177-dg55wd.jpg>, 
@original_filename="snailSign.jpg", 
@content_type="image/jpeg", 
@headers="Content-Disposition: form-data; name=\"user[avatar]\"; filename=\"snailSign.jpg\"\r\nContent-Type: image/jpeg\r\n">, 
"avatar_cache"=>""}, 
"commit"=>"Update", 
"id"=>"16"} 

我不知道如果我没有正确设置开发配置,这就是发生这种情况的原因。不过,我想在开发部署之前先解决这个问题 - 所以我养成了良好的习惯。我目前正在招收学徒,以学习使用rails进行web开发。

在此先感谢!

+0

你使用的是上传的宝石? – crispychicken

+0

@crispychicken我正在使用这些宝石:carrierwave和mini_magick。 – Vman

+0

@crispychicken我应该补充一点,我错误地写了Heroku。其实,我正在使用Nitrous.io并从那里运行Rails服务器。我很抱歉。 – Vman

回答

0

看起来错误来自AWS。不是heroku。您是否使用AWS来存储图像? AWS配置正确吗? 我不确定,但要配置AWS,您需要设置env_vars。 可能这款post将帮助您

+0

现在我正在开发模式下从NItrous.io运行。我没有使用AWS的图像。事实上,我试图从我的个人电脑上传图像。这使我相信我需要一个特殊的开发配置。 – Vman

+0

我犯了一个错误。我不是在heroku上,而是在使用Nitrous.io。我的歉意 – Vman

+0

另一个错误。我正在进行Web开发的学徒工,而且,我确实需要使用AWS进行开发。再次抱歉 – Vman

0

您是否上传到Amazon S3?

如果是这样,您必须在AWS中设置正确的访问设置。

更多的信息在这里Excon::Errors::Forbidden - StackOverflow

+0

亚马逊S3应该不是因素,但我可能是错的。现在,我正在开发,并且在我的计算机上使用本地存储的图像,并将其作为头像上传。 – Vman

+0

我犯了一个错误,说我在Heroku上。实际上,我使用Rails服务器从我的Nitrous框中运行应用程序。 – Vman

+0

另一个错误。我正在进行Web开发的学徒工,而且,我确实需要使用AWS进行开发。再次抱歉 – Vman