dsh-plugin-file-and-terminal:为 DSH Web 配置添加文件管理与终端面板

前言

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

参考资料

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

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

小夜