dsh-file-download:DSH Web 界面的文件瀏覽器與可控上傳插件

前言

DeepSeek Harness (DSH) 的 Web GUI 提供了會話管理和文件交付界面,但在文件訪問方面存在侷限。原生文件操作依賴桌面環境,且側邊欄文件樹僅限於會話工作區,無法瀏覽宿主機器的完整文件系統,也無法方便地下載文件或打包歸檔。dsh-file-download 插件通過擴展官方側邊欄和注入下載入口,填補了這一空白。

安裝與啓用

此插件依賴 DSH 0.1.5-rc.1 或更新版本,需要 Node 20+ 環境以及 Web 配置文件。

在終端中執行以下命令將插件鏈接到 Web 配置文件:

dsh plugin --profile web add /path/to/dsh-file-download

安裝命令會將插件鏈接到配置並追加到 dsh.profile.bundles。執行安裝後,需要重啓 dsh web 進程,以便在啓動時掃描客戶端列表。

如需卸載,請執行:

dsh plugin --profile web remove dsh-file-download

核心功能

該插件提供了一套完整的文件管理界面,主要功能包括:

  • 全系統瀏覽:瀏覽整個文件系統,而不僅僅是會話工作區。支持麪包屑導航(Project 跳轉到會話工作區根目錄,Root 跳轉到根目錄 /)和路徑輸入框導航(支持 Tab/箭頭完成,Enter 確認)。
  • 下載與歸檔:支持下載單個文件、文件夾(生成 ZIP)以及多選文件的批量歸檔。
  • 界面擴展:通過官方側邊欄註冊(Files 選項卡)、輪次/交付文件卡片下載按鈕以及側邊欄文件樹懸停下載按鈕,提供多處入口。
  • 可控上傳:提供帶覆蓋提示的文件上傳功能,並支持三種權限模式限制上傳範圍。
  • 服務端渲染:瀏覽頁面採用服務端渲染,無客戶端 JavaScript,支持 Range/If-Range/ETag 斷點續傳,上傳限制爲 64 MiB。

使用方式

安裝並重啓服務後,打開 DSH Web GUI 右側側邊欄並選擇 Files 選項卡即可開始使用。

  1. 導航文件系統

    • 使用頂部的麪包屑導航。點擊 Project 可跳轉到會話工作區根目錄,點擊 Root 跳轉到根目錄 /。
    • 麪包屑行末尾的鉛筆圖標可打開輸入框,輸入路徑進行導航。輸入的路徑相對於當前目錄,除非以 / 開頭(絕對路徑)或 ~ 開頭(宿主用戶主目錄)。輸入時支持名稱補全(Tab/箭頭鍵)。
  2. 查看與篩選

    • 默認隱藏以 . 開頭的文件。勾選「Show hidden」可顯示所有文件。
    • 使用頂部的過濾框可篩選當前目錄下的條目。
  3. 文件操作

    • 點擊文件夾可進入,點擊文件可使用官方預覽打開。
    • 在文件樹行上懸停,或使用文件卡片上的下載按鈕,可直接下載文件或目錄(流式 ZIP)。
    • 勾選文件行,底部會出現「Download selected (ZIP)」按鈕,可將選中的文件和文件夾打包爲一個 ZIP 下載。
  4. 上傳文件

    • 在側邊欄文件樹中,通常支持上傳操作。
    • 上傳時,如果目標文件已存在,瀏覽器會提示覆蓋。

權限與限制

上傳功能受到權限模式和文件大小的嚴格限制。

  • 權限模式:插件默認使用會話的沙盒策略,但允許在瀏覽器中手動切換模式。
    • read-only:拒絕所有上傳。
    • workspace-write:僅允許上傳到會話工作區。
    • danger-full-access:允許上傳到賬號有寫權限的任何位置。
  • 文件大小限制:上傳體積極限爲 64 MiB。
  • 寫入安全:文本內容使用原子寫入,二進制內容通過臨時文件重命名實現寫入,確保後端能正確應用沙盒策略。

結語

dsh-file-download 通過官方擴展點將文件瀏覽器能力集成到 DSH Web GUI 中,解決了遠程訪問時無法保存文件和瀏覽宿主文件系統的問題。開發者可以通過側邊欄、輪次卡片等多處入口高效地管理文件。

羽毛球分组比赛记分
小程序二维码

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

小夜