6

我已将一些测试图像上传到 Google Cloud Bucket,但不想公开它们(这会作弊)。当我尝试为 Google Vision API 运行休息调用时,我得到:

{
  "responses": [
    {
      "error": {
        "code": 7,
        "message": "image-annotator::User lacks permission.: Can not open file: gs://images-translate-156512/P1011234.JPG"
      }
    }
  ]
}

启用 Google Vision API 访问同一项目中的 Google Cloud Storage 对象的步骤是什么?目前,我在试验 Google Vision 时只使用 API 密钥。我怀疑可能需要服务帐户和 GCS 对象上的 ACL。

我可以完全绕过 GCS 并对图像进行 base64 编码并将其发送给 Google Vision API,但我真的很想尝试解决这个用例。尚未使用 ACL 或服务帐户。

任何帮助表示赞赏

4

1 回答 1

3

API 密钥不用于授权。它们用于您要指定应为某个操作计费的项目以及应使用哪个项目的配额的情况,但它们不会将您作为任何特定实体进行身份验证。

为了将 Cloud Vision API 与非公共 GCS 对象一起使用,您需要发送 OAuth 身份验证信息以及您对有权读取 GCS 对象的用户或服务帐户的请求。

授权是一个复杂的话题。我建议使用 gcloud 命令行实用程序进行临时实验或使用 Google Cloud 客户端库来开发您正在使用的语言。

谷歌在这里有一个授权指南:https ://cloud.google.com/docs/authentication

于 2017-02-08T23:56:26.283 回答