You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Curl从GitHub下载Zip文件失败的解决方法咨询

解决Curl下载GitHub ZIP文件仅得到小文件的问题

这种情况我太熟了——你下载到的根本不是目标ZIP包,而是GitHub跳转页面的HTML代码!原因很简单:浏览器会自动处理重定向,但curl默认不会,而GitHub的“下载ZIP”链接通常会先跳转到实际的文件存储地址。

下面是具体的解决步骤:

第一步:确认你用的是正确的ZIP直链

别直接复制浏览器地址栏的仓库网页链接,正确的做法是:

  • 打开GitHub仓库主页,点击顶部的「Code」按钮
  • 在弹出的菜单里,复制「Download ZIP」对应的链接(一般格式是https://github.com/<用户名>/<仓库名>/archive/refs/heads/<分支名>.zip,比如main分支就是main.zip

第二步:用带重定向参数的Curl命令下载

给curl加上-L参数,让它自动跟随GitHub的重定向请求,再用-O参数保留原文件名:

curl -L -O "你复制的正确ZIP直链"

举个实际例子,如果是octocat/Hello-World仓库的main分支ZIP包,命令就是:

curl -L -O "https://github.com/octocat/Hello-World/archive/refs/heads/main.zip"

额外情况:私有仓库的下载

如果是私有仓库,你需要用个人访问令牌(PAT)做认证,命令改成这样:

curl -L -u <你的GitHub用户名>:<你的个人访问令牌> -O "私有仓库的ZIP直链"

验证重定向(可选)

如果你不确定链接是否有重定向,可以先用-I参数查看响应头:

curl -I "你的ZIP链接"

如果输出里看到HTTP/2 302这类状态码,就说明必须加-L参数才能拿到真实文件。

要是担心网络不稳定,还可以加上--retry 3参数让curl自动重试3次:

curl -L --retry 3 -O "你的ZIP直链"

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

火山引擎 最新活动