谷歌云视觉API快速入门错误打开文件

时间:2018-07-05 15:24:28

标签: google-cloud-vision google-apis-explorer

我正在遵循以下Google Cloud Vision快速入门:
https://cloud.google.com/vision/docs/quickstart
这是使用API​​ Explorer的,我得到

  

打开文件错误

我创建了一个名为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密钥和“创建服务帐户密钥并以JSON格式下载密钥”的协议,但是这些似乎在shell中提供了命令,快速入门甚至没有打开。 在快速入门之前是否已进行了初始设置?

我还不准备从代码中调用api

3 个答案:

答案 0 :(得分:1)

您可能需要仔细检查您的请求。我进入快速入门,用gs://vision2018/demo-image.jpg替换了占位符imageUri,并且效果很好。如果您给了gs://vision2018/demo-image.jpg\",则显示的是您发布的错误消息。

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

答案 1 :(得分:0)

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

因此,"message": "Error opening file: 问题与这篇文章类似:Authorize Google Cloud Vision API to Google Storage image也许错误消息比许多年前有些愚蠢。

答案部分中也提到了解决方案,但是如果您想更清楚一点(暴露出安全方面的副作用),这里是:Set GCS read-only public

原因我想继续使用API​​,因为它最好在移动应用程序中使用,我们无法将OAuth2.0分配给任何手机。但是,仍然找到一种方法来保护读取公共存储桶。

答案 2 :(得分:0)

我从Google Vision API收到了类似的JSON响应:

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

解决方法是将GCS文件的权限设置为公开读取:

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