dsh-upload-file:DSH 文件库与上传插件

前言

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
羽毛球分组比赛记分
小程序二维码

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

小夜