授权 Google Cloud Vision API 使用 Google Storage 映像

Vip*_*per 2 google-cloud-storage google-cloud-platform google-vision

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

{ "requests":[ { "image":{ "source": { "gcsImageUri": "gs://mybucket/10001.jpg" } }, "features":[ { "type":"LABEL_DETECTION", " maxResults":10 } ] } ] }

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

{“响应”:[{“错误”:{“代码”:7,“消息”:“图像注释器::用户缺乏权限。:ACCESS_DENIED:匿名调用者没有storage.objects.get访问对象mybucket/ 10001.jpg。” } } ] }

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

谢谢,毒蛇

Bra*_*ugh 5

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

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

  2. 设置 GCS 文件以允许匿名读取访问。您可以从控制台通过检查对象的“公开可读”复选框,或者通过使用命令行客户端这样做:gsutil acl ch -g AllUsers:R gs://mybucket/10001.jpg