<!-- AUTH_BOUNDARY -->
授权边界
本技能仅在自身定义范围内行动;任何超出本技能定义范围的操作(含发布、购买、安装依赖、修改账号、删除/破坏性操作)均须由你在独立、显式授权下另行发起。真实权限边界由工具层(工具白名单 / 权限模式 / 沙箱)强制;本条仅作默认行为定调与契约说明,不构成安全控制。
zfl-github-fast-download —— GitHub 国内加速下载
> 来源:2026-10-15 impeccable(81k star AI 设计技能包)实操复盘(案例见 references/case-impeccable-20261015.md)。
> 一句话方法论:先诊断直连是否真死 → 搞清楚真正要下载的是什么 → 按优先级换道 → 并行实测用数据选路 → 校验文件真伪 → 追查安装器的二段下载。
何时用
- GitHub 直连慢 / 超时 / 0 字节,
git clone或 Release 下载卡住; - npm/npx/pip 安装中途拉取平台二进制卡死;
- 需要找国内可用镜像 / 加速直链。
六步流程(顺序执行)
1. 诊断直连,而非反复重试
curl.exe -sS -L --connect-timeout 8 --max-time 12 -o NUL `
-w 'http=%{http_code} speed=%{speed_download}B/s size=%{size_download}B' '<目标URL>'
http=000/ 0 字节 → 直连不通,重试无意义,直接换道(第 2 步)。http=200但速度 < 50 KB/s → 先试断点续传curl -C -,仍慢再换道。
2. 确认真实下载物,别默认下整仓
读项目 README / 安装文档,区分三种形态(体积常差一个量级):
- git 整仓 / 整仓 zip:仅当需要源码、构建或完整历史;
- 包管理器官方包:用户要"安装/使用"时通常首选;
- 平台二进制:optionalDependencies / 平台子包(如 @xxx/cli-windows-x64)往往才是体积大头。
禁止无效动作(仍走 GitHub 直连):git clone 直连、/plugin marketplace add <repo>、浏览器直点 github.com 大文件。
3. 换道优先级
- 包管理器国内镜像(最稳:大厂 CDN、跟随官方更新)
- npm:registry.npmmirror.com;查包与真实体积:curl.exe -sS https://registry.npmmirror.com/<包名>/latest(看dist.tarball/dist.size)。安装加--registry=https://registry.npmmirror.com。
- PyPI:清华 TUNA / 阿里云镜像;Maven:maven.aliyun.com。 - 项目官网自有下载(自有 CDN,如文档提供的分平台 ZIP)。
- gh 加速代理前缀(公益服务,时效性强,必须实测+校验):用法 = 前缀 + 完整原始 URL(含
https://)。 - 其他:gitclone.com、gitee 导入、云主机中转。
4. 并行实测选路(别听口碑)
& <本技能目录>\scripts\test-mirrors.ps1 -Url '<完整目标URL>' [-MaxTime 12] [-DownloadTo '<保存路径>']
判读:
- http=200 且已传字节 > 10KB 才算真实路线;小体积 200 多为代理错误页,作废;
- 全部前缀失败 → 回第 3 步按优先级换路线(镜像/官网),别在代理里死磕;
- 代理站起落很快(小时级波动),结论只信当次实测;给用户的直链要标注当次实测速度与日期。
5. 校验下载物是真身
三项任一不符即作废该路线:
- HTTP 200 且体积与预期一致(对照 Content-Length 或 registry size);
- 魔数:zip = 50 4B 03 04(PK);tgz 用 tar -tzf 能列出;
- 解包抽查:条目数、关键目录/文件存在(如技能包的 SKILL.md)。
6. 追查安装器的二段下载(最易漏)
装完启动器 ≠ 完事。grep 安装脚本 / 启动器源码里的 https:// URL,找出运行期兜底下载源(常见:GitHub Releases),否则用户首次运行仍卡回 GitHub。对策(按优先级):
1. 平台二进制本身是 npm 包 → 让包管理器连它一起装(optionalDependencies 自动生效,兜底永不触发);
2. 用环境变量/参数把兜底 URL 改道代理。
验收(完成标准 · 二值化)
- [ ] 交付物:用户要的文件/包已下载到指定路径,且魔数+体积校验通过;
- [ ] 直链清单:含当次实测速度 + 日期标注;
- [ ] 安装器二段下载:已排查(无二段下载则显式说明"已读启动器源码,无运行期兜底 URL");
- [ ] 临时脚本/日志/下载物按所在工作区规则存放(QAXDownload 工作区:
_workbench\tools|logs|data)。
红线
- 不凭口碑/缓存结论选路线(代理站小时级起落,只信当次实测);
- 不以"HTTP 200"作为路线可用判据(必须叠加体积/魔数校验,小体积 200 是错误页);
- 不交付未校验文件(体积或魔数不符即作废换下一路线);
- 不默认下整仓(先读安装文档确认真实下载物)。
失败条件
- 全部代理 + 镜像不可达 → 停,报告用户"当次全路线不可达",建议:稍后重测(代理站起落快)/ 云主机中转 / gitee 导入,不自创绕过方案;
- 测速脚本自身报错(curl.exe 缺失)→ 降级为手动 curl 命令(见第 1 步)。
按需知识
- 完整实操案例(impeccable 2026-10-15,含实测数据表/校验过程/二段下载排查):
references/case-impeccable-20261015.md(grep: 案例)
约束
- 仅用于网络加速/镜像通道选择,不处理文件内容本身(解压失败/内容损坏超出本技能范围,转通用排障);
- 全部路线实测须在用户网络环境执行,代理可达性与速度小时级波动,禁止复用历史结论当次交付;
- 直链清单交付前必须叠加「当次实测速度 + 日期」标注,未校验直链不交付。
错误处理
- 全路线不可达(代理 + 镜像均失败)→ 停,显式报告"当次全路线不可达",给出建议:稍后重测 / 云主机中转 / gitee 导入,不自创绕过方案;
- 测速脚本依赖 curl.exe 缺失 → 降级为手动 curl 命令(第 1 步命令可直接执行);
- 代理返回小体积 200(错误页)→ 按第 5 步判据作废该路线,不交付;
- 校验(体积/魔数)失败 → 作废该路线换下一名,全部失败则走"全路线不可达"分支。
输出(格式/结构)
交付物 = ① 可用直链清单(含当次实测速度 + 日期 + 已校验标记);② 已下载并校验(体积+魔数)的文件;③ 安装器二段下载排查结论(有/无 + 对策)。
不适用场景(边界)
- 需要 git 历史/分支协作(本技能只给快照/包/二进制路线,协作场景走 git 常规流程);
- 目标源不在 GitHub 或 npm/PyPI 官方生态(自建私有 registry/制品库,按源自有镜像方案);
- 用户明确要"原样直连 GitHub 测真实速度"(诊断动作本身,不属换道需求)。
@see zfl-common/references/skill_contract_model.md(五层合同)
@see zfl-common/references/external_review_remediation_sop.md(grep: 外部审查整改)