Fog-Google Storage Specify Project

Похоже, есть много разных документов о том, как настроить Google Storage с помощью Fog. Мне удалось заставить Paperclip работать только с несколькими параметрами, и я надеялся упростить процесс хранения файлов и манипуляции с ними:

connection = Fog::Storage.new({
  provider:                         'Google',
  google_project:                   'MYPROJECT',
  google_storage_access_key_id:     'MYKEYID',
  google_storage_secret_access_key: 'MYSECRET'
})

Это сгенерирует предупреждение:

[fog][WARNING] Unrecognized arguments: google_project

Я могу хранить файлы, создавать корзины и делать все, что мне нужно, КРОМЕ У меня есть доступ только к проекту по умолчанию. Кто-нибудь знает, как я могу просто указать Google Project в хеш Fog::Storage.new?

2 ответа

Решение

Учетные данные хранилища Google через Fog могут сбить с толку, поскольку у Google есть два отдельных API хранилища. Используя access_key_idвы решили использовать устаревший API-хранилище XML, в котором нет понимания проектов. Если удалить проект arg, он работает нормально.

Поскольку они используют access_key и секретную пару (и, тем самым, используя API-интерфейс XML Storage Google), им не нужно указывать проект, поскольку ключи доступа привязаны к проекту.

$ irb 2.4.0 :001 > require 'fog/google' => true 2.4.0 :002 > 2.4.0 :003 > connection = Fog::Storage.new({ 2.4.0 :004 > provider: 'Google', 2.4.0 :005 > google_storage_access_key_id: 'MYKEYID', 2.4.0 :006 > google_storage_secret_access_key: 'MYSECRET' 2.4.0 :007?> }) => #<Fog::Storage::GoogleXML::Real:70271319462720 @google_storage_access_key_id="MYKEYID" @google_storage_secret_access_key="MYSECRET" @connection_options={} @hmac=#<Fog::HMAC:0x007fd2a211a1a8 @key="MYSECRET", @digest=#<OpenSSL::Digest: da39a3ee5e6b4b0d3255bfef95601890afd80709>, @signer=#<Proc:0x007fd2a2119de8@/Users/natwelch/.rvm/gems/ruby-2.4.0/gems/fog-core-1.45.0/lib/fog/core/hmac.rb:21 (lambda)>> @host="storage.googleapis.com" @persistent=true @port=443 @scheme="https" @path_style=false>

Документы по API для XML находятся по адресу https://cloud.google.com/storage/docs/xml-api/overview а код fog-google - по адресу https://github.com/fog/fog-google/tree/master/lib/fog/storage/google_xml

Похоже, что ключ доступа и секретный ключ доступа связаны с конкретным проектом, поэтому, если вы хотите использовать другой проект, вам нужно будет сгенерировать разные учетные данные. Смотрите также: https://github.com/fog/fog-google/issues/268

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