res-downloader 下载卡在 99%?按网络、文件、磁盘 3 层逐项排除下载失败
【免费下载链接】res-downloader视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载!项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader
进度条走到 99% 后不再动弹,最后弹出一句task 0 failed after 3 attempts——res-downloader 下载失败大多出在三处:网络链路不稳、分片策略不适配、或本地磁盘写不进去。接下来用排除法,从网络层 → 文件层 → 磁盘层逐层定位,知道卡在哪一层,再做对应的那一处修改。
一、先把失败定位到具体一层
遇到 res-downloader 卡 99% 的情况,按由外向内的顺序排除:先看网络层,再看文件策略层,最后看磁盘层。日志里的报错就是定位信号:
- 网络层:出现
task 0 failed after 3 attempts: read response failed。判断依据:数据流传到一半中断,属于网络链路不稳或服务端限流,不是文件本身出错。 - 文件策略层:出现
server does not support range requests, status: 200。判断依据:这个服务器不接受"按字节区间取文件",分片下载这条策略对它不适用。 - 磁盘层:出现
write file failed at offset …: no space left on device。判断依据:数据写本地磁盘时失败,该怀疑磁盘空间不足或保存目录不可写。
排除到具体层之后,对照下面对应项操作。
二、逐项排查与修复
调大任务数,给断掉的段留足重试空间
触发条件:日志出现task 0 failed after 3 attempts: read response failed,进度停在 99% 不再前进。
操作:在设置页把任务数调大。任务数对应字段TaskNumber,默认是 CPU 核数 ×2,定义在 core/config.go。分片下载会把文件切成多段并行下载,每段独立重试;重试上限和间隔是固定常量,写在 core/downloader.go 顶部:
MaxRetries = 3 // 最大重试次数 RetryDelay = 3 * time.Second // 重试延迟如果某段重试 3 次仍失败,程序会自动降级为单段整文件重新下载,属于预期行为。
验收:✅ 做完后你应该看到:日志中Task 0 failed (attempt 1/3)出现后隔 3 秒自动重试,进度条从 99% 继续走到 100%。
检查保存目录与磁盘空间
触发条件:出现write file failed at offset …: no space left on device,或文件下到一半打不开。
操作:确认保存目录SaveDirectory(默认~/Downloads,定义在 core/config.go)所在磁盘有空余空间,且当前账号有写入权限;空间不足先清理,或把保存目录改到空间足够的磁盘。
验收:✅ 做完后你应该看到:再次下载不再出现write file failed,文件完整出现在保存目录中。
源不支持分片时,改走整段下载
触发条件:出现server does not support range requests, status: 200。
操作:是否自动分段由服务端响应决定——只有返回Accept-Ranges: bytes且文件大于 1MB 才会分段,判断逻辑在 core/downloader.go 的createDownloadTasks。遇到这类源,把任务数调回 1 走单段整文件下载即可。
验收:✅ 做完后你应该看到:日志不再出现该报错,进度条按整段平滑走到 100%,文件可正常播放。
三、边界情况速查
主流程之外还有三个高频边界情况,也是 res-downloader 排查指南里最常见的死角:
- 大文件 + 弱网:分段越多越容易单段中断。最小改动:把
TaskNumber调大(如 8),每片更小,断流后重下成本更低。 - 拦截不到、提示"不是私密链接":多半是证书未正确安装。Mac 打开终端,粘贴执行下面命令,看到"安装完成"后重启软件:
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /Users/$(whoami)/Library/Preferences/res-downloader/cert.crt && touch /Users/$(whoami)/Library/Preferences/res-downloader/install.lock && echo "安装完成"- 证书装了仍提示未安装:最小改动:确认证书位于"受信任的根证书"(上面命令已一并处理),并检查系统代理指向
127.0.0.1:8899。
| 报错关键词 | 动作 | 预期结果 |
|---|---|---|
task N failed after 3 attempts | 调大任务数,或换稳定网络 | 进度走完,不再卡 99% |
server does not support range requests | 任务数调回 1,走整段下载 | 按整段走到 100% |
write file failed …: no space left | 清理磁盘或改保存目录 | 文件正常落盘 |
| 提示"不是私密链接" | 安装并信任证书,确认代理127.0.0.1:8899 | 资源列表能抓到资源 |
整体思路:先分清失败发生在网络、分片策略还是磁盘,再对相应层做最小改动。证书与代理的其他情况见 docs/troubleshooting.md,资源获取步骤对照 docs/examples.md,环境问题按 docs/installation.md 处理。保持软件更新到最新版,很多 res-downloader 下载不完整的问题在新版本里已经修复。
【免费下载链接】res-downloader视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载!项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考