ArgumentError (необходимо указать ключ подписи) в Rails + Carrierwave + Microsoft Azure - PullRequest
0 голосов
/ 23 февраля 2019

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

Я использую Gem CarrierWave, как показано в руководстве по Rails, для загрузки изображений в производство.Я использую Microsoft Azure вместо AWS, и моя carrier_wave.rb имеет следующую структуру:

if Rails.env.production?
    require 'azure/storage/blob'

    blob_client = Azure::Blob::BlobService.

    CarrierWave.configure do |config|
        blob_client = Azure::Storage::Blob::BlobService.create(
            storage_account_name: my_account_name,
            storage_access_key: my_account_key
        )
    end
end

Но когда я нажимаю на Heroku и пытаюсь загрузить изображение в свое приложение, происходит сбой

Журналы здесь:

2019-02-23T04:01:46.917324+00:00 app[web.1]: D, [2019-02-23T04:01:46.917249 #10] DEBUG -- : [d1de016d-29a7-4338-b6f0-071aced60e70]    (0.6ms)  ROLLBACK
2019-02-23T04:01:46.917957+00:00 app[web.1]: I, [2019-02-23T04:01:46.917872 #10]  INFO -- : [d1de016d-29a7-4338-b6f0-071aced60e70] Completed 500 Internal Server Error in 112ms (ActiveRecord: 5.2ms)
2019-02-23T04:01:46.918790+00:00 app[web.1]: F, [2019-02-23T04:01:46.918718 #10] FATAL -- : [d1de016d-29a7-4338-b6f0-071aced60e70]
2019-02-23T04:01:46.918843+00:00 app[web.1]: F, [2019-02-23T04:01:46.918781 #10] FATAL -- : [d1de016d-29a7-4338-b6f0-071aced60e70] ArgumentError (Signing key must be provided):
2019-02-23T04:01:46.918891+00:00 app[web.1]: F, [2019-02-23T04:01:46.918837 #10] FATAL -- : [d1de016d-29a7-4338-b6f0-071aced60e70]
2019-02-23T04:01:46.918942+00:00 app[web.1]: F, [2019-02-23T04:01:46.918891 #10] FATAL -- : [d1de016d-29a7-4338-b6f0-071aced60e70] app/controllers/books_controller.rb:22:in `create'

Я следовал примерам того, как предоставить информацию, необходимую из Microsoft Docs, но похоже, что я не выполняю интеграцию должным образом.Буду признателен за помощь в этом вопросе.

1 Ответ

0 голосов
/ 23 февраля 2019

Откуда вы получаете my_account_name и my_account_key?Вы уверены, что они действительны и имеют значение?

В соответствии с BlobService # initialize -> SharedKey # initialize -> Signer # initialize

ваш acces_key равен nil

# Initialize the Signer.
#
# @param access_key [String] The access_key encoded in Base64.
def initialize(access_key)
  if access_key.nil?
    raise ArgumentError, 'Signing key must be provided'
  end

  @access_key = Base64.strict_decode64(access_key)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...