首页 > 解决方案 > 如何在 Rails 中设置 Google 应用程序凭据

问题描述

我正在关注 Google 的“使用客户端库”并尝试使用 Google Cloud 平台将图像上传到我在 Google 上创建的存储桶。我还创建了一个服务并将 JSON 文件本地下载到我的项目中。

JSON 直接位于我的config/文件夹中。

我还为 Google 添加了所需的 gem,并使用 Figaro gem 来处理环境变量。

我不明白如何将环境变量的值设置为指向包含我的服务凭据的 JSON 文件。

这是我在我的控制器的 POST 操作中的代码:

storage = Google::Cloud::Storage.new project_id: '******'
bucket  = storage.bucket '******'
bucket.create_file allowed_params["image"], storage_file_path

这就是我试图GOOGLE_APPLICATION_CREDENTIALS在我的 application.yml 文件中设置的方式:

GOOGLE_APPLICATION_CREDENTIALS: *********-3d373986410c6.json

该文件application.yml和我的文件*********-3d373986410c6.json位于同一文件夹/路径中。

我得到的错误是:

Could not load the default credentials. Browse to https://developers.google.com/accounts/docs/application-default-credentials for more information

我错过了什么?

标签: ruby-on-railsrubygoogle-cloud-platform

解决方案


@webbie 自己解决了这个问题,从问题评论中可以看出。将评论添加为社区 Wiki 答案以提高解决方案的可见性:

“这篇文章解决了这个问题https://medium.com/@pjbelo/setting-up-rails-5-2-active-storage-using-google-cloud-storage-and-heroku-23df91e830f8


推荐阅读