dsh-multithread-downloader:在 DSH 裏多線程下載 HTTP/HTTPS 文件

前言

在 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
羽毛球分组比赛记分
小程序二维码

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

小夜