Ruby on rails CarrierWave Uploader URL在使用云时指向本地文件系统
我在Rails应用程序中使用Carrierwave来处理图像上传。当我将上传程序配置为本地存储文件时,一切都很好。当我要求上传到Rackspace的云文件服务时,问题就出现了。上传效果很好,我可以在我的控制面板中看到文件。问题是Carrierwave在上传程序上返回一个URL,就好像文件存储在本地一样。ie:Ruby on rails CarrierWave Uploader URL在使用云时指向本地文件系统,ruby-on-rails,ruby,ruby-on-rails-3,carrierwave,Ruby On Rails,Ruby,Ruby On Rails 3,Carrierwave,我在Rails应用程序中使用Carrierwave来处理图像上传。当我将上传程序配置为本地存储文件时,一切都很好。当我要求上传到Rackspace的云文件服务时,问题就出现了。上传效果很好,我可以在我的控制面板中看到文件。问题是Carrierwave在上传程序上返回一个URL,就好像文件存储在本地一样。ie:@foo.uploader.url看起来像/User/bar/code/app/public/uploads/yeah.jpeg而不是http://cloudcloud.com/yeah.j
@foo.uploader.url
看起来像/User/bar/code/app/public/uploads/yeah.jpeg
而不是http://cloudcloud.com/yeah.jpg
我哪里做错了
# 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
#config/initializers/carrier_wave.rb
CarrierWave.configure do | config|
config.storage=:雾
config.fog\u凭据={
:provider=>“机架空间”,
:rackspace_username=>“foo”,
:机架空间\u api\u键=>'0F0F'
}
config.fog_目录='development images'
结束
#app/uploaders/foo_uploader.rb
类fooouploader
我查看了我自己的Rackspace uploader代码,唯一的区别是我将fog_主机设置为CDN url,如下所示:
config.fog_host = "http:/something.rackcdn.com"
完美的谢谢我不知道你必须打开Rackspace的CDN才能公开访问你的文件。CarrierWave的文件称,该选项不是必需的,但强烈建议使用。