dsh-multithread-downloader: Multi-threaded Download of HTTP/HTTPS Files in DSH

前言

在 DeepSeek Harness(DSH)里做联网或本地文件处理时,经常需要把 HTTP/HTTPS 直链拉到本机:模型产物、公开数据集、镜像站资源等。若依赖 aria2、IDM 或浏览器扩展,Host 与 Agent 之间还要额外切换工具;小文件若在对话里反复刷进度,也会干扰排查主任务。

下面介绍社区插件 dsh-multithread-downloader(维护者 NONON01,分类:联网工具)。它在 Host 端直接写盘,提供侧边栏面板、对话区进度条,并向 Agent 暴露 downloader 工具,适合在 DSH 会话内完成可控的 HTTP/HTTPS 下载。

这是什么

dsh-multithread-downloader 是面向 DSH 的多线程 HTTP/HTTPS 下载插件。npm 包名与插件标识均为 dsh-multithread-downloader;当前资料中的版本为 1.0.2,许可证 MIT。

插件只做 HTTP/HTTPS 直链:分片并发、断点续传、自定义请求头、镜像回退、SHA-256 校验、全局限速与任务队列等能力都在 Host 内完成,不引入外部下载器。FTP/SFTP、BT、系统代理、HLS/DASH 等明确不在目标范围内(见文末「限制」)。

核心功能

Host 与界面

  • HTTP/HTTPS 分片并发;服务器不支持 Range 时自动回退单连接;中途忽略 Range 时会降级为单连接重下。
  • 暂停、续传、取消、移除;续传前比对大小、ETag、Last-Modified,远端变化则从头下载。
  • 侧边栏下载面板(含大文件进度曲线)、对话输入框上方的多任务分段进度条、侧边栏未完成计数。
  • 未完成任务持久化到 profile 目录;插件重载或 DSH 重启后以暂停状态恢复,已完成文件保留。

请求与可靠性

  • 自定义请求头(Cookie、Referer、Authorization);401/403 有明确提示。
  • 分片指数退避重试、请求超时、镜像回退、批量 URL。
  • 可选 SHA-256 校验;下载前检查磁盘空间。

策略与 Agent

  • 全局限速(KB/s)与同时下载任务数(超额排队)。
  • 静默下载阈值:小于阈值的任务可不在界面显示(可关闭)。
  • 单线程阈值:小于阈值的任务可不分片(可开关)。
  • Agent 自主模式默认开启:阈值相关设置在 UI 中屏蔽,但仍约束 Agent 发起的任务;用户手动下载不受该屏蔽影响。
  • Agent 可通过 downloader 工具发起下载;小文件可静默完成,减少刷屏。

默认下载目录

配置项 directory 优先级最高。未配置时:

  • Windows:读取 Known Folder「Downloads」(含 OneDrive 等重定向);失败时回退 %USERPROFILE%\Downloads。
  • Linux:读取 ~/.config/user-dirs.dirs 的 XDG_DOWNLOAD_DIR,回退 ~/Downloads。
  • macOS:~/Downloads。

Windows 上面板选目录时,优先通过随包原生助手 bin/picker.exe 调用资源管理器同款 IFileOpenDialog;Electron 宿主优先用 Electron 对话框;其他环境回退插件内目录浏览器。macOS/Linux 使用系统命令,失败同样回退插件内浏览器。

安装与启用

最低环境:DSH >=0.2.1-rc.2(资料注明已在 0.2.1-rc.5 上核对)、Node >=20。

在 DSH 所在环境安装 npm 包:

npm i dsh-multithread-downloader

或在 DSH 插件管理里安装包名 dsh-multithread-downloader(本地目录或 registry 包作为 bundle)。安装后重启或热重载使插件生效。

社区目录页(与 DeepSeek / 幻方无官方从属关系):https://www.skillhub.cn/plugins/NONON01/dsh-multithread-downloader
源码与完整说明:https://github.com/NONON01/dsh-multithread-downloader

配置

在插件 bundle 的 cordis.patch.yml 中调整行为(以下为 README 中的字段与含义):

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 不限

设置与未完成任务一并持久化到 profile 目录。

典型用法

  1. 面板手动下载:安装并启用后,在侧边栏打开下载器面板,选择保存目录(Windows 可走原生文件夹对话框),填入 HTTP/HTTPS 直链,必要时在任务中配置请求头,再开始、暂停或续传。
  2. Agent 调用:在对话中让 Agent 使用 downloader 工具下载指定 URL;受 agentAutonomy、静默阈值、单线程阈值与 maxConcurrent 等配置约束。需要登录或防盗链的资源时,须在 headers 中显式提供 Cookie / Referer / Authorization,插件不会读取浏览器会话。
  3. 批量与镜像:按 README 能力说明,支持批量 URL 与镜像回退;大文件可在面板查看进度曲线,多任务时在对话区上方查看分段进度。

开发与自测(维护者文档):

npm test
npm pack --dry-run

适用场景与注意

适合:在 DSH Host 内下载公开或已授权直链;Agent 工作流中拉取模型权重、脚本、压缩包等小到大文件;需要断点续传、校验和限速的本地落盘场景。

务必注意:

  • 插件以当前 DSH 进程权限运行,安装前请自行查看源码与 MIT 许可证,并评估本机安全策略。
  • 只支持 HTTP/HTTPS 直链,不实现 FTP/SFTP、BT、浏览器接管、代理配置、HLS/DASH。
  • 自定义请求头会随未完成任务明文保存在 profile 目录;敏感 Cookie 需注意本机权限。跨域重定向时 Authorization 可能被 fetch 剥离,其他头可能被转发,敏感头只应用于可信地址。
  • SHA-256 为可选;未提供时仅校验最终字节数。

结尾

dsh-multithread-downloader 把多线程 HTTP/HTTPS 下载收进 DSH 插件形态:Host 写盘、面板与对话进度、Agent 原生 downloader 工具,以及可调的并发、静默与限速策略。若你的 workflow 以 DSH 为中心、且资源多为直链,可先按上文命令安装,再在 cordis.patch.yml 里对齐分片数与并发,然后结合面板或 Agent 试一轮小文件与大文件任务。

  • 社区目录:https://www.skillhub.cn/plugins/NONON01/dsh-multithread-downloader
  • GitHub:https://github.com/NONON01/dsh-multithread-downloader
  • npm:https://www.npmjs.com/package/dsh-multithread-downloader
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye