我已将一些测试图片上传到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云端存储对象的步骤是什么?目前,我在使用Google Vision时只使用API密钥。我怀疑可能需要服务帐户和GCS对象上的ACL。
我可以完全绕过GCS并对base64进行编码并将其发送给Google Vision API,但我真的想尝试解决这个用例。尚未使用ACL或服务帐户。
任何帮助表示赞赏
答案 0 :(得分:3)
API密钥不用于授权。它们用于您要指定哪个项目应为某个操作计费以及应该使用哪个项目的配额的情况,但它们不会将您作为任何特定实体进行身份验证。
为了将Cloud Vision API与非公共GCS对象一起使用,您需要发送OAuth身份验证信息以及您对有权读取GCS对象的用户或服务帐户的请求。
授权是一个复杂的主题。我建议使用gcloud命令行实用程序进行临时实验,或者将Google Cloud客户端库用于您正在开发的语言。
Google在此处提供授权指南:https://cloud.google.com/docs/authentication