dsh-image-serve:DeepSeek Harness 本地文件展示插件

在 DeepSeek Harness 的 Web 会话中,Markdown 渲染器只接受 http/https 协议的图片源。本地存储的截图、AI 生成图(file: 或 data: 协议)会被直接过滤。这导致 AI 报告“图片已保存到 D:\shots\fig1.png”后,用户只能看到一行死文本,无法在对话中直接查看。

dsh-image-serve 插件通过注册一个 /ws 路由,将本地绝对路径映射为 Web 可访问的 URL,从而解决这一缺口。安装后,会话中的 Markdown 即可通过 /ws/ 直接渲染磁盘上任何位置的图片与文件。

它是什么

carlclouder 开发的本地文件展示插件。它是一个零运行时依赖的标准 npm bundle,可在 dsh-market 中热启停、更新或卸载。插件的核心功能是在 DSH Web 中注册 /ws 路由,将 /ws/<本地绝对路径> 映射到对应的磁盘文件,使 Markdown 渲染器能够渲染本地资源。

安装与启用

在终端中执行以下命令,通过插件系统安装该插件:

dsh plugin --profile web add dsh-image-serve

安装完成后,重启 DSH Web 服务即可生效。

典型用法

安装并重启后,在 Markdown 中引用文件时,将 file: 协议替换为 http://127.0.0.1:3080/ws/,后接本地绝对路径:

http://127.0.0.1:3080/ws/D:/AI任务/Generated/cover.png
http://127.0.0.1:3080/ws/D:/AI任务/                 (指向目录 → 返回可浏览的文件列表页)
http://127.0.0.1:3080/ws/D:\截图\对比图.png        (反斜杠写法等价)
http://127.0.0.1:3080/ws//NAS/share/方案.png       (UNC 网络路径)

核心特性

  • 目录浏览:指向目录时,返回可点击的 HTML 文件列表,包含子目录、文件大小、修改时间及上一级导航,文件名已做 HTML 转义。
  • 零依赖:标准 npm bundle,支持在 dsh-market 中热启停、更新、卸载。
  • 跨平台支持:实测支持跨盘符(C:/D:/E:/…)、中文路径、深层嵌套目录以及 UNC 网络路径。
  • 明确报错:相对路径返回 400 并提示,文件不存在返回 404,非 GET/HEAD 请求返回 405。

注意事项与安全

  • 无白名单设计:/ws 是本地任意文件的读取通道。v2.1 版本起已移除白名单设计。
  • 访问范围:路由的可达范围等于 dsh web 的可达范围。默认仅本机回环(127.0.0.1),但如果通过 Tailscale 等方式将 Web 暴露到远程,远程设备同样可以读取本地任意文件。
  • 只读模式:插件仅提供读取服务,不支持写入、删除或列目录操作。
  • 路径规范:必须使用本地绝对路径。相对路径会返回 400 错误。
  • 协议限制:仅支持 GET 和 HEAD 请求。
  • 旧版兼容性:旧版短链接 …/ws/<文件名>(隐含 D:\AI任务 根目录)已失效,需改写为完整路径形式(如 …/ws/D:/AI任务/<文件名>)。
  • 配置清理:不再存在 root 配置。如果之前在 profile patch 中添加了相关覆盖行,建议删除。

总结

dsh-image-serve 解决了 DSH Web 会话中无法直接展示本地文件的问题。通过 /ws/ 路由,开发者可以方便地引用任意盘符、任意路径的文件,无需手动复制到特定目录。使用时需注意其无白名单的特性及远程访问的风险。

  • GitHub 仓库:https://github.com/carlclouder/dsh-image-serve
  • 插件目录:https://www.skillhub.cn/plugins/carlclouder/dsh-image-serve
羽毛球分组比赛记分
小程序二维码

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

小夜