Google Drive API无法列出文件夹内文件(文件实际存在)
问题分析与解决方法
核心错误点
- 父文件夹ID误用:第二个查询中,你定义了目标文件夹ID
folder_id = "6789",但实际筛选时仍使用了上级文件夹的parent_folder_id,导致查询范围错误。 - MIME类型筛选错误:
application/vnd.google-apps.file并非Google Drive中标准的文件MIME类型,实际文件(如图片、文档)都有各自专属的MIME类型,这个条件会直接排除所有真实存在的文件。
修正后的代码
import requests headers = { "Authorization": GCP_ACCESS_TOKEN, "Content-Type": "application/json" } # 第一步:获取目标文件夹ID(原逻辑正确,保留) parent_folder_id = "12345" folder_name = "photos" query = f"name='{folder_name}' and '{parent_folder_id}' in parents and mimeType='application/vnd.google-apps.folder' and trashed=false" params = { "q": query, "fields": 'files(id)' } response = requests.get("https://www.googleapis.com/drive/v3/files", headers=headers, params=params) folder_id = response.json()['files'][0]['id'] print(f"目标文件夹ID:{folder_id}") # 第二步:获取目标文件夹内所有文件ID(修正后) query = f"'{folder_id}' in parents and trashed=false" params = { "q": query, "fields": 'files(id)' } response = requests.get("https://www.googleapis.com/drive/v3/files", headers=headers, params=params) print(response.json())
额外适配说明
- 若仅需筛选非Google原生文件(如本地上传的图片、PDF),可添加MIME类型排除条件:
query = f"'{folder_id}' in parents and not mimeType contains 'application/vnd.google-apps.' and trashed=false" - 若文件夹内文件数量超过100个,需使用
pageToken参数实现分页查询,避免结果截断。
内容的提问来源于stack exchange,提问作者Dinesh Sonachalam
相关产品推荐
相关产品推荐

