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

Google Colab下载Google Drive特定版本文件遇OAuth及API问题求助

解决Google Colab下载Drive文件特定版本的问题

一、修复OAuth 2.0重定向不匹配问题

Colab是云端环境,run_local_server依赖本地端口的逻辑不适用,直接改用控制台授权模式绕开重定向限制:

from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build

# 只请求只读权限,最小化权限范围
SCOPES = ['https://www.googleapis.com/auth/drive.readonly']

flow = InstalledAppFlow.from_client_secrets_file('client_secrets.json', SCOPES)
# 用控制台模式替代本地服务器
credentials = flow.run_console()

drive_service = build('drive', 'v3', credentials=credentials)

运行后会输出一个授权URL,复制到浏览器打开,登录账号后拿到授权码,粘贴回Colab控制台即可完成认证,完全规避重定向URI的问题。

如果一定要用本地重定向,必须确保:

  • OAuth客户端类型是桌面应用(不是Web应用)
  • 在OAuth客户端设置里精确添加http://localhost:8081/(注意末尾斜杠要和请求一致)

二、正确调用Drive API下载特定版本

之前的file not found基本是参数使用错误,按以下步骤操作:

  1. 先通过文件ID获取所有版本列表,筛选出目标版本ID
  2. 下载时指定原文件ID和目标版本ID

完整代码示例:

file_id = '你的原文件ID'  # 从Drive文件URL中提取,格式如1ABCDEFGhijkLmnopQrstuvwxyz
# 获取文件所有版本
revisions = drive_service.revisions().list(fileId=file_id).execute()

# 筛选目标版本(可按修改时间、版本号自定义条件)
target_rev_id = None
for rev in revisions['revisions']:
    # 示例:筛选2024年5月20日修改的版本
    if '2024-05-20' in rev['modifiedTime']:
        target_rev_id = rev['id']
        break

# 下载目标版本到工作区
if target_rev_id:
    request = drive_service.files().get_media(fileId=file_id, revisionId=target_rev_id)
    with open('下载后的文件名', 'wb') as f:
        f.write(request.execute())
else:
    print("未找到匹配的目标版本")

三、无API替代方案:挂载Drive+临时版本恢复

不需要写复杂代码,通过网页版配合Colab挂载实现:

  1. 挂载Google Drive到Colab:
    from google.colab import drive
    drive.mount('/content/drive')
    
  2. 打开Drive网页版,找到目标文件→右键→管理版本,选中要下载的版本点击恢复
  3. 在Colab中复制恢复后的文件到工作区:
    cp /content/drive/MyDrive/文件路径/原文件名 /content/本地保存名
    
  4. 回到Drive网页版的版本管理界面,恢复回原来的最新版本即可

四、file not found问题排查要点

  • 确认文件ID正确:是Drive URL中https://drive.google.com/file/d/[文件ID]/view的中间部分
  • 确认授权Scope包含drive.readonly或drive(如果涉及版本修改)
  • 检查目标版本是否已过期:Drive普通版本保留30天,企业版可能延长,过期版本会被永久删除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:50:06