fog-google google-存储认证失败

fog-google google-storage authentication fails

我正在 rails 2.6.0 使用 carrierwaveUploader。 无论我做什么,我都无法通过我的 google API 进行身份验证以进行存储。 我已经创建了 JSON 密钥、存储桶以及所有内容。

我的配置是:

CarrierWave.configure do |config|
  config.fog_provider = 'fog/google'                        # required
  config.fog_credentials = {
    provider: 'Google',
    google_storage_access_key_id: 'REDACTED',
    google_storage_secret_access_key: '-----BEGIN PRIVATE KEY-----\nREDACTED\n-----END PRIVATE KEY-----\n'

    # google_json_key_location: Rails.root.join('rails-app.json')
  }
  config.fog_directory = 'gomes-commerce'
end

如您所见,我已尝试使用 google_json_key_location 参数,并提供下载文件的路径...它不起作用! 它给出了关于所需参数的错误 google_storage_access_key_id && google_storage_access_key.

我的(相关)宝石是:

gem 'fog', require: 'fog/google'
gem 'google-api-client', '~> 0.11.1'
gem 'mime-types'

我的输出总是一样的:

<?xml version='1.0' encoding='UTF-8'?>
    <Error>
        <Code>
          SignatureDoesNotMatch
         </Code>
        <Message>
          The request signature we calculated does not match the 
          signature you provided. Check your Google secret key and signing 
          method. 
        </Message>
        <StringToSign>
          PUT\n\nimage/jpeg\nWed, 13 Feb 2019 09:36:19 +0000\nx-goog-acl:public-read\n/gomes-commerce/uploads%2Fproduct%2Fimage%2F17%2Fscp_shirt.jpg
        </StringToSign>
   </Error>

我已经花了 48 小时多的时间来解决这个问题。 如果有任何关于 SO 的参考资料适用于我的案例,我不会来这里并打开一个主题。 请帮忙! :)

提前致谢。

好吧..我还没有在 SO 上看到 任何 对此的引用所以也许我会帮助另一个像我这样有抱负的 rails 开发人员。

如果你想使用carrierwaveuploader(这很神奇)。 我最好的建议是结合这个:

https://github.com/metaware/carrierwave-google-storage

工作得很好!!