2

从 Node 开始,我正在尝试使用 Google Cloud Vision API 来分析存储在 Google Storage 中的图像。我已经成功地对图像进行了 base64 编码并上传了它,但我想通过执行我在 Google 存储中的文件来加快这个过程。我的要求是这样的,

{“请求”:[{“图像”:{“源”:{“gcsImageUri”:“gs://mybucket/10001.jpg”}},“功能”:[{“类型”:“标签检测”,“最大结果“:10 } ] } ] }

但我从我的电话中收到了这个错误,

{ "responses": [ { "error": { "code": 7, "message": "image-annotator::User 没有权限。: ACCESS_DENIED: 匿名调用者没有 storage.objects.get 访问对象 mybucket/ 10001.jpg。” } } ] }

对于这个请求,我没有使用任何谷歌 SDK 或 node_modules,只是一个浏览器 API 密钥和 http 模块。我必须在 Cloud Storage 中设置一些权限以允许 Vision API 访问存储桶中的对象吗?如果是这样,那会是什么,我是 Google Cloud Platform 的新手,但在 AWS IAM 角色方面拥有丰富的经验。

谢谢,毒蛇

4

2 回答 2

5

您可能使用不公开可读的 GCS 图像匿名调用 Cloud Vision API。您可能会提供 API 密钥,但 API 密钥不会对请求进行身份验证。您可以通过以下两种方式之一解决此问题:

  1. 向 Cloud Vision API 发出经过身份验证的请求,以有权读取 GCS 文件的特定用户身份进行身份验证,或者

  2. 将 GCS 文件设置为允许匿名读取访问。您可以从控制台通过选中对象的“公共可读”复选框或使用命令行客户端来执行此操作,如下所示gsutil acl ch -g AllUsers:R gs://mybucket/10001.jpg

于 2016-02-26T22:11:31.240 回答
0

实际上有两种方法。第一种方法是1)打开你的谷歌云愿景的桶,会有一个名为“公开分享”的选项,并将你想要测试的文档标记为是。然后运行代码,你会得到所需的结果

于 2017-05-03T07:01:25.100 回答