1

关于如何使用 Fog 配置 Google Storage 似乎有很多不同的文档。我已经能够让 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 项目?

4

2 回答 2

1

由于 Google 有两个独立的存储 API,因此通过 Fog 的 Google 存储凭据可能会令人困惑。通过使用access_key_id,您选择使用遗留的 XML 存储 API,它不了解项目。如果您删除项目 arg,它可以正常工作。

由于他们使用 access_key 和 secret 对(并且通过使用 Google Storage 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,fog-google代码位于https://github.com/fog/fog-google/tree/主/lib/雾/存储/google_xml

于 2017-11-28T16:18:45.250 回答
0

看起来访问密钥和秘密访问密钥与特定项目相关联,因此如果您想使用不同的项目,则需要生成不同的凭据。另见:https ://github.com/fog/fog-google/issues/268#issuecomment-347575450

于 2017-11-28T16:18:18.890 回答