res-downloader 下载失败快速自查:分片断流、磁盘写满与证书拦截的 4 层定位
res-downloader 下载失败快速自查分片断流、磁盘写满与证书拦截的 4 层定位【免费下载链接】res-downloader视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载!项目地址: https://gitcode.com/GitHub_Trending/re/res-downloaderres-downloader 下载失败多半不是文件坏了而是卡在传输、写盘、协议或拦截某一层。它靠系统代理抓包把视频号、抖音、m3u8、直播流这些资源筛出来存到本地下完还会逐个分片做校验。这篇按传输层 → 写盘层 → 协议层 → 拦截层四层拆开带你自己排查、自己修好、自己验证而不是凭感觉反复点重试。res-downloader 的下载失败排查思路就是先把现象归到某一层再只动那一层的开关改完用同一个资源复现看是否消失。下载失败先归位分清是传输、写盘、协议还是拦截先别改任何东西把界面上的报错认出来基本就知道该怀疑哪一层task 0 failed after 3 attempts: read response failed: …流传到一半断了问题在传输层网络抖、服务端限流。write file failed at offset …: no space left on device写本地磁盘时失败问题在写盘层磁盘满、权限、目录。server does not support range requests, status: 200源不接受按字节区间取文件问题在协议层分片策略不适用。列表里根本看不到资源、或提示链接不是私密链接问题在拦截层证书没装对、代理没走127.0.0.1:8899。四层互不重叠一次只动一层改完用同一个资源复现。网络这层排除后再看本地能不能把数据落到盘上。传输层断流调连接数让断掉的分片自动补下断流的标志是日志里反复出现Task N failed (attempt 1/3)最后收敛成task N failed after 3 attempts: read response failed: …。这里的3 次和3 秒是写死的常量在 core/downloader.goMaxRetries 3 // 最大重试次数 RetryDelay 3 * time.Second // 重试延迟重试救不回来多半是某一片的链路一直不稳。做法是把分片切得更小文件被切得越多单片断了只需补一小段而不是整段重来。分片数由设置里的连接数字段TaskNumber默认 CPU 核数 × 2界面范围 2–64决定在 frontend/src/views/setting.vue 里调整。另外分片失败后程序会自动降级为单段整段下载core/downloader.go 里startDownload的RetryOnError分支所以断流经常看着失败、实则偷偷改成整段又下完了——如果你看到最终成功了但很慢就是这个降级在兜底。 怎么验证把TaskNumber调大比如 8重新下同一个资源进度不再卡 99%日志里Task N failed出现后自动重试并继续走最终落盘。磁盘这层排除后就要看这个源到底允不允许按段取文件。写盘层没落地no space left on device 指向保存目录与磁盘write file failed at offset …: no space left on device出现在 core/downloader.go 的doDownloadTask写文件处File.WriteAt。它说明数据已经下到内存只是写不进本地。逐项排除磁盘空间SaveDirectory所在分区是否还有余量。目录能否写保存目录是否只读、是否被占用。路径权限程序会os.MkdirAll自动建父目录但父路径权限不对也会失败。保存目录字段是SaveDirectory默认~/Downloads定义在 core/config.go在设置界面保存目录里换一个有空间、能写的路径即可。验证再下一次不再弹no space left on device文件正常出现在新目录里。磁盘没问题的话就要看这个源到底支不支持分片。协议层不让分段server does not support range requests 改走整段分片的前提是服务端答应按字节区间给文件。在 core/downloader.go 的init里只有当响应头Accept-Ranges: bytes且文件大于MinPartSize1MB时才会开启IsMultiPart分段否则直接单段。如果服务端其实不认 Range却已按分段发了请求就会在doDownloadTask里撞出server does not support range requests, status: 200返回的不是206 Partial Content。对策是别硬上多段把连接数TaskNumber调小让程序走单段整段下载或者干脆让它降级上一节提到的RetryOnError分支会自动转整段。小文件≤1MB本来就不会分段这个报错通常只在大文件上出现。验证日志不再出现server does not support range requests进度条按整段一路走到 100%verifyDownload的task N not completed也不再来。源能不能分段之外还有一种失败是压根没抓到资源下面单独说。拦截层没抓到证书与代理 127.0.0.1:8899res-downloader 靠系统代理抓包默认监听127.0.0.1:8899core/config.go 里Host/Port的默认值。如果列表里看不到任何资源、或分享出去提示链接不是私密链接基本是 HTTPS 没被正确解密——即证书没装到受信任的根证书或系统代理没指向127.0.0.1:8899。Mac 手动把证书装进系统钥匙串详见 docs/troubleshooting.mdsudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /Users/$(whoami)/Library/Preferences/res-downloader/cert.crt装上后确认系统代理走127.0.0.1:8899再复现一次抓取动作。四层都对照过还卡住下面这张清单按层归位直接对着默认值改。还卡住的话按层归位的自查清单与默认值层先看哪条信息动哪个字段/常量默认值传输层read response failed/task N failed after 3 attemptsTaskNumber连接数CPU 核数 × 2写盘层no space left on deviceSaveDirectory~/Downloads协议层does not support range requestsTaskNumber调小 / 整段MinPartSize1MB 才触发分段拦截层列表为空 / 不是私密链接证书 代理127.0.0.1:8899Host127.0.0.1/Port8899✅ 逐项对照改完仍不行就更新到最新版本重试——分片与校验逻辑还在持续调整很多下载失败在新版本里已被修掉。证书、代理等更细的排障看 docs/troubleshooting.md资源获取步骤参考 docs/examples.md。【免费下载链接】res-downloader视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载!项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →