14

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

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

提前非常感谢。

4

1 回答 1

49

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

# 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
于 2013-01-06T19:14:19.043 回答