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

如何使用googledrive::drive_upload()上传时不改变文件Google ID

问题原因

googledrive::drive_upload() 的 overwrite=TRUE 参数底层逻辑为先删除Drive中匹配到的同名文件,再上传全新文件,因此每次执行都会生成新的Google文件ID,自然会导致原有共享链接失效。

补充提示:你提供的示例代码中包名拼写存在笔误,正确包名为googledrive。

保留原ID的解决方法

要保留原有ID的同时覆盖文件内容,需使用googledrive包的drive_update()函数,该函数会直接替换目标文件的内容,不会修改文件ID,操作步骤如下:

  • 第一步:定位Drive中需要被覆盖的原有文件,获取其文件对象。推荐直接用已知的文件ID定位,避免同名文件匹配错误
  • 第二步:调用drive_update()执行内容覆盖,格式转换逻辑和你原有上传配置保持一致即可

代码示例

# 方式1:按文件名定位目标文件
target_file <- googledrive::drive_get(path = "My Presentation")

# 方式2:直接用原有文件ID定位,精准度更高
# target_file <- googledrive::drive_get(id = "替换为你的原有文件Google ID")

# 执行内容覆盖,文件ID保持不变
googledrive::drive_update(
  file = target_file,
  media = my_pres,
  type = "presentation"
)

注意:如果是首次上传还没有生成对应文件ID,可以先执行一次drive_upload()生成初始文件,记录好对应的ID,后续所有更新操作都使用drive_update()即可保证所有共享链接永久有效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:15:03