dsh-local-project:把本地文件夹导入为 DSH 服务器工作区

前言

DSH 通常让智能体在服务器工作区中读写文件。如果目标文件在本机,常见做法是先上传、复制,或依赖额外的同步方式;DSH 改完之后,还需要把结果回传到本地。

dsh-local-project 针对这个场景:把本地文件夹导入为服务器 DSH 工作区,并把 DSH 对服务器镜像的修改同步回本地文件夹。

这是什么

dsh-local-project 是一个 DSH 插件,由 0xKcyzz 维护,许可证为 MIT。

它的定位是:用户在浏览器中选择本地文件夹,DSH 在服务器端创建对应的工作区镜像;之后 DSH 使用原生工具直接操作服务器镜像,并把文件改动同步回本地。

核心功能

下面介绍已核实的几项能力:

  • 在「添加工作区」入口选择本地文件夹,自动上传并在服务器创建镜像工作区。
  • DSH 使用原生 readwriteeditglobbash 工具直接操作服务器镜像,无需自定义工具。
  • DSH 修改文件后,通过 WebSocket 实时同步回本地。
  • WebSocket 断线后会自动重连,并补齐漏掉的变更。
  • 「删除项目」只删除服务器副本与工作区记录,不影响本地文件。
  • 刷新页面后,可以从服务器恢复项目列表,并重新选择本地文件夹恢复同步。
  • 插件提供 /local-project/* HTTP 接口和 WebSocket 推送,支持创建、上传、列出、下载、删除和变更恢复。

安装与启用

先执行官方安装命令:

dsh plugin --profile web add github:0xKcyzz/dsh-local-project

安装后需要重启 DSH。重启后,「添加工作区」会打开本地项目导入对话框。

如果本地项目的服务器镜像目录不使用默认位置,可以配置环境变量:

DSH_LOCAL_PROJECT_ROOT
默认值:$DSH_HOME/workspaces

典型用法

下面是一个可复现的使用流程:

1、在 DSH 侧边栏或空状态中点击「添加工作区」。

2、输入项目名称,点击「选择文件夹并导入」。

3、在系统对话框中选择本地文件夹。该步骤需要 Chrome / Edge 浏览器授权。

4、首次导入会开始上传文件。完成后,左侧工作区列表会出现「本地项目: 名称」。

5、打开该工作区对话。DSH 操作的是服务器镜像副本,文件改动会自动同步回本地。

适用场景

适合这类使用方式:在浏览器中把本机代码或资料交给远程 DSH 直接读写,同时保留本地副本。

它更适合 DSH 侧发起修改的场景。DSH 在服务器镜像中改文件后,变更会推送回本地;本地已有的文件可以随首次导入上传到服务器。

注意事项

使用前注意以下限制:

  • 需要浏览器支持 File System Access API:Chrome / Edge(含 Chromium)。Firefox / Safari 不支持。
  • 单个文件上限约 15MB,上传使用 base64 JSON。超大文件不建议放入项目。
  • 不传播单个文件的删除:只有「删除项目」会整包删除服务器副本。本地和服务器各自删除的文件,不会被对面清除。
  • 本地改动不会自动上传:只有首次导入会上传本地文件。之后本地手动修改的文件,不会同步到服务器。
  • 实时推送需要保持 WebSocket 连接。断线后会自动重连,并补齐漏掉的变更。
  • 桌面端 Electron 窗口若 File System Access API 不可用,请用系统浏览器打开 DSH 的 Web 地址。
  • 插件会随 DSH 插件机制加载,并以当前 DSH 进程的权限执行相关操作。安装前应检查源码与许可证。

链接

GitHub 仓库:https://github.com/0xKcyzz/dsh-local-project

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

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

小夜