Использовать carrierwave с авторизацией токена на предъявителя


В настоящее время я использую carrierwave для загрузки фотографии с помощью метода remote_url.

Сегодня у меня есть доступ к ссылке, защищенной токеном Bearer Authorization. К сожалению, наш поставщик изображений не позволяет нам получить доступ к изображению по протоколу ?access_token=VALID_TOKEN.

Можно ли настроить carrierwave для передачи Bearer VALID_TOKEN в заголовке Authorization? Или другие идеи, чтобы исправить мою проблему ?

1 3

1 ответ:

Создайте файл config/initializers/bearer.rb со следующим кодом:

module CarrierWave
  module Uploader
    module Download
      class RemoteFile
        def file
          if @file.blank?
            @file = Kernel.open(@uri.to_s, 'Authorization' => 'Bearer VALID TOKEN')
            @file = @file.is_a?(String) ? StringIO.new(@file) : @file
          end
          @file

        rescue Exception => e
          raise CarrierWave::DownloadError, "could not download file: #{e.message}"
        end
      end
    end
  end
end

Теперь ваш жетон будет отправлен для каждого remote_url.