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

如何在Google Colab/Python中绕过动态token下载GitHub仓库图片

GitHub仓库图片直连Colab的可行方案

以下方案均无需手动逐张获取临时raw链接,不需要处理随会话变动的token参数,可直接在Colab Notebook中运行:

方案1:拼接永久直链(单张/少量图片首选)

公开GitHub仓库的原始文件直链为固定格式,无需携带任何临时token,格式规则:

https://raw.githubusercontent.com/<GitHub用户名>/<仓库名>/<分支名(一般为main/master)>/<文件在仓库内的相对路径>

示例:仓库地址为https://github.com/test_user/img_dataset、主分支为main、根目录下存储1.jpg时,对应的永久直链为https://raw.githubusercontent.com/test_user/img_dataset/main/1.jpg,直接在Colab中调用wget即可下载:

!wget https://raw.githubusercontent.com/test_user/img_dataset/main/1.jpg

注意事项:

  • 你之前获取的带token的raw链接,是浏览器访问时生成的临时会话鉴权参数,公开仓库访问完全不需要这部分,直接删除?token=及之后的所有内容,得到的链接永久有效
  • 不要直接使用路径带/blob/的仓库前端展示页链接,这类链接返回的是网页内容而非文件本身,将链接域名从github.com替换为raw.githubusercontent.com,再删除路径中的/blob段,就能得到正确的文件直链

方案2:Git克隆全仓库(批量图片首选)

如果需要下载的图片数量较多,单张拼接链接效率低,可直接在Colab中克隆整个仓库,自动保留原有目录结构:

# 加--depth 1参数做浅克隆,仅拉取最新版本文件,下载速度更快
!git clone --depth 1 https://github.com/<GitHub用户名>/<仓库名>.git

命令执行完成后,仓库内所有文件会直接同步到Colab运行时的文件系统中,可直接按路径读取图片,无需额外执行下载操作。

方案3:GitHub API自动解析下载地址(兼容私有仓库)

如果仓库为私有,或需要动态获取文件路径,可调用GitHub官方Contents API自动解析文件下载地址,无需手动打开仓库页面找链接:

# 替换尖括号内的仓库信息即可,公开仓库无需额外配置
!wget $(curl -s https://api.github.com/repos/<用户名>/<仓库名>/contents/<文件相对路径>?ref=<分支名> | grep -o '"download_url": "[^"]*' | cut -d'"' -f4)

私有仓库场景下,只需在curl请求中添加个人GitHub Personal Access Token作为请求头即可,一次配置即可访问仓库内所有文件,无需逐张获取临时token。注意不要将token明文硬编码在代码中,可使用Colab内置的Secrets功能存储密钥,避免凭证泄露。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 13:15:35