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

Python上传Zip文件至Team Google Drive异常:文件误传至个人Drive的问题求助

解决方案:上传文件到Google团队Drive而非个人Drive

我来帮你排查这个问题,看了你的代码后发现几个关键的地方需要调整,这些应该就是导致文件跑到个人Drive的原因:

1. 修正Metadata中Parents参数的格式

你当前的parents参数用了包含对象的数组,这不符合Drive API的要求。正确的写法是直接传入目标文件夹的ID字符串数组,同时需要单独指定团队Drive的driveId字段:

para = {
    "name": file,
    "parents": ["{FOLDER_ID}"],  # 直接填写目标团队文件夹的ID字符串
    "driveId": "{TEAM_DRIVE_ID}",  # 添加团队Drive的ID
    "supportsAllDrives": True  # 明确声明支持团队Drive操作
}

2. 在请求URL中添加supportsAllDrives=true参数

默认情况下,Drive API不支持团队Drive(Shared Drive)的操作,你必须在请求URL里显式加上这个参数,否则API会忽略团队Drive的相关配置,默认上传到个人Drive:

upload = requests.post(
    "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&supportsAllDrives=true",
    headers=headers, files=files_for_upload
)

3. 修正文件上传的格式

你当前的file字段格式有误,第一个参数应该是文件名,而不是MIME类型。正确的格式是:(文件名, 文件对象, MIME类型):

files_for_upload = {
    'data': ('metadata', json.dumps(para), 'application/json; charset=UTF-8'),
    'file': (file, open("./" + file, "rb"), 'application/zip')  # 修正顺序:文件名在前,然后是文件流,最后是MIME类型
}

额外排查点

  • 确认你的OAuth授权scope包含https://www.googleapis.com/auth/drive(读写权限),如果之前只请求了只读权限,即使有文件夹权限也无法上传。
  • 再次验证{TEAM_DRIVE_ID}和{FOLDER_ID}是否正确,避免复制错误的ID。

调整完这些后,重新运行代码应该就能把文件上传到指定的团队文件夹里了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 01:27:31