前言¶
DSH Web 配置環境通常需要直接管理文件或執行命令。原生 Web 配置可能缺少這些能力,導致開發者需要在本地終端與瀏覽器之間反覆切換。dsh-plugin-file-and-terminal 插件直接在 Web 界面中補全了這一缺口。
插件介紹¶
該插件由 CarrotFish 維護,是一個 MIT 許可的開源組件。它爲 DSH Web profile 注入“文件管理”面板和“終端”面板。安裝後,用戶可以在瀏覽器中瀏覽文件系統、上傳下載資源,並直接在頁面內使用宿主的 Bash Shell。
核心功能¶
文件管理¶
- 瀏覽與導航:支持瀏覽目錄、進入子目錄及返回上一級。
- 上傳:支持批量上傳單個文件,或上傳整個目錄(保留原有目錄結構)。
- 下載:支持下載單個文件,或將整個目錄打包爲 ZIP 下載。
- 符號鏈接:僅跟隨目標仍位於配置根目錄內的符號鏈接。
- 限制:目錄列表最多顯示
maxEntries項;上傳目錄最多包含 10,000 個文件或目錄項。
終端面板¶
- 交互式 Bash:提供宿主上的交互式 PTY,使用 xterm.js 渲染終端內容。
- 會話保持:面板獨立於對話和 Session。切換面板時,終端會話和屏幕內容會被保留,不會丟失進度。
- 啓動目錄:終端從配置的
root目錄啓動。
安裝與啓用¶
通過官方 CLI 安裝:
dsh plugin --profile web add github:CarrotFish/dsh-file-and-terminal
安裝完成後,啓動或重啓 Web profile 即可生效:
dsh web
配置¶
在 profile 的 cordis.patch.yml 中添加配置項。root 指定文件系統訪問根目錄,maxEntries 限制列表顯示條目數,maxDownloadBytes 和 maxUploadBytes 限制單次下載和上傳的總大小。
- insert:
- id: file-and-terminal
name: dsh-plugin-file-and-terminal
config:
root: "~"
maxEntries: 1000
maxDownloadBytes: 67108864
maxUploadBytes: 67108864
默認情況下,下載和上傳限制均爲 64 MiB。插件還支持 terminalBufferBytes、terminalGraceMs 和 maxTerminals 配置項。
生態與集成¶
若安裝了 dsh-better-sidebar 插件,該插件會自動註冊爲側欄標籤。此時,側欄和主面板共享文件瀏覽狀態與 Bash 終端,避免爲同一個視圖重複啓動進程。
安全與注意事項¶
- 權限範圍:插件可訪問宿主文件系統中配置根目錄內的內容,並提供宿主 Bash 終端。它以當前 DSH 進程的權限運行。
- 風險提示:僅應在可信的 DSH Web 部署中啓用此插件。
- 依賴檢查:安裝前請檢查源碼與許可證,確保符合部署要求。