如何在生产中使用CarrierWave的Fog

spi*_*109 14 heroku amazon-s3 ruby-on-rails-3 carrierwave fog

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

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

非常感谢提前.

Fa1*_*gel 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
Run Code Online (Sandbox Code Playgroud)

  • 我昨天忘了谢谢你.工作就像一个魅力. (2认同)