dsh-workspace-file-export:在 DSH Web 里下载已注册工作区内的文件

前言

在 DeepSeek Harness(DSH)里用 Web 界面浏览工作区文件时,预览页通常只能看内容,要把某个文件落到本地,往往得自己找路径、用 shell 或别的工具拷贝。维护者 Honghe 的插件 dsh-workspace-file-export 在文档预览标题栏增加 Download 链接,通过服务端接口把文件以附件形式下载到浏览器,且只允许落在「已注册工作区」 canonical 根内的普通文件。下面介绍它做什么、怎么装、怎么用,以及权限边界上需要注意的点。

这是什么

dsh-workspace-file-export 是 DSH 的 Web 侧插件(分类:联网工具),当前 npm 版本为 0.1.2,许可证 MIT。仓库说明里写得很直白:提供工作区文件导出(下载到本地)功能;在文档预览头部添加 Download 链接,对应仅限已注册工作区内的认证文件下载。

包名刻意不用含 download 的 npm 名——README 说明 npm 禁止上传含 download 的包名,因此使用 dsh-workspace-file-export。

核心功能

经过上面的定位,可以把能力拆成 Host 与 Client 两半(与仓库目录一致):

  1. Client(client.js):侧边栏打开工作区文件预览时,标题栏 actions 区出现 Download 链接。
  2. Host(index.js):注册 GET /api/workspace-download,只允许任一已注册 workspace 的 canonical 根内的普通文件;含符号链接逃逸校验。
  3. 认证栅栏:路由注册在 connection 的认证栅栏内,未登录的请求到不了下载接口。
  4. 范围模型:允许范围以已注册工作区为准;workspace 注册表是项目列表而非权限边界,HTTP 连接也没有会话身份——插件防的是任意路径读取,不做「请求属于哪个工作区」的会话绑定。

安装与启用

先做插件安装(任选 README 里的一种方式),再重启一次 dsh web(首次安装 bundle 后需要;之后对配置/开关的修改走热加载)。

从 GitHub 安装(仓库已提交构建好的 client.js,安装时无需构建):

dsh plugin --profile web add github:honghe/dsh-workspace-file-export

从 npm 安装(包名 dsh-workspace-file-export):

dsh plugin --profile web add dsh-workspace-file-export

本地目录安装(在插件源码目录内执行):

dsh plugin --profile web add ./

也可以在 GUI 里安装:侧边栏 → 插件 → 添加插件 → 安装第三方插件 → 填本目录绝对路径 → 安装并启用。

典型用法

  1. 在侧边栏打开工作区内任意文件(右侧文档预览)。
  2. 点击预览头部的 Download。

浏览器会走下载接口;若需直接调 HTTP,接口形如:

GET|HEAD /api/workspace-download?path=<绝对路径>
状态码 含义
200 流式下载(Content-Disposition: attachment)
400 缺少/非法参数(path 必须是绝对路径)
403 解析结果不在任何已注册 workspace 的 canonical 根内
404 文件不存在或不是普通文件

适用场景与注意

适合谁:已经在 DSH Web 里注册工作区、需要在预览页一键把当前文件下载到本地的开发者;依赖 DSH Web profile,安装命令均带 --profile web。

务必知晓:

  • 插件以当前 dsh 进程权限运行;安装前应自行查看源码与 MIT 许可证,确认符合你的安全策略。
  • 下载能力绑定「已注册工作区根内 + 已登录」,但不是按「当前预览所属工作区」做会话级隔离;多工作区并存时,理解 README 中的边界说明再决定是否启用。
  • 社区目录 SkillHub 插件页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系;DSH 生态本身是「一切皆插件」,第三方插件需自行评估。

结尾

dsh-workspace-file-export 把「预览区看文件」和「认证 HTTP 下载」接在一起,步骤少、接口与状态码在 README 里写全。若要查详情或提 Issue,见 GitHub:Honghe/dsh-workspace-file-export 与上述 SkillHub 目录页。

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

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

小夜