2

我已经将一些测试图片上传到Google Cloud Bucket,但不想让它们公开(这会是作弊)。当我试图运行一个休息呼吁谷歌视觉API获取:如何让Google Vision API在同一个项目中访问Google云端存储分区

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

什么是使谷歌愿景API同一个项目中访问谷歌云存储服务对象的步骤是什么?目前,我在使用Google Vision时只使用API​​密钥。我怀疑可能需要服务帐户和GCS对象上的ACL。

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

任何帮助赞赏

回答

2

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

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

授权是一个复杂的话题。我建议使用点对点实验或为正在开发的语言谷歌云客户端库gcloud指令行实用程序

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

+0

所以我创建服务帐户并在存储桶级别为其分配ACL?此服务帐户是否需要与Google Vision API或Google Storage保持一致? – smackenzie

+0

链接声明所有Google Cloud API都需要验证,但我只是发送API密钥才能访问Google Vision? – smackenzie

+1

服务帐户并非绝对必要;您也可以使用自己的帐户拨打电话。如果您确实想要使用服务帐户,则需要为GCS存储桶授予读取权限。 –

相关问题