前言¶
DeepSeek Harness (DSH) 的 Web GUI 提供了会话管理和文件交付界面,但在文件访问方面存在局限。原生文件操作依赖桌面环境,且侧边栏文件树仅限于会话工作区,无法浏览宿主机器的完整文件系统,也无法方便地下载文件或打包归档。dsh-file-download 插件通过扩展官方侧边栏和注入下载入口,填补了这一空白。
安装与启用¶
此插件依赖 DSH 0.1.5-rc.1 或更新版本,需要 Node 20+ 环境以及 Web 配置文件。
在终端中执行以下命令将插件链接到 Web 配置文件:
dsh plugin --profile web add /path/to/dsh-file-download
安装命令会将插件链接到配置并追加到 dsh.profile.bundles。执行安装后,需要重启 dsh web 进程,以便在启动时扫描客户端列表。
如需卸载,请执行:
dsh plugin --profile web remove dsh-file-download
核心功能¶
该插件提供了一套完整的文件管理界面,主要功能包括:
- 全系统浏览:浏览整个文件系统,而不仅仅是会话工作区。支持面包屑导航(Project 跳转到会话工作区根目录,Root 跳转到根目录
/)和路径输入框导航(支持 Tab/箭头完成,Enter 确认)。 - 下载与归档:支持下载单个文件、文件夹(生成 ZIP)以及多选文件的批量归档。
- 界面扩展:通过官方侧边栏注册(Files 选项卡)、轮次/交付文件卡片下载按钮以及侧边栏文件树悬停下载按钮,提供多处入口。
- 可控上传:提供带覆盖提示的文件上传功能,并支持三种权限模式限制上传范围。
- 服务端渲染:浏览页面采用服务端渲染,无客户端 JavaScript,支持 Range/If-Range/ETag 断点续传,上传限制为 64 MiB。
使用方式¶
安装并重启服务后,打开 DSH Web GUI 右侧侧边栏并选择 Files 选项卡即可开始使用。
-
导航文件系统
- 使用顶部的面包屑导航。点击 Project 可跳转到会话工作区根目录,点击 Root 跳转到根目录
/。 - 面包屑行末尾的铅笔图标可打开输入框,输入路径进行导航。输入的路径相对于当前目录,除非以
/开头(绝对路径)或~开头(宿主用户主目录)。输入时支持名称补全(Tab/箭头键)。
- 使用顶部的面包屑导航。点击 Project 可跳转到会话工作区根目录,点击 Root 跳转到根目录
-
查看与筛选
- 默认隐藏以
.开头的文件。勾选「Show hidden」可显示所有文件。 - 使用顶部的过滤框可筛选当前目录下的条目。
- 默认隐藏以
-
文件操作
- 点击文件夹可进入,点击文件可使用官方预览打开。
- 在文件树行上悬停,或使用文件卡片上的下载按钮,可直接下载文件或目录(流式 ZIP)。
- 勾选文件行,底部会出现「Download selected (ZIP)」按钮,可将选中的文件和文件夹打包为一个 ZIP 下载。
-
上传文件
- 在侧边栏文件树中,通常支持上传操作。
- 上传时,如果目标文件已存在,浏览器会提示覆盖。
权限与限制¶
上传功能受到权限模式和文件大小的严格限制。
- 权限模式:插件默认使用会话的沙盒策略,但允许在浏览器中手动切换模式。
read-only:拒绝所有上传。workspace-write:仅允许上传到会话工作区。danger-full-access:允许上传到账号有写权限的任何位置。
- 文件大小限制:上传体积极限为 64 MiB。
- 写入安全:文本内容使用原子写入,二进制内容通过临时文件重命名实现写入,确保后端能正确应用沙盒策略。
结语¶
dsh-file-download 通过官方扩展点将文件浏览器能力集成到 DSH Web GUI 中,解决了远程访问时无法保存文件和浏览宿主文件系统的问题。开发者可以通过侧边栏、轮次卡片等多处入口高效地管理文件。
- 插件目录:SkillHub
- GitHub 仓库:KaguraSayuki/dsh-file-download