我做错了什么,导致 Google Vision API 出现此错误

问题描述 投票:0回答:1

我收到了“打开文件时出错:gs://{gs-bucket-path}/{gs 存储桶文件夹路径} - 在 VS 代码中

我在 Postman 中尝试过,收到“打开文件时出错:gs://{gs-bucket-path}/{gs 存储桶文件夹路径}权限被拒绝。

我在该 OCR API 项目的项目下创建了一个服务帐户,我下载了 JSON 并确保在 PowerShell 中 GOOGLE_APPLICATION_CREDENTIAL 密钥/路径正确指向我下载的 JSON 文件。我已经设置了 API 密钥并尝试了 OAuth 2.0 凭据。

我对 API 的开发还很陌生,不得不处理 CRUD 和 JSON,但我已经学到了相当多的术语,但搞得一团糟。

我已在组织中的帐户下将权限设置为存储对象所有者 项目 IAM 管理员 项目推动者 存储管理员 存储文件夹管理 存储对象管理 存储对象创建者 存储对象查看器

还在项目下将服务帐户权限设置为存储对象创建者、存储对象查看者和存储对象用户将其作为所有者删除,因为我在另一篇文章中读到这不是一个好主意

我很困惑。

这是我来自邮递员的代码和我收到的错误

POST https://vision.googleapis.com/v1/files:asyncBatchAnnotate?key={{key}}这是我打电话的地方。

    {
  "requests": [
    {
      "inputConfig": {
        "gcsSource": {
          "uri": "gs://My-Path-To-My-GsBucket/My-Path-To-Folder&File.pdf"
        },
        "mimeType": "application/pdf"
        
      },
      "outputConfig": {
        "gcsDestination": {
          "uri": "gs://My-Path-To-Output-Folder/"
        },
        "batchSize": 1
      },
      "features": [
        {
          "type": "TEXT_DETECTION"
          
        }
        
      ]
      
    }

  ]
  
}

我得到的响应是“错误”:{ “代码”:403 “消息”:打开文件 { 我的路径} 时出错 “状态”:Permission_denied

google-cloud-platform permissions postman google-cloud-storage vision-api
1个回答
0
投票

服务帐户似乎没有访问该文件的权限,因此您需要设置适当的权限才能使用 PDF API(或涉及此文件的任何其他 API)。有关详细信息,请参阅此文档

尝试添加范围 googleapis.com/auth/cloud-platform(跨 Google Cloud Platform 服务查看和管理数据)。有关更多信息,请查看此Cloud Storage OAuth 2.0 范围

您在云存储中执行的大部分操作都必须经过身份验证。唯一的例外是对允许匿名访问的资源的操作。

授权是确定经过身份验证的身份对一组指定资源拥有哪些权限的过程。 OAuth 2.0 使用范围来确定经过身份验证的身份是否获得授权。应用程序使用凭证(从以用户为中心或以服务器为中心的身份验证流程中获取)以及一个或多个范围来从 Google 授权服务器请求访问令牌以访问受保护的资源。

亦如此处所述 此错误 (403) 表示用户未获得 Google Cloud Storage 授权来发出请求。

此错误的一个常见原因是存储桶权限(存储桶 ACL)未正确设置以允许您的应用程序访问。请参阅 Google 云存储身份验证,了解有关设置访问权限的信息。

如果您仍然遇到该问题,请考虑联系 [Google Cloud 支持5 进一步调查该问题。

© www.soinside.com 2019 - 2024. All rights reserved.