3

在 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。

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

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

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

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

干杯,凯

4

1 回答 1

5

解决了:

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

以下是凭据的环境变量(按检查顺序):

  1. VISION_KEYFILE - JSON 文件的路径
  2. GOOGLE_CLOUD_KEYFILE - JSON 文件的路径
  3. VISION_KEYFILE_JSON - JSON 内容
  4. GOOGLE_CLOUD_KEYFILE_JSON - JSON 内容

来源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)上。

于 2017-03-22T12:26:14.340 回答