🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

任意文件上传 l541402398/dsh-file-uploads

DeepSeek Harness
l54140239882 天前有提交已提供中文文档扫描:含敏感能力office

为输入框添加任意文件上传,提交时把路径交给模型

31.5/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/8/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add l541402398/dsh-file-uploads
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 82 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-file-uploads(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/10 17:34:39

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 17 处,展示前 17 条)
  • 删除本地文件
    index.js:214
    await unlink(tempPath)
  • 写入本地文件
    index.js:234
    await mkdir(root, { recursive: true, mode: 0o700 })
  • 读取本地文件
    index.js:235
    const entries = await readdir(root, { withFileTypes: true })
  • 读取本地文件
    index.js:240
    const info = await stat(join(root, entry.name))
  • 写入本地文件
    index.js:251
    await mkdir(root, { recursive: true, mode: 0o700 })
  • 读取本地文件
    index.js:252
    const entries = await readdir(root, { withFileTypes: true })
  • 删除本地文件
    index.js:257
    await unlink(join(root, entry.name))
  • 读取本地文件
    index.js:270
    info = await lstat(target)
  • 写入本地文件
    index.js:341
    await mkdir(root, { recursive: true, mode: 0o700 })
  • 读取本地文件
    index.js:369
    const info = await stat(published.path)
  • 删除本地文件
    index.js:375
    await unlink(tempPath).catch(() => {})
  • 删除本地文件
    index.js:385
    await unlink(target)
  • 读取本地文件
    index.js:417
    const stream = createReadStream(target)
  • 发起网络请求
    client.js:25
    const response = await fetch(API_PATH, {
  • 发起网络请求
    client.js:250
    const body = await responseJson(await fetch(API_PATH, { cache: 'no-store' }))
  • 发起网络请求
    client.js:421
    const response = await fetch(API_PATH, { cache: 'no-store' })
  • 发起网络请求
    client.js:445
    const response = await fetch(`${API_PATH}?name=${encodeURIComponent(name)}`, { method: 'DELETE' })
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-input-trigger@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-host-webserver
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 输入框上传本地文件
  • 设置中管理文件
  • 提交时传路径给模型

从 DeepSeek Harness Web 输入框上传任意本地文件,并在设置里管理它们。

README

由 DeepSeek 最新模型翻译生成
dsh-file-uploads License: MIT DeepSeek Harness 为 DeepSeek Harness Web 输入框增加任意文件上传功能:文件以待发送卡片显示,提交时把容器内路径提供给模型,并可在设置中统一下载和删除。 功能 - 在现有输入框控制区旁增加 文件 按钮。 - 支持一次选择多个任意类型的本地文件,不限于图片。 - 待发送文件以类似图片附件的卡片悬浮显示在输入框上方。 - 保持编辑框干净:上传后不会向草稿写入可见路径或自动描述。 - 发送消息时,才通过 Harness 内置引用序列化管线把文件绝对路径加入模型内容。 - 提交后清空待发送卡片;提交失败时恢复卡片。 - 所有文件统一保存到固定目录,默认是 $DSH_HOME/uploads。 - 在 设置 → 上传文件 中查看文件,并支持下载和删除。 - 同名文件不会覆盖,自动保存为 name (1).ext、name (2).ext 等名称。 - 支持单文件上限和上传目录总容量限制。 兼容性 - DeepSeek Harness 0.1.0-rc.6 - Web Profile - Node.js 22 或更高版本 Harness 当前的原生附件传输只支持栅格图片。
展开完整文档(README 剩余 1 节)
dsh-file-uploads

License: MIT
DeepSeek Harness

为 DeepSeek Harness Web 输入框增加任意文件上传功能:文件以待发送卡片显示,提交时把容器内路径提供给模型,并可在设置中统一下载和删除。

功能

- 在现有输入框控制区旁增加 文件 按钮。
- 支持一次选择多个任意类型的本地文件,不限于图片。
- 待发送文件以类似图片附件的卡片悬浮显示在输入框上方。
- 保持编辑框干净:上传后不会向草稿写入可见路径或自动描述。
- 发送消息时,才通过 Harness 内置引用序列化管线把文件绝对路径加入模型内容。
- 提交后清空待发送卡片;提交失败时恢复卡片。
- 所有文件统一保存到固定目录,默认是 $DSH_HOME/uploads。
- 在 设置 → 上传文件 中查看文件,并支持下载和删除。
- 同名文件不会覆盖,自动保存为 name (1).ext、name (2).ext 等名称。
- 支持单文件上限和上传目录总容量限制。

兼容性

- DeepSeek Harness 0.1.0-rc.6
- Web Profile
- Node.js 22 或更高版本

Harness 当前的原生附件传输只支持栅格图片。本插件针对任意文件采用 Agent 环境可用的路径方案:先把文件存入 Harness Host/容器,再通过内置输入引用序列化器把路径加入提交内容。

安装

把带版本标签的 GitHub Release 安装到 Web Profile:

dsh plugin --profile web add "github:l541402398/dsh-file-uploads#v1.0.0"

安装后重启正在运行的 Web Profile,并刷新浏览器页面。

如需安装最新开发分支:

dsh plugin --profile web add "github:l541402398/dsh-file-uploads#main"

卸载:

dsh plugin --profile web remove dsh-file-uploads

使用方法

1. 在 Harness Web GUI 中打开一个会话。
2. 点击输入工具栏中的 文件。
3. 选择一个或多个本地文件。
4. 在输入框上方检查待发送卡片,也可以点击 × 移除。
5. 输入普通提示词,或者让编辑框保持为空。
6. 发送消息。模型实际收到的内容中会包含类似:

上传文件:/path/to/.dsh/uploads/report.pdf

这行生成内容在提交前不会显示在编辑框中。文件路径是 Harness Host 所见的路径;在 Docker 部署中,它指容器内部路径。

设置页

插件会新增 上传文件 设置区,显示:

- 固定存储目录;
- 单文件和目录总容量限制;
- 当前空间占用;
- 文件名、大小、修改时间和绝对路径;
- 下载与删除操作。

文件会持续保存,直到手动删除。

配置

插件默认无需配置,可以使用以下环境变量覆盖默认值:

| 环境变量 | 默认值 | 用途 |
| DSH_UPLOAD_DIR | $DSH_HOME/uploads | 上传目录的绝对路径。 |
| DSH_UPLOAD_MAX_BYTES | 104857600 | 单个文件最大字节数(100 MiB)。 |
| DSH_UPLOAD_TOTAL_MAX_BYTES | 1073741824 | 上传目录最大总字节数(1 GiB)。 |

Docker Compose 示例:

services:
dsh:
environment:
DSH_UPLOAD_DIR: /data/dsh/uploads
DSH_UPLOAD_MAX_BYTES: 104857600
DSH_UPLOAD_TOTAL_MAX_BYTES: 1073741824
volumes:
- ./dsh-data:/data/dsh

安全模型

- 文件列表、上传、下载和删除接口使用与 Harness 内置 Web API 相同的回环地址/可信 Host 和 Origin 检查。
- 拒绝浏览器跨站请求。
- 文件名会被规范化,并移除路径片段和控制字符。
- 下载和删除只接受配置目录中的普通文件,不跟随符号链接。
- 上传内容先写入私有临时文件,完成同步后原子发布,不覆盖同名文件。
- 插件启动时自动清理异常中断留下的 .upload-* 临时文件。
- 意外服务端错误只写日志,不把内部路径返回给浏览器。

这套可信边界不是用户账号认证系统。如果 Harness Web GUI 会暴露给其他用户或公网,请使用带身份验证的反向代理保护整个部署,并正确配置 Harness 的 trusted hosts。

开发

运行检查:

npm test
npm run check

这是一个持久化的 Host + Client 双端 Cordis Bundle:

- index.js:Host HTTP 路由、存储、容量和可信请求检查。
- client.js:上传按钮、待发送文件卡片、隐藏引用序列化和设置页 UI。
- cordis.patch.yml:可由 dsh plugin add 安装的 dsh.bundle Composition。
- test/upload-manager.test.js:Host 存储与安全回归测试。

本地链接开发方式见 CONTRIBUTING.md。

许可证

MIT
预览分享卡片长什么样 ↓l541402398/dsh-file-uploads
分享 · DeepSeek Harness Hub
l541402398/dsh-file-uploads

为输入框添加任意文件上传,提交时把路径交给模型

这是你的仓库?认领条目

回到顶部