在 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:
- VISION_KEYFILE - Path to JSON file
- GOOGLE_CLOUD_KEYFILE - Path to JSON file
- VISION_KEYFILE_JSON - JSON contents
- GOOGLE_CLOUD_KEYFILE_JSON - JSON contents
所以我最终调用了:
@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/