【问题标题】:Google Vision API authentication on herokuHeroku 上的 Google Vision API 身份验证
【发布时间】:2017-08-13 17:04:07
【问题描述】:

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

干杯, 启

【问题讨论】:

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


    【解决方案1】:

    已解决:

    原来你可以在环境变量中提供一个 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) 上。

    【讨论】:

    • 我尝试了这种方法,我在 env 中设置了 VISION_KEYFILE_JSON,当我在本地尝试时它说 `` 未处理的承诺拒绝(拒绝 id:1):错误:无法加载默认凭据.浏览至developers.google.com/accounts/docs/… 了解更多信息。``` 但是当我回显时,它会显示环境
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 2023-03-04
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多