настройка переменной окружения GOOGLE_APPLICATION_CREDENTIALS

Я пытаюсь настроить учетную запись службы и сохранить файл учетных данных на сервере Linux и сохранить путь в GOOGLE_APPLICATION_CREDENTIALS, предоставленный Google.

Говорят, что клиентские библиотеки Google Cloud используют библиотеку под названием Application Default Credentials (ADC) для автоматического поиска учетных данных вашей учетной записи службы.

https://cloud.google.com/docs/authentication/production

Я использую CarrierWave в этой библиотеке тумана: Google для загрузки и скачивания файлов. Не могли бы вы помочь или поделиться своими мыслями, как мы можем использовать эти библиотеки.

моя реализация загрузчика CarrierWave ниже:

      
class TestUploader < CarrierWave::Uploader::Base

  storage :fog

  def fog_credentials
    {
      :provider => 'google',
      :google_project =>'my project',
      :google_json_key_location => GOOGLE_APPLICATION_CREDENTIALS
    }
  end

  def fog_provider
    'fog/google'
  end

  def fog_directory
    '{#bucket-name}'
  end

  def store_dir

    when :File
      "#{file.getpath}/file"
    when :audio
      "#{file.getpath}/audio"
    else
      p " Invalid file "
    end
  end
end

Я пробовал, но это не сработало. Пожалуйста, предложите здесь.

1 ответ

Существует проблема Github, указанная как:

      Closing issue. 1.0.0 is out, and we have no more mocks for json backed objects.

Вы также можете проверить документацию по реализации облачного хранилища Google, где указано:

Используйте официальную жемчужину google-cloud от Google для облачного хранилища Google вместо тумана. Нет необходимости активировать Interoperable Access в вашем проекте. Положитесь на предпочтительный механизм аутентификации Google. т. е. сервисные учетные записи.

Как упоминалось в ответе Stackoverflow :

Вы можете увидеть этот код:

Облачное хранилище Google с использованием драгоценного камня Fog: ```ruby

       require "fog/google"

# Uncomment the following line if you want to use Mock
#Fog.mock!

# Bucket name
bucket = "an-existing-bucket"

# Timestamp used as sample string
test = Time.now.utc.strftime("%Y%m%d%H%M%S")

connection = Fog::Storage.new({
  :provider => "Google",
  :google_project => "your-project",
  :google_json_key_location => "path-to-key.json",
})

# Lists objects in a bucket
puts connection.list_objects(bucket)

#Creates new object
connection.put_object(bucket, test, test)
puts "Object #{test} was created."
``

`

Другие вопросы по тегам