如何在生产中使用CarrierWave的Fog

时间:2013-01-06 02:33:45

标签: ruby-on-rails-3 heroku amazon-s3 carrierwave fog

我在我的Rails应用程序中使用Heroku和S3。我只在生产模式下安装了雾宝石,因为我的本地计算机是一块垃圾。无论如何,它以这种方式运行良好,并且已被证明是更好的解决方案,而不是拉我的头发以在本地安装雾,但现在我必须切换Uploader文件以使用localhost然后将其切换回来做出承诺。

能够在本地使用文件然后在生产模式下雾化而不需要手动来回切换会很高兴。有没有人对如何做到这一点有任何建议?

提前多多感谢。

1 个答案:

答案 0 :(得分:47)

这很简单。您必须在配置文件中定义它。但是不要在模型中定义存储,因为这会覆盖配置文件中的设置。

# sample config/initializers/carrierwave.rb
CarrierWave.configure do |config|

  if Rails.env.development? || Rails.env.test?
    config.storage = :file
  else
    config.fog_credentials = {
      :provider               => 'AWS',
      :aws_access_key_id      =>  'some_access_key_id',
      :aws_secret_access_key  => 'some_secret_key',
      :region                 => 'eu-west-1'
    }
    config.storage = :fog
    config.fog_directory = 'bucket_name'
  end
end