dsh-multithread-downloader
Verifieddsh-multithread-downloader · v1.0.1 · MIT · Web UI
多线程分片 HTTP/HTTPS 下载器(DSH 插件):Host 端分片并发、断点续传、请求头、镜像、校验、限速与 Agent 工具。
Install
dsh plugin add dsh-multithread-downloader Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Creators
Readme
多线程下载器(DSH 插件)
Host 端用 HTTP Range 分片并发下载,Web GUI 提供侧边栏面板、对话进度条与未完成计数;同时向 agent 注册 downloader 工具和 multithread-downloader 技能。
安装
在 DSH 插件管理里把本包作为 bundle 安装(本地目录或 registry 包),重启/热重载后生效。
- 包名:
dsh-multithread-downloader - 最低 DSH:
>=0.2.1-rc.2 - Node:
>=20
兼容性
只支持 HTTP/HTTPS 直链。FTP/SFTP、BT、浏览器接管、代理、HLS/DASH 均为非目标,详见“限制与非目标”。
功能
自定义请求头(Cookie / Referer / Authorization),401/403 给出明确提示
分片指数退避重试、请求超时、镜像回退、批量 URL
SHA-256 校验与下载前磁盘空间检查
全局限速与同时任务数(超额排队)
未完成任务持久化,插件重载/DSH 重启后以暂停状态恢复
HTTP/HTTPS 分片并发下载,服务器不支持 Range 时自动回退单连接
暂停 / 续传 / 取消 / 移除;续传前校验大小、ETag、Last-Modified,远端变化则从头下载
服务器中途忽略 Range 时自动降级为单连接重下
面板目录选择:Windows 使用随包原生助手调资源管理器同款
IFileOpenDialog(自定义标题、owner 置前);Electron 宿主优先用 Electron 对话框;其他环境回退插件内目录浏览器大文件进度曲线(面板),多任务分段进度条(对话输入框上方)
侧边栏未完成计数
静默下载阈值:小于阈值的任务不在界面显示(可关闭)
单线程阈值:小于阈值的任务不分片(可开关)
Agent 自主模式:默认开启;阈值设置被屏蔽但仍约束 Agent 任务,用户手动下载不受影响
设置与未完成任务持久化到 profile 目录
Windows 原生目录选择器;macOS/Linux 使用系统命令,失败回退插件内浏览器
默认下载目录
- Windows:读取
HKCU\...\User Shell Folders的 Downloads Known Folder,支持被重定向到 OneDrive / 其他盘;读取失败时回退%USERPROFILE%\Downloads - Linux:读取
~/.config/user-dirs.dirs的XDG_DOWNLOAD_DIR,回退~/Downloads - macOS:
~/Downloads - 配置里的
directory优先级最高
配置(cordis.patch.yml)
threads: 4 # 默认分片数 1..16
maxConcurrent: 3 # 同时下载任务数
largeFileMb: 16 # 静默下载阈值(MB),仅作为首次默认值
silentEnabled: true # 是否启用静默阈值
minThreadMb: 4 # 单连接阈值(MB)
minThreadEnabled: true # 是否启用单连接阈值
agentAutonomy: true # 默认开启;阈值设置屏蔽但继续约束 Agent 任务
announceToAgent: true # 是否注入系统提示公告
rateLimitKb: 0 # 全局限速 KB/s,0 不限
原生目录选择器
bin/picker.exe 是一个几 KB 的 .NET Framework 助手,调用 Windows IFileOpenDialog(资源管理器同款文件夹对话框):支持自定义标题、初始目录,并在打开后主动置前。源码在 bin/picker.cs,可用 csc 重新编译;选择器不可用或被取消时会自动回退到插件内目录浏览器。
开发与测试
npm test
npm pack --dry-run
安全说明见 SECURITY.md,发布清单见 PUBLISHING.md。
许可证
MIT,见 LICENSE。
限制与非目标
只支持 HTTP/HTTPS 直链。以下能力已明确放弃、不会实现:
- FTP / SFTP
- BT / 磁力 / Metalink
- 浏览器扩展接管、浏览器登录态/Cookie 自动读取
- 系统代理或自定义代理配置
- HLS / DASH 等流媒体协议
其它限制:
- 需要登录或防盗链的资源,必须显式通过
headers提供 Cookie / Referer / Authorization,本插件不接管浏览器会话 - 自定义请求头会随未完成任务明文保存在 profile 目录,使用敏感 Cookie 时注意本机权限
- 跨域重定向时
Authorization由 fetch 按规范剥离,但自定义Cookie等头可能被转发;敏感头请只用于可信地址 - SHA-256 校验是可选能力,未提供时只校验最终字节数
- 未完成任务会在重启后恢复为暂停状态;已完成文件保留