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

无法将Google Drive共享文件夹导入Google Colab的问题求助

解决Google Drive文件夹通过gdown导入Colab时的访问拒绝问题

方案一:手动绕开病毒扫描验证(适合单个/少量文件)

Google会对部分文件强制病毒扫描,导致gdown无法自动获取文件链接。你可以先在浏览器打开文件夹内的文件(比如错误提示里的文件链接),手动完成验证,之后用文件ID单独下载:

import gdown
# 替换为目标文件的ID(可从文件链接或错误提示中提取)
file_id = "1SBHBGrwPYgqeNVOfnD6yLMN15Acos7BQ"
gdown.download(f"https://drive.google.com/uc?id={file_id}")

如果文件夹内文件较多,可先获取所有文件ID,再批量执行下载操作。

方案二:用Google Drive API授权访问(稳定且安全,适合多用户共享)

这个方法能让Colab仅访问指定共享文件夹,不会触及你的整个Drive:

  1. 去Google Cloud控制台创建项目,启用Drive API,生成服务账号密钥(JSON格式)。
  2. 将服务账号的邮箱地址添加为目标文件夹的共享成员(权限设为查看/编辑均可)。
  3. 在Colab中执行以下代码:
from pydrive2.auth import GoogleAuth
from pydrive2.drive import GoogleDrive
from google.colab import files

# 上传你的服务账号密钥JSON文件
uploaded = files.upload()

# 配置认证
gauth = GoogleAuth()
gauth.service_account_file = list(uploaded.keys())[0]
gauth.ServiceAuth()
drive = GoogleDrive(gauth)

# 替换为你的目标文件夹ID(从链接中提取:1BHpCP_P-x0jQ2ukEFktaeoD_5VkHAez_)
folder_id = "1BHpCP_P-x0jQ2ukEFktaeoD_5VkHAez_"
# 获取文件夹内所有文件
file_list = drive.ListFile({'q': f"'{folder_id}' in parents and trashed=false"}).GetList()

# 批量下载文件
for file in file_list:
    print(f"正在下载 {file['title']}...")
    file.GetContentFile(file['title'])

多用户使用时,只需共享Colab笔记本和服务账号密钥(或把密钥存到安全位置让用户自行加载)即可,完全不会暴露你的整个Drive。

方案三:压缩文件夹后下载(操作简单)

把目标文件夹压缩成ZIP包,能降低病毒扫描触发概率,操作步骤:

  1. 在Google Drive中右键点击目标文件夹,选择「压缩为ZIP文件」。
  2. 获取ZIP文件的ID,用gdown下载并解压:
import gdown
import zipfile

# 替换为你的ZIP文件ID
zip_file_id = "替换为ZIP文件的ID"
gdown.download(f"https://drive.google.com/uc?id={zip_file_id}")

# 解压ZIP包
with zipfile.ZipFile("文件名.zip", 'r') as zip_ref:
    zip_ref.extractall()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:10:43