2015-04-24 48 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