2011-11-01 39 views
3

我在我的Rails應用程序中使用Carrierwave處理圖片上傳。當我配置上傳器在本地存儲文件時,一切都很好。當我要求上傳到Rackspace的Cloud Files服務時,問題就出現了。上傳效果很好,我可以在控制面板中看到這些文件。問題是,Carrierwave在上傳器上返回一個URL,就好像該文件存儲在本地一樣。即:@foo.uploader.url看起來像/User/bar/Code/app/public/uploads/yeah.jpeg而不是http://cloudcloud.com/yeah.jpgCarrierWave上傳器URL指向使用雲時的本地文件系統

我哪裏錯了?

# config/initializers/carrier_wave.rb 

CarrierWave.configure do |config| 
    config.storage = :fog 

    config.fog_credentials = { 
    :provider   => 'Rackspace', 
    :rackspace_username => 'foo', 
    :rackspace_api_key => '0f0f0f0f0f0f0f' 
    } 

    config.fog_directory = 'development-images' 
end 

# app/uploaders/foo_uploader.rb 

class FooUploader < CarrierWave::Uploader::Base 
    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 
end 

回答

4

我在我自己的Rackspace公司上傳,我可以看到的唯一的區別碼接過來一看,是我的fog_host設置爲CDN網址像這樣:

config.fog_host = "http:/something.rackcdn.com" 
+0

完美!謝謝!我沒有意識到你必須打開Rackspace的CDN才能公開訪問你的文件。 CarrierWave的文檔說這個選項不是必需的,但強烈建議。 –

相關問題