如何通过Google Drive Files API获取文件夹中全部文件(含二进制文件)
解决Google Drive Files API无法返回共享驱动器中二进制文件的问题
核心问题原因
默认API请求参数未适配共享驱动器访问规则,导致共享驱动器内的非text/plain文件未被返回。
具体解决方案
- 强制开启共享驱动器支持:API请求必须添加
supportsAllDrives=true参数,默认该参数为false,会直接过滤共享驱动器内的部分文件。 - 调整数据范围参数
corpora:- 仅查询目标共享驱动器:设置
corpora=drive,同时补充driveId=你的共享驱动器ID参数; - 查询所有有权访问的驱动器(含个人和共享驱动器):设置
corpora=allDrives。
- 仅查询目标共享驱动器:设置
- 简化查询语句:保留原查询条件
"1B8sn6MYwJdv6pnBYVxMltL7xHv2gwrf8" in parents and trashed = false即可,无需额外添加MIME类型过滤——Google Drive对二进制文件的MIME识别可能存在差异,多余的MIME条件会导致文件被误排除。 - 确认授权范围:确保API授权令牌包含
https://www.googleapis.com/auth/drive或https://www.googleapis.com/auth/drive.readonly权限,权限不足会限制文件获取范围。
请求示例(GET)
GET https://www.googleapis.com/drive/v3/files?q="1B8sn6MYwJdv6pnBYVxMltL7xHv2gwrf8"+in+parents+and+trashed%3Dfalse&supportsAllDrives=true&corpora=drive&driveId=XXXXX&includeItemsFromAllDrives=true
内容的提问来源于stack exchange,提问作者Bill Hess
相关产品推荐
相关产品推荐

