前言¶
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 部署中启用此插件。
- 依赖检查:安装前请检查源码与许可证,确保符合部署要求。