无法解决Cloud Vision错误:错误代码5,无法打开文件
问题:Cloud Vision访问GCS文件报错(错误代码5)
我在Node.js环境的Firebase模拟器及Firebase云HTTPS函数中,使用Cloud Vision处理GCS存储桶中的图片,代码如下:
const client = new vision.ImageAnnotatorClient() const request = { image: { source: { imageUri: `gs://${bucketName}/${file.name}` }, }, features: [ { type: "LABEL_DETECTION", maxResults: 50, }, { maxResults: 10, type: "FACE_DETECTION", }, { type: "LOGO_DETECTION", }, { maxResults: 10, type: "OBJECT_LOCALIZATION", }, { type: "SAFE_SEARCH_DETECTION", }, { type: "WEB_DETECTION", }, ], }; const [result] = await client.annotateImage(request); console.log("Result", result)
执行后返回错误:
error: {
details: [],
code: 5,
message: 'Error opening file: gs://myProjectID.appspot.com/File1/Screenshot 2023-06-19 at 11.38.07.png.'
}
找不到错误代码5的相关资料,求解决。
解决建议
- 检查权限配置:Cloud Vision的服务账号没有读取目标GCS文件的权限。找到Cloud Vision的默认服务账号(格式为
service-<项目编号>@gcp-sa-vision.iam.gserviceaccount.com),给它添加storage.objects.get权限,或者直接赋予Storage Object Viewer角色。 - 验证文件路径:确认
bucketName和file.name拼接后的路径与GCS中实际文件路径完全一致,注意文件名中的空格、特殊字符是否被正确处理。 - 排查模拟器环境:如果是在Firebase模拟器中测试,确认模拟器是否正确关联GCS资源,必要时手动配置服务账号密钥以获取足够的访问权限。
- 确认文件存在:检查GCS存储桶中是否确实存在该文件,排除路径拼写错误、文件被删除或移动的情况。
内容的提问来源于stack exchange,提问作者Coolkid
相关产品推荐
相关产品推荐

