heroku上的Google Vision API身份validation
什么是在heroku上validationVision API的最佳,简单方法?
在开发中我只使用:
@vision = Google::Cloud::Vision.new( project: "instacult", keyfile: "path/to/keyfile.json" )
其中keyfile是google在创建服务帐户后生成的json( https://cloud.google.com/vision/docs/common/auth )。
但显然我不能只将密钥文件上传到github。
我尝试将整个json保存到Heroku的配置变量并运行:
Rails.env.production? ? ENV["GOOGLE_CREDENTIALS"] : path
但是我在heroku的日志中得到“不是一个有效的文件”。 由于我没有传递文件而是传递对象,因此似乎是合乎逻辑的。 但是如何克服它呢?
干杯,凯
解决了:
事实certificate,您可以在环境变量中提供json对象,但是有一个命名约定。
以下是凭据的环境变量(按检查顺序):
- VISION_KEYFILE – JSON文件的路径
- GOOGLE_CLOUD_KEYFILE – JSON文件的路径
- VISION_KEYFILE_JSON – JSON内容
- 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 )。