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

use*_*778 21 ruby-on-rails amazon-s3 carrierwave

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

在开发存储:文件

在生产存储中:s3

juw*_*ter 24

两种型号,或者您可以全局设置它.请访问https://github.com/jnicklas/carrierwave/tree/v0.5.2查看v0.5.2(当前gem)的自述文件

在底部附近,有一些配置测试环境的说明.使用相同的方法为"开发"和"生产"使用不同的配置,例如将文件"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
Run Code Online (Sandbox Code Playgroud)

并为发展

if Rails.env.development?
  CarrierWave.configure do |config|
    config.storage = :file
  end
end
Run Code Online (Sandbox Code Playgroud)

和生产

if Rails.env.production?
  CarrierWave.configure do |config|
    config.storage = :s3
  end
end
Run Code Online (Sandbox Code Playgroud)

  • 我会把它放在"config/initializers/carrierwave.rb"中(创建一个新文件). (2认同)

小智 7

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

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