2011-05-20 53 views
3

我在使用Carrerwave 0.5.3並在我的圖片的Create方法中調用Picture.save時發生404錯誤控制器。每在LIB/carrierwave /存儲/ s3.rb說明我已經在我的初始化文件下面的(配置/初始化/ carrierwave_fog.rb):Rails 3 Carrierwave -Fog-S3錯誤:預計(200)<=>實際(404 Not Found)

CarrierWave.configure do |config| 
    config.s3_access_key_id = "xxxxx" 
    config.s3_secret_access_key = "xxxxx" 
    config.s3_bucket = "mybucket" #already created in my S3 account 
end 

在photo_uploader.rb我:

class PhotoUploader < CarrierWave::Uploader::Base 
    include CarrierWave::RMagick 
    storage :s3 
    def store_dir 
    "uploads" # already created in my s3 account 
    end 
    def cache_dir 
    "uploads/cache" #already created in my s3 account 
    end 
end 

確切的錯誤:

Excon::Errors::NotFound in PicturesController#create 
Expected(200) <=> Actual(404 Not Found) 
    request => {:expects=>200} 
    response => #<Excon::Response:0x00000104a72448 @body="", @headers={}, @status=404> 

我找到了一個稍微類似的問題在這裏Carrierwave and s3 with heroku error undefined method `fog_credentials='。但現在設置的方式顯然是在這種情況下工作的。不幸的是,它不適合我。

我已經在我的存儲區中放置了一張圖片,並將權限設置爲公開,並且可以通過瀏覽器訪問圖片。因此,AWS S3方面的事情似乎正在發揮作用。

不知道下一步該去哪裏。有任何想法嗎?

回答

2

嗯,我睡了一晚上第二天回來,一切都很好。不知道爲什麼突然開始工作。

+2

我今天遇到了這個錯誤。它是由於錯誤的存儲桶名稱而發生的。修復名稱後還需要重啓服務器。 :) – Bongs 2012-07-27 07:19:03

0

確保您的文件名已被清理,並且不包含空格或斜線等無效字符。 要清理字符串,您可以調用其上的gsub方法。以下方法調用將清理文件以上傳到S3,Google雲端存儲等。

"Invalid\ file *& | | name.png".gsub(/[^0-9A-z.\-]/, '_') 
相關問題