Carrierwave / Fog-azure: azure не признанный провайдер (ArgumentError)

Я пытаюсь подключить свой проект rails 4 к Azure, я использую несущую волну и туман для управления и хранения изображений.

Это ошибка, которую я получаю при запуске сервера или консоли:

/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)>'

У меня в гемфайле:

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

мой secretts.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'

person Don Giulio    schedule 17.08.2015    source источник


Ответы (1)


Проверяя fog-azure код драгоценного камня, я понял, что fog-azure имеет дело только с модулем тумана 'Compute', а carrierwave использует модуль 'storage'.

Из этого я понимаю, что fog-azure может использоваться только для управления серверами (т.е. запуск, остановка, подготовка), но не storage

Я нашел также гем carrierwave-azure, чтобы заставить операторскую волну поддерживать лазурный режим, я попробую это.

person Don Giulio    schedule 17.08.2015