【问题标题】:How to enable Google Vision API to access Google Cloud Storage Bucket within same project如何启用 Google Vision API 在同一项目中访问 Google Cloud Storage Bucket
【发布时间】:2017-06-26 19:23:29
【问题描述】:

我已将一些测试图像上传到 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 或服务帐户。

任何帮助表示赞赏

【问题讨论】:

    标签: google-cloud-storage google-cloud-vision google-vision


    【解决方案1】:

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

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

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

    Google 在此处提供授权指南:https://cloud.google.com/docs/authentication

    【讨论】:

    • 所以我创建了一个服务帐户并在存储桶级别为其分配了 ACL?此服务帐户是否需要与 Google Vision API 或仅与 Google Storage 保持一致?
    • 该链接指出所有 Google Cloud API 都需要身份验证,但我只是发送一个 API 密钥来访问 Google Vision?
    • 服务帐户不是绝对必要的;您也可以使用自己的帐户拨打电话。如果您确实想使用服务帐号,则需要授予它对 GCS 存储桶的读取权限。
    • @smackenzie 你做到了吗?我和你有同样的问题
    • 检查以确保读取对象的帐户(可能不是您的帐户)具有读取权限。如果您想彻底检查这是与云存储相关的权限问题,您可以尝试使对象公开可读。
    猜你喜欢
    • 2019-10-11
    • 1970-01-01
    • 2019-12-30
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多