2017-02-10 37 views
0

使用carrierwave和霧寶石將圖像上傳到S3;當我從localhost:3000執行它時,它工作得很好。但是,在部署到heroku後,當我嘗試上傳圖像時,出現「出錯」屏幕。如果我沒有嘗試上傳圖片而創建相同的帖子,則其他帖子都很好。將霧上傳到本地主機的S3作品,但不能與heroku一起使用

再次,在地方,當我上傳的圖片,它直接到我的S3存儲桶。爲什麼當我從heroku執行相同的操作時不會發生同樣的事情?

我已經做了所有的遷移和推動,我甚至嘗試添加霧-AWS寶石(即使AWS是沒有問題的,Heroku的是)。請幫忙! :(

products_controller.rb

def update 
    @product.category_id = params[:category_id] 

    respond_to do |format| 
     if @product.update(product_params) 
     format.html { redirect_to @product, notice: 'Product was successfully updated.' } 
     format.json { render :show, status: :ok, location: @product } 
     else 
     format.html { render :edit } 
     format.json { render json: @product.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

這裏是Heroku的日誌,只有錯誤。

2017-02-10T06:21:48.471592+00:00 app[web.1]: I, [2017-02-10T06:21:48.471528 #4] INFO -- : [4cc29852-5ad1-446c-8589-4d67bb97f2cc] Completed 500 Internal Server Error in 614ms (ActiveRecord: 9.3ms) 
2017-02-10T06:21:48.472558+00:00 app[web.1]: F, [2017-02-10T06:21:48.472497 #4] FATAL -- : [4cc29852-5ad1-446c-8589-4d67bb97f2cc] Excon::Error::Forbidden (Expected(200) <=> Actual(403 Forbidden) 
2017-02-10T06:21:48.472560+00:00 app[web.1]: excon.error.response 
2017-02-10T06:21:48.472562+00:00 app[web.1]: :body   => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AllAccessDisabled</Code><Message>All access to this object has been disabled</Message><RequestId>EB063C36E37005DB</RequestId><HostId>6J4nl+P2RoUKEg1D23Fb3dxokR0I5piyBK3/3wYVRmyGzyFxzFseVmTUoZ6GpMFMUiEVQSH2GVA=</HostId></Error>" 
+0

順便說一句,我會通宵,積極檢查這一點,所以讓我知道,如果有代碼我應該張貼 – Nick

+0

你能請檢查heroku日誌併發布錯誤 –

+0

您可以在app/controllers/products_controller.rb中發佈'update'行爲代碼嗎 –

回答

0

我沒有在我的carrierwave.rb這條線(其中霧憑據),雖然我不認爲這是必要的:

config.cache_dir = 「#{} Rails.root的/ tmp /上傳」

最終的問題是,我從來沒有在終端上運行一個關鍵的figaro命令來通知heroku我的AWS憑證。我以其他方式單獨完成了這項工作,但顯然這還不夠好。所有我需要做的就是輸入:

$費加羅的Heroku:設置-e生產

相關問題