You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google服务账号与共享单元调用Drive API获取文件文件夹遇阻

解决Google Drive API查询共享单元文件返回空列表的问题

核心问题:缺失关键参数

你的调用缺少两个必须的参数,这是无法获取共享驱动器(Shared Unit)内容的主要原因:

  • includeItemsFromAllDrives=True:默认情况下API仅返回个人驱动器内容,必须显式开启该参数才能包含共享驱动器中的文件/文件夹。
  • supportsAllDrives=True:替代旧的supportsTeamDrives=True参数,声明客户端支持共享驱动器操作,确保API正确处理相关请求。

另外,你第二个调用的查询语法错误:parents in '{parent_folder}'格式不正确,正确写法应为'{parent_folder}' in parents。

修正后的代码示例

方式1:查询指定父文件夹下的内容

parent_folder = "你的父文件夹ID"
results = drive_service.files().list(
    q=f"'{parent_folder}' in parents",
    spaces='drive',
    includeItemsFromAllDrives=True,
    supportsAllDrives=True,
    fields='nextPageToken, files(id, name, mimeType)'  # 按需指定返回字段
).execute()

files = results.get('files', [])
print(files)

方式2:查询整个共享驱动器的根目录内容

如果需要获取共享驱动器根目录下的所有内容,可直接使用共享驱动器ID作为父ID:

drive_id = "0AOELwkzr21lFUk9VA"  # 从drives().list获取的共享单元ID
results = drive_service.files().list(
    q=f"'{drive_id}' in parents",
    spaces='drive',
    includeItemsFromAllDrives=True,
    supportsAllDrives=True,
    fields='nextPageToken, files(id, name, mimeType)'
).execute()

files = results.get('files', [])
print(files)

额外排查点

  • 验证ID准确性:检查父文件夹ID或共享驱动器ID是否复制正确,避免因ID错误导致无结果。
  • 处理分页逻辑:若共享单元内文件数量较多,首次调用可能仅返回部分内容,需通过nextPageToken循环获取全部文件。
  • 确认API版本:确保使用Google Drive API v3版本,v2版本的参数逻辑与v3不兼容。

内容的提问来源于stack exchange,提问作者Godoy32

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 09:46:02