dsh-file-explorer:在 DSH 里浏览远程 SSH 目录

前言

用 DeepSeek Harness(DSH)对接远程训练机或数据机时,常见做法是 SSH 终端、scp 或本机再开一个 SFTP 客户端。路径要在脑子里记,图片和视频往往要先拉到本地才能看。dsh-file-explorer 是社区客户端插件,在 DSH 左侧栏、右侧标签或本机浏览器里渲染类似 VS Code 的目录树,点开即可预览图片,视频走 HTTP Range 流式播放,并支持拖拽上传与基础文件操作。下面介绍它的能力、依赖、安装与配置。

这是什么

  • 名称:npm 包 @bruce_young/dsh-file-explorer(仓库 BruceYounggit/dsh-file-explorer)
  • 维护者:BruceYounggit
  • 分类:客户端(dsh.client.platform: web)
  • 许可:MIT

插件为 DeepSeek Harness 增加远程服务器文件树:Host 侧在本机 127.0.0.1 起 HTTP 服务,通过 rclone 经 SFTP 读远程目录;Client 侧注册左侧「文件」入口、主区全屏树、右侧可停靠「文件树」标签,三者指向同一页面。

核心功能

三种入口

  1. 左侧导航栏「文件」(全屏文件树)
  2. 右侧栏通过 + 添加「文件树」标签(与对话并排,可分割、可浮动)
  3. 独立浏览器访问 http://127.0.0.1:8910/(默认端口,见配置)

浏览与预览

  • 顶部路径栏可编辑:默认从配置的 treeRoot 开始,输入绝对路径回车跳转;支持上一级、刷新。
  • 目录懒加载;文本/代码预览前 256 KB;图片内联显示;视频原生播放器,依赖 Accept-Ranges,不整文件先下载;其它类型提供下载或新窗口链接。

上传与右键操作

  • 从系统资源管理器拖文件到目录行或树空白处上传,经 rclone rcat 流式写入,带进度。
  • 右键:复制绝对/相对路径、重命名、移动到、删除、在此新建文件夹;空白处可新建文件夹、复制当前目录路径、刷新。

写操作与上传均可通过配置关闭(见下文「配置」)。

安全与权限模型

  • HTTP 服务只监听 127.0.0.1。
  • 默认可浏览任意绝对路径;restrictToTreeRoot: true 时将读写限制在 treeRoot 子树内。
  • SSH 认证由系统 OpenSSH 密钥与 rclone 处理,插件不单独保管凭据。

依赖与环境

依赖 说明
DeepSeek Harness ≥ 0.2.2 需要 sidebar.panellist / main / sidebarRightTabs 等槽位
rclone 外部唯一依赖:SFTP 列举与按字节范围读取
OpenSSH 密钥 目标机免密登录(BatchMode 可用)
Node ≥ 20 见 package.json engines

Windows 上可用 Chocolatey 安装 rclone(README 示例):

choco install rclone -y

亦可从 rclone.org 下载并加入 PATH。Linux/macOS 上 Host 侧可直接使用,但仓库提供的安装/卸载脚本为 PowerShell,需自行适配。

安装与启用

方式一:插件市场(推荐)

在 DSH 中添加市场索引地址,然后安装包名 @bruce_young/dsh-file-explorer:

https://bruceyounggit.github.io/dsh-file-explorer/index.json

索引 index.json 在仓库根目录,并通过官方 parseMarketIndex 校验;README 注明 0.3.0 起同时提供 npm 与 Git 源。当前仓库 package.json 版本为 0.3.5。

添加索引并安装后,重启 DeepSeek Harness(或在插件列表里停用再启用对应条目),否则 bundles 与条目不会重新加载。

方式二:仓库脚本(Windows)

README 提供 scripts/install.ps1,在本地已有插件源码的前提下可写入 profile 的 node_modules 联接,并在 cordis.patch.yml 末尾插入带 SSH 参数的 loader 条目。示例参数:

.\scripts\install.ps1 `
  -SshHost 203.0.113.10 `
  -SshPort 22 `
  -TreeRoot /srv/data

卸载使用同目录下的 .\scripts\uninstall.ps1。

配置

配置可写在 cordis.patch.yml 的条目里,或放在 $DSH_HOME/file-explorer.json(默认 ~/.dsh/file-explorer.json);条目配置优先于独立 JSON。示例见仓库内 file-explorer.example.json 与 cordis.patch.example.yml。

字段 默认 说明
treeRoot / 文件树默认起始目录(非访问边界)
restrictToTreeRoot false true 时仅允许 treeRoot 子树
allowUpload true 是否接受 POST /api/upload
allowWrite true 是否允许重命名/移动/删除/新建文件夹
treePort 8910 本机端口;若修改需同步 lib/client.js 中 TREE_URL
ssh.host 空 为空则不启动树服务
ssh.port 22 SSH 端口
ssh.user root 登录用户
ssh.keyFile 空 私钥路径
ssh.knownHosts 空 known_hosts 路径
sources [] 额外本地目录,每项通过 rclone HTTP 目录服务(id/path/httpPort)

未配置 SSH 时,面板显示引导页,指出配置文件路径与示例内容,而不是白屏。

典型用法

  1. 安装插件并重启 DSH,在 file-explorer.json 或 patch 条目中填写 ssh.host、ssh.user、ssh.keyFile 与 treeRoot。
  2. 确认本机已安装 rclone,且对该主机 BatchMode SSH 可用。
  3. 打开左侧「文件」或右侧「文件树」,在路径栏进入数据目录;点击图片直接预览,点击视频即可拖动进度条播放。
  4. 需要将本地文件上传到当前远程目录时,从资源管理器拖入树中对应文件夹行。
  5. 若仅允许项目目录,设置 restrictToTreeRoot: true 并将 treeRoot 设为项目根;只读场景可设 allowUpload: false、allowWrite: false。

排错时若 http://127.0.0.1:8910/ 能打开但 DSH 内无入口,按 README 顺序检查:是否在 dsh.profile.bundles 与 cordis.patch.yml 重复注册;lib/client.js 中模块 id 是否与 package.json 的 name(含 scope)一致;是否从托盘完全退出后重启而非仅关窗口。

工作原理(简要)

DeepSeek Harness
├─ lib/client.js   注册侧栏/主区/右栏,iframe 加载树页面
└─ lib/index.js    Host:127.0.0.1:8910
   ├─ GET /api/list        → rclone lsjson
   ├─ GET /api/file(Range)→ rclone cat --offset --count
   └─ explorer.html        纯 HTML/CSS/JS,无宿主 UI 框架依赖

可选 sources 会在其它本机端口起 rclone serve http,与远程树并列使用。

适用场景与注意

适合:在 DSH 会话旁直接查看远程日志、配置、小样本图片与短视频;需要 occasional 上传或重命名且希望留在同一客户端内完成时。

注意:

  • 插件以当前 DSH 进程权限在本机起服务;安装前应阅读源码与 MIT 许可证,确认 allowWrite/allowUpload 符合环境安全要求。
  • 视频每次 Range 请求经 SSH 往返,首播可能比本地文件慢;端口固定为默认 8910,占用会导致树服务启动失败(日志报错)。
  • README 标明 Windows 安装脚本优先;一次配置对应一个远程 treeRoot 树服务主线。

社区目录页:SkillHub - dsh-file-explorer。生态上 DSH 奉行「一切皆插件」;SkillHub 等为独立社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-file-explorer 把远程 SSH 目录收成 DSH 内的 VS Code 式文件树,并补齐图片内联预览与 Range 流式视频,上传与基础文件操作可按配置收紧。需要上手时,优先添加市场索引安装 @bruce_young/dsh-file-explorer,并按 file-explorer.example.json 配好 SSH 与 treeRoot 后重启宿主。

  • 目录页:https://www.skillhub.cn/plugins/BruceYounggit/dsh-file-explorer
  • GitHub:https://github.com/BruceYounggit/dsh-file-explorer
羽毛球分组比赛记分
小程序二维码

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

小夜