DeepSeek Harness Hub
← 返回列表

kivensteven8-eng/dsh-file-download

DeepSeek 客户端兼容 / 相关生态spec-screened在 GitHub 查看 ↗
未验证

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

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群