配置环境以在本地使用文件系统和在Heroku上使用Amazon

时间:2011-03-20 20:02:30

标签: ruby-on-rails amazon-s3 carrierwave

我不确定如何配置环境,以便Carrier Wave在本地(开发)运行应用程序时使用本地文件存储,并在加载到heroku(生产)后使用s3

在开发存储:文件

中 生产存储中的

:s3

3 个答案:

答案 0 :(得分:24)

两种型号,或者您可以全局设置它。在https://github.com/jnicklas/carrierwave/tree/v0.5.2

查看v0.5.2(当前宝石)的自述文件

在底部附近,有一些配置测试环境的说明。使用相同的方法为“开发”和“生产”使用不同的配置,例如将文件“carrierwave.rb”添加到“config / initialisers”并添加配置代码

if Rails.env.test? or Rails.env.cucumber?
  CarrierWave.configure do |config|
    config.storage = :file
    config.enable_processing = false
  end
end

和发展

if Rails.env.development?
  CarrierWave.configure do |config|
    config.storage = :file
  end
end

和生产

if Rails.env.production?
  CarrierWave.configure do |config|
    config.storage = :s3
  end
end

答案 1 :(得分:7)

我通常做的最简单的方法是通过上传器。

class CoverUploader < CarrierWave::Uploader::Base
  # Choose what kind of storage to use for this uploader:
  storage (Rails.env.production? ? :fog : :file)
end

答案 2 :(得分:1)

我猜这是在某个模型中设置的。你可以做点什么

if Rails.env.production?
  // set production
else
  // set dev / test
end