前言¶
DSH(DeepSeek Harness)在智能体开发中,文件管理往往依赖外部或手动维护。seeingrain/dsh-upload-file 插件将文件系统直接作为注册表,为每个会话提供隔离的文件存储空间。它通过 Paperclip 库实现上传、缩略图生成与重下功能,适合需要频繁引用文件或运行在独立服务器上的场景。
它是什么¶
这是一个名为 seeingrain/dsh-upload-file 的 DSH 插件,由 seeingrain 维护,采用 MIT 许可证。
- 核心定位:DSH 插件:带 Paperclip 库、会话隔离、缩略图和可重新下载功能的文件上传。
- 解决的问题:解决 DSH 聊天中无法直接上传文件、文件路径难以引用以及会话间文件混杂的问题。
核心功能¶
- 会话隔离:文件存储在
<会话工作区>/.uploaded_files/<sessionId>/,工作区与会话级别双重隔离,互不干扰。 - 多文件上传:支持一次选择多个文件上传,提供进度条显示。
- 文件列表与缩略图:列表展示文件名、大小,图片/视频/PDF 生成缩略图或类型图标,最新上传置顶。
- @ 提及:在输入框中使用
@UPLOAD:filename格式提及文件,模型可直接使用。 - 右键菜单:提供 6 个操作:@提及、打开(默认程序或侧栏)、复制路径/名、重新下载、删除。
- 安全机制:全流程 SHA-256 校验、目录遍历防护、严格校验
sessionId。 - 缩略图服务:服务端懒生成缩略图,支持图片/视频/PDF,并使用不可变头部缓存。
- 自动命名:同会话重传同名文件自动添加
_1、_2等后缀。
安装与启用¶
通过 CLI 安装插件:
dsh plugin --profile web add github:seeingrain/dsh-upload-file
安装后,host 端需要重启,client 端刷新页面即可加载。
典型用法¶
- 上传文件:点击输入框工具栏的
📎按钮,选择多个文件上传到当前会话。 - 引用文件:在输入框中输入
@UPLOAD:filename,将文件提供给模型使用。 - 文件操作:右键点击文件列表中的条目,选择打开、复制路径或删除文件。
- 服务器存储:文件直接上传至 DSH 服务器,用于会话内的长期参考。
适用场景与注意¶
- 依赖系统工具:生成缩略图需要系统安装
ffmpeg(处理图片/视频)和pdftoppm(处理 PDF)。缺失工具时,文件会回落为原图或类型徽章。 - 文件类型支持:目前支持图片、视频、PDF。Office 文档(docx/xlsx/pptx)预留接口,当前仅显示类型徽章。SVG 文件不生成缩略图。
- 不可逆操作:删除文件为永久删除,无回收站机制。
- 缓存策略:缩略图生成一次并缓存,带有不可变头部。
短结尾¶
该插件通过文件系统即注册表的模式,为 DSH 提供了结构化的文件管理能力。如果你需要将 DSH 作为服务器运行,并希望模型能够直接访问上传的文件,这是一个实用的选择。
- GitHub:https://github.com/seeingrain/dsh-upload-file
- 目录页:https://www.skillhub.cn/plugins/seeingrain/dsh-upload-file