前言¶
在 DeepSeek Harness 的对话界面中查看图片时,保存图片通常需要右键另存为或进入预览模式,交互不够直接。dsh-image-download 插件为这一场景提供了更简洁的解决方案。它通过在图片上悬停显示下载按钮,让保存图片的过程变成点击操作。该插件由开发者 Yezery 维护,遵循 MIT 许可证。
功能特性¶
该插件主要包含以下能力:
* 悬停交互:当鼠标指针移动到对话中的图片上时,显示下载按钮。
* 仅客户端运行:插件逻辑在客户端执行,不涉及远程服务调用。
* 预览安全:点击下载按钮时,不会触发图片的内置预览或灯箱动作。
* 本地 URL 支持:支持 file:、blob:、data: 等本地 URL 的下载。
安装与启用¶
插件通过 npm 包名进行安装。由于当前 npm 包尚未正式发布,目录中显示为浏览模式,发布后安装命令将自动出现。
安装命令如下:
@zivye/dsh-img-save
使用方式¶
在 DeepSeek Harness 的对话窗口中,将鼠标悬停在图片上,会出现下载按钮。点击该按钮即可将图片保存到本地。对于支持浏览器下载的 URL(包括部分本地 URL),浏览器会直接触发下载行为。
技术细节¶
为了保证性能和安全性,插件采用了以下设计:
* 无轮询与观察者:插件不使用 DOMObserver 或轮询机制,而是通过指针、滚动和调整大小事件来驱动按钮位置。这避免了反馈循环和界面冻结。
* 客户端原生调用:插件复用 DSH 已渲染的图片 URL,利用浏览器原生的下载机制处理请求。它不读取本地文件字节、不上传图片数据、不运行 shell 命令。
* 事件拦截:下载按钮的点击事件被拦截,确保不会触发图片本身的预览功能。
注意事项¶
- 运行依赖:该插件依赖 DSH 客户端运行时提供的
shell.overlayslot 以及 React 环境。 - 浏览器限制:对于
file:协议的本地文件,浏览器的安全策略可能会限制直接下载,具体取决于浏览器和文件来源。 - 许可证:插件使用 MIT 许可证,允许自由使用和修改。
结语¶
通过 dsh-image-download,开发者可以在对话中更便捷地获取图片资源。完整源码与目录信息可参考下方链接。