Fog-Google 存储指定项目
Fog-Google Storage Specify Project
关于如何配置 Google 带雾的存储,似乎有很多不同的文档。我已经能够让 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
我能够存储文件、创建存储桶并执行我需要的一切,除了我只能访问默认项目。 有谁知道如何在 Fog::Storage.new 哈希中简单地指定 Google 项目?
访问密钥和秘密访问密钥似乎与特定项目相关联,因此如果您想使用不同的项目,则需要生成不同的凭据。另见:https://github.com/fog/fog-google/issues/268#issuecomment-347575450
Google 通过 Fog 存储凭证可能会造成混淆,因为 Google 有两个独立的存储 API。通过使用 access_key_id
,您选择使用遗留 XML 存储 API,它不了解项目。如果删除项目 arg,它工作正常。
由于他们使用 access_key 和秘密对(并且使用 Google 存储 XML API),他们不需要指定项目,因为访问密钥与项目相关联。
$ 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>
XML 的 API 文档位于 https://cloud.google.com/storage/docs/xml-api/overview and the fog-google code is at https://github.com/fog/fog-google/tree/master/lib/fog/storage/google_xml
关于如何配置 Google 带雾的存储,似乎有很多不同的文档。我已经能够让 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
我能够存储文件、创建存储桶并执行我需要的一切,除了我只能访问默认项目。 有谁知道如何在 Fog::Storage.new 哈希中简单地指定 Google 项目?
访问密钥和秘密访问密钥似乎与特定项目相关联,因此如果您想使用不同的项目,则需要生成不同的凭据。另见:https://github.com/fog/fog-google/issues/268#issuecomment-347575450
Google 通过 Fog 存储凭证可能会造成混淆,因为 Google 有两个独立的存储 API。通过使用 access_key_id
,您选择使用遗留 XML 存储 API,它不了解项目。如果删除项目 arg,它工作正常。
由于他们使用 access_key 和秘密对(并且使用 Google 存储 XML API),他们不需要指定项目,因为访问密钥与项目相关联。
$ 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>
XML 的 API 文档位于 https://cloud.google.com/storage/docs/xml-api/overview and the fog-google code is at https://github.com/fog/fog-google/tree/master/lib/fog/storage/google_xml