Carrierwave / Fog-azure:azure不是公认的提供者(ArgumentError)

时间:2015-08-17 10:05:30

标签: ruby-on-rails azure carrierwave fog

我正在尝试将我的rails 4项目连接到Azure,我使用carrierwave和fog来管理和存储图像。

这是启动服务器或控制台时出现的错误:

/Users/giulio/.rvm/gems/ruby-2.2.1@my_project/gems/fog-core-1.32.0/lib/fog/core/services_mixin.rb:12:in `new': azure is not a recognized provider (ArgumentError)
        from /Users/giulio/.rvm/gems/ruby-2.2.1@my_project/gems/fog-core-1.32.0/lib/fog/storage.rb:22:in `new'
        from /Users/giulio/.rvm/gems/ruby-2.2.1@my_project/gems/carrierwave-0.10.0/lib/carrierwave/uploader/configuration.rb:83:in `eager_load_fog'
        from /Users/giulio/.rvm/gems/ruby-2.2.1@my_project/gems/carrierwave-0.10.0/lib/carrierwave/uploader/configuration.rb:96:in `fog_credentials='
        from /Users/giulio/Documents/rails/my_project/config/initializers/carrier_wave.rb:7:in `block in <top (required)>'

我的gemfile:

gem 'carrierwave'
gem 'fog'
gem 'fog-azure'

Carrierwave初始化程序是:

CarrierWave.configure do |config|
  if Rails.env.test?
    config.storage = :file
    config.enable_processing = false
  else
    config.storage = :fog
    config.fog_credentials = Rails.application.secrets.fog_credentials.symbolize_keys
    config.fog_directory = "my_directory"
    config.fog_public     = true
    config.fog_attributes = {'Cache-Control'=>'public, max-age=315576000'}
  end
end

my secrets.yml包含:

  fog_credentials:
    provider: 'azure'
    azure_sub_id: '12a2341c-22ac-1561-5ed2-17865d910ba4'
    azure_pem: '~/secret.pem'
    azure_api_url: 'usnorth.management.core.windows.net'

1 个答案:

答案 0 :(得分:1)

检查fog-azure宝石代码我认为,雾霾只会影响&#39; Compute&#39;雾模块,而carrierwave使用&#39;存储&#39;模块。

据此我了解fog-azure只能用于管理服务器(即启动,停止,配置)而不能使用storage

我还找到了carrierwave-azure gem以获得载波来支持azure,我会尝试这个。