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

如何使用Python替换Google Drive中同ID的现有文件

问题原因

你当前使用的POST /upload/drive/v3/files接口是Google Drive API的新建文件接口,按照REST接口设计规则,这个接口永远会生成带全新ID的文件,不可能实现同ID覆盖,和你传什么参数没有关系。

实现同ID覆盖的修改方案

要保留原文件ID替换内容,只需要调整3处配置即可,核心的multipart上传结构不需要改动:

  • 将请求方法从POST改为PATCH,这是Drive API规定的更新现有文件的请求方法
  • 在请求URL中追加你要覆盖的目标文件ID,接口路径格式为/upload/drive/v3/files/{目标文件ID}
  • 元数据参数para如果不需要修改文件名、描述等属性,可以直接留空,不需要额外传ID字段
修改后的可运行代码
import json
import requests

# 替换成你自己的有效鉴权Token
headers = {"Authorization": "Bearer 你的实际Token"}
# 替换成你要覆盖的目标文件ID
TARGET_FILE_ID = "这里填你要保留ID的原有文件的ID"

para = {
    # 如果不需要修改文件名,这行可以删掉,会保留原文件名
    "name": "video1.mp4",
}

files = {
    'data': ('metadata', json.dumps(para), 'application/json; charset=UTF-8'),
    'file': open("./video1.mp4", "rb")
}

r = requests.patch(
    # 注意URL里拼接了目标文件ID
    f"https://www.googleapis.com/upload/drive/v3/files/{TARGET_FILE_ID}?uploadType=multipart",
    headers=headers,
    files=files
)
print(r.text)
可选配置

如果你不希望Drive自动清理旧的修订版本,可以在URL后追加参数keepRevisionForever=true,修改后的URL为:
f"https://www.googleapis.com/upload/drive/v3/files/{TARGET_FILE_ID}?uploadType=multipart&keepRevisionForever=true"

注意:使用的鉴权Token必须拥有目标文件的编辑权限,否则接口会返回403权限不足错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 06:39:23