google云视觉api快速启动错误打开文件
google cloud vision api quickstart error opening file
我正在关注以下 Google Cloud Vision 快速入门:
https://cloud.google.com/vision/docs/quickstart
这是使用 API 资源管理器,我得到
Error Opening File
我创建了一个名为 vision2018 的存储桶,并为该文件选中了公开共享。
我的请求中与文件相关的部分是:
"image":
{
"source":
{
"imageUri":"gs://vision2018/demo-image.jpg"
}
}
我得到的回复是:
{
"responses": [
{
"error": {
"code": 5,
"message": "Error opening file: gs://vision2018/demo-image.jpg\"."
}
}
]
}
}
我需要指定什么才能访问我的 GCP 存储中的文件?
或者,我阅读了其他关于 GOOGLE_APPLICATION_CREDENTIALS、简单 API 键和 "Create Service account key and download the key in JSON format" 的 Stack Overflows,但这些似乎是在 shell,这个快速入门甚至没有打开。
在快速启动之前是否假设了初始设置?
我还没准备好从代码
调用api
您可能需要仔细检查您的请求。我转到快速入门,将占位符 imageUri 替换为 gs://vision2018/demo-image.jpg
,它工作得很好。如果您改用 gs://vision2018/demo-image.jpg\"
,则会显示您发布的错误消息。
关于你问题的第二部分:这些是uthentication methods。在这种特殊情况下,在 Authentication 下,您会找到一个下拉菜单,您可以在其中选择 API 密钥和 Google OAuth 2.0。如果您选择前者,则无需执行任何操作,因为演示密钥仅用于快速入门。如果您选择 OAuth 2.0,将出现一个弹出窗口,提示您使用 google 帐户进行身份验证。总而言之,您需要做的就是按照快速入门中给出的说明一步步进行。
最后我调查了到底发生了什么。问题是您的 API 令牌仅授予处理图像的权限(允许使用 OCR 引擎的权利),但 API 也不适用于访问 GS 中的对象。
因此"message": "Error opening file:
问题与此类似 post:Authorize Google Cloud Vision API to Google Storage image 可能错误消息比很多年前有点愚蠢。
答案部分也提到了解决方案,但如果你想要更清楚的东西(暴露安全副作用),这里是:Set GCS read-only public
我想继续使用 API 的原因是它更适合在移动应用程序中使用,我们不能将 OAuth2.0 提供给任何 phone。但是,仍然想办法保护 read-public 存储桶。
我收到了来自 Google Vision API 的类似 JSON 回复:
"error": {
"code": 7,
"message": "Error opening file: gs://bucket/file.jpg."
}
修复方法是将 GCS 文件的权限设置为 public-read:
gsutil acl set public-read gs://bucket/file.jpg
我正在关注以下 Google Cloud Vision 快速入门:
https://cloud.google.com/vision/docs/quickstart
这是使用 API 资源管理器,我得到
Error Opening File
我创建了一个名为 vision2018 的存储桶,并为该文件选中了公开共享。 我的请求中与文件相关的部分是:
"image":
{
"source":
{
"imageUri":"gs://vision2018/demo-image.jpg"
}
}
我得到的回复是:
{
"responses": [
{
"error": {
"code": 5,
"message": "Error opening file: gs://vision2018/demo-image.jpg\"."
}
}
]
}
}
我需要指定什么才能访问我的 GCP 存储中的文件?
或者,我阅读了其他关于 GOOGLE_APPLICATION_CREDENTIALS、简单 API 键和 "Create Service account key and download the key in JSON format" 的 Stack Overflows,但这些似乎是在 shell,这个快速入门甚至没有打开。 在快速启动之前是否假设了初始设置?
我还没准备好从代码
调用api您可能需要仔细检查您的请求。我转到快速入门,将占位符 imageUri 替换为 gs://vision2018/demo-image.jpg
,它工作得很好。如果您改用 gs://vision2018/demo-image.jpg\"
,则会显示您发布的错误消息。
关于你问题的第二部分:这些是uthentication methods。在这种特殊情况下,在 Authentication 下,您会找到一个下拉菜单,您可以在其中选择 API 密钥和 Google OAuth 2.0。如果您选择前者,则无需执行任何操作,因为演示密钥仅用于快速入门。如果您选择 OAuth 2.0,将出现一个弹出窗口,提示您使用 google 帐户进行身份验证。总而言之,您需要做的就是按照快速入门中给出的说明一步步进行。
最后我调查了到底发生了什么。问题是您的 API 令牌仅授予处理图像的权限(允许使用 OCR 引擎的权利),但 API 也不适用于访问 GS 中的对象。
因此"message": "Error opening file:
问题与此类似 post:Authorize Google Cloud Vision API to Google Storage image 可能错误消息比很多年前有点愚蠢。
答案部分也提到了解决方案,但如果你想要更清楚的东西(暴露安全副作用),这里是:Set GCS read-only public
我想继续使用 API 的原因是它更适合在移动应用程序中使用,我们不能将 OAuth2.0 提供给任何 phone。但是,仍然想办法保护 read-public 存储桶。
我收到了来自 Google Vision API 的类似 JSON 回复:
"error": {
"code": 7,
"message": "Error opening file: gs://bucket/file.jpg."
}
修复方法是将 GCS 文件的权限设置为 public-read:
gsutil acl set public-read gs://bucket/file.jpg