【问题标题】:How to authenticate google-vision api credentials on heroku using node.js?如何使用 node.js 在 heroku 上验证 google-vision api 凭据?
【发布时间】:2023-03-04 10:43:01
【问题描述】:

我在 localhost 上运行一个 Node.js 应用程序,它使用 Google Vision API 来处理图像。我可以通过提供 .json 文件的路径在本地对 API 进行身份验证,但是当我将应用程序部署到 Heroku 时,它无法处理 API 调用,我假设这背后的原因是它未能通过 API 身份验证.如何使用 google cloud 提供的 .json 文件在 Heroku 上验证 Google-Vision API?

【问题讨论】:

  • 您有可以分享的日志吗?你把json文件放到你的服务器上了吗?
  • 我想出了如何使用github.com/elishaterada/… 进行身份验证,但是现在当我向我的应用程序发送 POST 请求时,它会给出如下 H13 错误(在此处附上日志截图)-i.stack.imgur.com/QByZ4.png。什么可能导致此错误?我正在使用 google-vision API 从图像中提取文本,然后向我的网页发送 POST 请求以在表单中显示提取的数据。它有时仅适用于选定的图像,但是,通常对于大多数图像它不起作用并给我 H13 错误。
  • 这里是 heroku 关于 H13 错误的说法:devcenter.heroku.com/articles/…。如果您有 1 个始终有效的图像和 1 个永远有效的图像,请尝试直接调用 vision api(没有 heroku)并比较 2 个图像的响应,看看您处理这些响应的方式是否有任何不同。
  • 我比较了两张图片——一张可以工作的通常大小约为(150-200 KB),而那些通常不超过 200KB,所以我压缩了所有图像都在 150-200 KB 范围内。但是,即使在压缩之后,它似乎仍然不适用于这些图像。我注意到另一个区别是这些工作图像的扩展名是“.JPG”,而那些不工作的是“.jpg”。
  • 我注意到'.JPG'图像它在响应时间内发送响应并重定向到正确的页面,但是使用'.jpg'图像我可以在应用程序崩溃后和发送时看到响应再次表单,是超时问题吗?

标签: node.js heroku google-vision


【解决方案1】:

如果有人仍在寻找这个答案,而无需安装任何额外的 npm 包,我通过检查 https://devcenter.heroku.com/articles/config-vars 并以这种方式在我的应用程序中设置它来解决身份验证问题:

  1. 将.json文件放在app根目录下,然后部署到heroku

  2. 在你的 Heroku 应用程序中设置一个新的 CONFIG VARIABLE,如下所示:

    键:GOOGLE_APPLICATION_CREDENTIALS

    值:MYCREDENTIALS.json

****注意文件名没有引号(“”),点击添加,它应该可以工作。

【讨论】:

  • 请不要推荐将.json提交给git。这是一个安全风险。使用专门创建的定制包来解决这个问题。 (请参阅 Ian Bell 的评论 - 包含指向构建包的链接)我在这里写过:learnings.desipenguin.com/post/goog-cred-heroku
猜你喜欢
  • 2017-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多