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

如何使用GitHub CLI下载其他仓库工件并保存为正常Zip文件?

解决gh api下载GitHub工件时Zip文件损坏的问题

直接用gh api命令重定向生成Zip文件损坏的核心原因是:gh api默认会将响应内容当作文本处理,甚至会额外输出HTTP响应头元数据,这些冗余内容混入二进制文件后,直接破坏了Zip的结构。

下面是两种靠谱的解决方法:

方法一:使用--raw参数输出原始二进制内容

--raw参数会让gh api跳过文本解析,直接输出服务器返回的原始二进制响应体,这样重定向保存的文件就是完整可用的Zip包:

gh api /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/zip --raw > artifact.zip

替换命令里的{owner}、{repo}、{artifact_id}为你实际的仓库所有者、仓库名和工件ID即可。

方法二:指定Accept请求头配合--raw

如果需要明确告诉服务器返回二进制Zip格式,可以添加Accept请求头,再结合--raw参数:

gh api -H "Accept: application/zip" /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/zip --raw > artifact.zip

更简便的替代方案:用gh run download

其实GitHub CLI提供了专门的工件下载命令gh run download,如果你的工件属于某个特定的工作流运行,用这个命令更省心,不需要手动拼接API路径:

gh run download {run_id} --name {artifact_name} -D ./download_dir

这个命令会自动处理二进制文件的保存,不会出现损坏问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 16:39:54