我使用carrierwaveUploader在rails 2.6.0上。无论我做什么,我都无法使用我的谷歌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的参考,我不会来这里并打开一个主题。请帮忙! :)
提前致谢。
嗯..我还没有看到任何对此的引用,所以也许我会帮助像我这样的另一个有抱负的rails开发者。
如果你想使用carrierwaveuploader(这是惊人的)。我最好的建议是结合这个:
https://github.com/metaware/carrierwave-google-storage
像魅力一样工作!