google云视觉api快速启动错误打开文件

google cloud vision api quickstart error opening file

我正在关注以下 Google Cloud Vision 快速入门:
https://cloud.google.com/vision/docs/quickstart
这是使用 API 资源管理器,我得到

Error Opening File

我创建了一个名为 vision2018 的存储桶,并为该文件选中了公开共享。 我的请求中与文件相关的部分是:

"image":
{
"source":
{
"imageUri":"gs://vision2018/demo-image.jpg"
}
}

我得到的回复是:

{
 "responses": [
  {
   "error": {
    "code": 5,
    "message": "Error opening file: gs://vision2018/demo-image.jpg\"."
   }
  }
 ]
}

}

我需要指定什么才能访问我的 GCP 存储中的文件?

或者,我阅读了其他关于 GOOGLE_APPLICATION_CREDENTIALS、简单 API 键和 "Create Service account key and download the key in JSON format" 的 Stack Overflows,但这些似乎是在 shell,这个快速入门甚至没有打开。 在快速启动之前是否假设了初始设置?

我还没准备好从代码

调用api

您可能需要仔细检查您的请求。我转到快速入门,将占位符 imageUri 替换为 gs://vision2018/demo-image.jpg,它工作得很好。如果您改用 gs://vision2018/demo-image.jpg\",则会显示您发布的错误消息。

关于你问题的第二部分:这些是uthentication methods。在这种特殊情况下,在 Authentication 下,您会找到一个下拉菜单,您可以在其中选择 API 密钥和 Google OAuth 2.0。如果您选择前者,则无需执行任何操作,因为演示密钥仅用于快速入门。如果您选择 OAuth 2.0,将出现一个弹出窗口,提示您使用 google 帐户进行身份验证。总而言之,您需要做的就是按照快速入门中给出的说明一步步进行。

最后我调查了到底发生了什么。问题是您的 API 令牌仅授予处理图像的权限(允许使用 OCR 引擎的权利),但 API 也不适用于访问 GS 中的对象。

因此"message": "Error opening file: 问题与此类似 post:Authorize Google Cloud Vision API to Google Storage image 可能错误消息比很多年前有点愚蠢。

答案部分也提到了解决方案,但如果你想要更清楚的东西(暴露安全副作用),这里是:Set GCS read-only public

我想继续使用 API 的原因是它更适合在移动应用程序中使用,我们不能将 OAuth2.0 提供给任何 phone。但是,仍然想办法保护 read-public 存储桶。

我收到了来自 Google Vision API 的类似 JSON 回复:

  "error": {
    "code": 7,
    "message": "Error opening file: gs://bucket/file.jpg."
  }

修复方法是将 GCS 文件的权限设置为 public-read:

gsutil acl set public-read gs://bucket/file.jpg