3
我在我的Rails應用程序中使用Carrierwave處理圖片上傳。當我配置上傳器在本地存儲文件時,一切都很好。當我要求上傳到Rackspace的Cloud Files服務時,問題就出現了。上傳效果很好,我可以在控制面板中看到這些文件。問題是,Carrierwave在上傳器上返回一個URL,就好像該文件存儲在本地一樣。即:@foo.uploader.url
看起來像/User/bar/Code/app/public/uploads/yeah.jpeg
而不是http://cloudcloud.com/yeah.jpg
。CarrierWave上傳器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
完美!謝謝!我沒有意識到你必須打開Rackspace的CDN才能公開訪問你的文件。 CarrierWave的文檔說這個選項不是必需的,但強烈建議。 –