Colab中使用wget下载Google Drive压缩包文件不完整问题求助
问题原因
你下载得到的90KB文件并非目标压缩包,而是Google账号登录页面的HTML源码。从wget返回日志可以看到,请求Google Drive链接后返回了302跳转响应,直接跳转到了Google账号登录页,最终你保存的temp0.tar.gz实际是登录页的静态资源,所以体积不符也无法解压。
触发该问题的核心原因是Google Drive的普通预览链接(open?id=格式)并非文件直链,且wget未携带你Google账号的访问凭证,无权直接访问非公开共享的文件,被Drive拦截后跳转至登录流程。
你的操作错误点
- 直接使用wget请求Google Drive的网页预览链接,没有适配Google Drive专属的文件下载校验机制
- 未给wget配置对应Google账号的访问Cookie或凭证,无法通过Drive的文件访问权限校验
Colab环境下的正确解决方案
方案1:挂载Google Drive(最便捷,适合同账号操作)
直接在Colab中挂载你存储压缩包的Google Drive,无需额外下载操作,代码如下:
from google.colab import drive # 执行后按提示完成账号授权即可 drive.mount('/content/drive')
挂载完成后直接将压缩包复制到Colab工作目录,再解压即可:
!cp /content/drive/MyDrive/你的压缩包存储路径/temp0.tar.gz /content/ !tar -zxvf /content/temp0.tar.gz
方案2:使用gdown直接下载(适合公开共享文件)
先在Google Drive中将temp0.tar.gz的共享权限设置为「知道链接的所有人可查看」,再用Colab预装的gdown工具下载,该工具会自动处理Google Drive的跳转校验逻辑,无需手动处理凭证:
!gdown 1lmGFLXtkvhucF033MmBW9yNiAaEgk4_d
下载完成后直接执行解压命令即可。
内容的提问来源于stack exchange,提问作者Alan Johnstone
相关产品推荐
相关产品推荐

