← 返回列表
未验证
DSH 插件:把会话工作区文件变成浏览器直接下载的 HTTP 通道 —— 为 iPad 等局域网/域名设备设计。
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/27 · 已提供中文文档
综合分
27.6
GitHub 分
27.6
用户评分
—
★ Stars
0
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/kivensteven8-eng/dsh-file-download.git数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-file-download
面向 DeepSeek Harness(DSH)的文件下载插件:把会话工作区里的文件变成*浏览器
直接下载的 HTTP 通道 —— 为 iPad Safari / iPhone 等局域网与域名访问设备设计,
让“生成文件保存到本地”不再依赖服务器桌面环境。
背景:DSH 的 host.openPath 属于特权方法,永远只允许回环(loopback)调用;
无桌面 Linux 服务器上即使放开也没有应用能“打开”文件。正确姿势就是 HTTP 下载。
两种用法:独立零依赖服务(不装插件也能用)与 cordis 插件(随 profile
启动)。参考实现见 dsh-pentest 的仓库
形态。
安装
方式一 · DSH 插件(推荐)
从 GitHub 直接安装(仓库根目录即可被 pnpm 解析)
dsh plugin --profile web add github:/dsh-file-download
或本地路径安装
dsh plugin --profile web add ./path/to/repo
安装后重启 profile 生效:
- 列表页 http(s):///…/dsh-file-download/
- 下载 同前缀 + /file?path=
- 前缀可用 cordis.patch.yml 里 config.mountPath 调整
卸载:dsh plugin --profile web remove dsh-file-download
⚠️ 插件随 profile 重启加载 —— 会中断当前会话,建议空余时操作。
方式二 · 独立服务(不动 DSH)
node service.mjs # 默认 0.0.0.0:8766,根目录取 DSH_DL_ROOT 或 cwd
环境变量:
| 变量 | 默认 | 说明 |
|---|---|---|
| DSH_DL_PORT | 8766 | 监听端口 |
| DSH_DL_HOST | 0.0.0.0 | 绑定地址 |
| DSH_DL_ROOT | cwd | 允许下载的工作区根 |
| DSH_DL_MOUNT | 空 | 反代保留前缀时填写,如 /dl |
| DSH_DL_TOKEN | 空 | 设置后所有请求必须带 ?token= |
| DSH_DL_EXTRA_HOSTS | 空 | 额外放行的 Host 授权,逗号分隔 |
反代场景(Caddy 示例)
在 forward_auth 之前挂载,由服务的 ?token= 自行保护
handle /dl {
reverse_proxy 127.0.0.1:8766
}
配套的 watch-caddy.mjs 是一个自愈看门狗:若外部进程会周期性
从磁盘重载 Caddy、把运行时添加的路由冲掉,它可以每 15 秒巡检并自动补回。
安全模型
设计哲学与 DSH 自身的围栏一致(针对无鉴权面的轻量防护,不是认证系统):
1. 只读 —— 仅 GET/HEAD;
2. 严格限定工作区 —— realpath 包含校验,穿越(../)、绝对路径、符号
链接外逃全拒;任意层级的隐藏条目(. 开头)一律 403;
3. DNS 重绑定围栏 —— Host 必须是回环、本机网卡 IP 字面量、主机名或白名单
授权域;跨站标记(Sec-Fetch-Site: cross-site / 异源 Origin)拒绝;
4. 体积上限(默认 500 MB)+ Content-Disposition: attachment +
nosniff + no-store,杜绝被当页面渲染。
中文文件名按 RFC 5987 filename 编码,iPad 上还原正常。
公网暴露请务必置于带认证的反向代理之后。
发布
推送 v 标签即触发 GitHub Actions:npm pack 打包并在 Release 附上
dsh-file-download.tar.gz。
MIT © 2026扫码进群