使用gs://文件URI调用Google Cloud Document AI时遭遇3次INVALID_ARGUMENT: Document bytes or path is required错误的求助
解决Document AI使用GCS URI时的「INVALID_ARGUMENT」错误
嘿,我一眼就看出问题出在哪了——你用错了请求参数的字段!
核心原因
inlineDocument这个字段根本不是用来指定GCS文件路径的!它的作用是传递已经解析完成的Document对象结构(比如你之前处理过的文档输出结果),而要引用Google Cloud Storage上的文件,你需要用gcsDocument字段才行。这就是为什么你反复遇到Document bytes or path is required错误的原因。
正确的请求参数写法
把你的无效参数替换成下面这个版本,就能正常运行了:
const params = { "name":"projects/project_name/locations/us/processors/xxxx", "gcsDocument":{ "mimeType":"image/png", "gcsUri":"gs://bucket_name/demo-assets/file.png" } }
各字段的正确用途梳理
为了避免以后再踩坑,给你理清楚几个关键字段的区别:
rawDocument:就是你之前成功的用法,用来传递Base64编码的文件内容gcsDocument:专门用来引用GCS上的文件,必须用gcsUri指定路径inlineDocument:用于传入已经解析好的Document结构化数据,不是用来指向外部文件的
额外的权限小提醒
虽然你提到Document AI不需要显式设置GCS权限,但还是要确认一下你代码里用的服务账号(client_email对应的账号)有没有GCS存储桶的**存储对象查看者(roles/storage.objectViewer)**权限。默认情况下,这个权限可能不会自动赋予,要是后续遇到权限相关的报错,记得检查这一点。
内容的提问来源于stack exchange,提问作者redvivi
相关产品推荐
相关产品推荐

