ruby-on-rails - heroku 上的 Google Vision API 身份验证

标签 ruby-on-rails authentication heroku vision-api

在 heroku 上验证 Vision API 的最好、最简单的方法是什么?

在开发中我只使用:

@vision = Google::Cloud::Vision.new( project:  "instacult",
                                     keyfile:  "path/to/keyfile.json" )

其中 keyfile 是 google 在创建服务帐户 ( https://cloud.google.com/vision/docs/common/auth ) 后生成的 json。

但显然我不能只将 key 文件上传到 github。

我尝试将整个 json 保存到 Heroku 的配置变量并运行:

Rails.env.production? ? ENV["GOOGLE_CREDENTIALS"] : path

但我在 heroku 的日志中收到“不是有效文件”。似乎合乎逻辑,因为我不是在传递文件而是传递对象。但是如何克服呢?

干杯, 凯

最佳答案

已解决:

原来你可以在环境变量中提供一个json对象,但是有一个命名约定。

Here are the environment variables (in the order they are checked) for credentials:

  1. VISION_KEYFILE - Path to JSON file
  2. GOOGLE_CLOUD_KEYFILE - Path to JSON file
  3. VISION_KEYFILE_JSON - JSON contents
  4. GOOGLE_CLOUD_KEYFILE_JSON - JSON contents

来源:https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-vision/v0.23.0/guides/authentication

所以我最终调用了:

@vision = Google::Cloud::Vision.new( project:  "instacult")

在我的 ~/.bashrc 中设置了 VISION_KEYFILE_JSON:

export VISION_KEYFILE_JSON='the_json_content'

和 heroku ( https://devcenter.heroku.com/articles/config-vars#limits )。

关于ruby-on-rails - heroku 上的 Google Vision API 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42937145/

相关文章:

python - Django可疑操作

ruby-on-rails - rails 有 previous_path/url 吗?

ruby-on-rails - Rails 参数数量错误(给定 0,预期 1)

python - 从我的电脑访问 Heroku Bonsai 上的 elasticsearch

asp.net - 使用 Visual Studio Web 服务器运行时的身份验证对话框

java - 如何使用用户名和密码在 Java 中连接到 MongoDB 3.2?

ruby-on-rails - Ruby on Rails - 制作新应用程序时出错(rb :55:in 'require' )

ruby-on-rails - rails : Plus sign in GET-Request replaced by space

ruby-on-rails - 我如何运行所有 rake 任务?

java - CSV 文件下载(在 Excel 中打开)提示进行 Windows 用户身份验证