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对象,但是有一个命名约定。

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

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