【问题标题】:How to use Fog with CarrierWave only in Production如何仅在生产中使用 Fog 和 CarrierWave
【发布时间】:2012-12-20 03:56:23
【问题描述】:

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

如果能够在本地使用文件,然后在生产模式下进行雾化,而无需手动来回切换,那就太好了。有人对如何做到这一点有任何建议吗?

非常感谢。

【问题讨论】:

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


    【解决方案1】:

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

    # 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
    

    【讨论】:

    • 在当前版本的carrierwave中,您必须在config.fog_credentials之后添加config.storage
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 2014-06-28
    • 2012-03-21
    • 2016-06-29
    • 1970-01-01
    • 2019-05-15
    相关资源
    最近更新 更多