在浏览器内用 blob 方式下载文件,绕开迅雷等扩展劫持
29.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add adcgesdad/dsh-blob-download该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 5 处,展示前 5 条)
- 读取本地文件lib/index.js:53
if (xdg && existsSync(xdg)) return xdg - 读取本地文件lib/index.js:56
if (existsSync(p)) return p - 读取本地文件lib/index.js:106
while (existsSync(join(dir, candidate))) { - 读取本地文件lib/index.js:124
entries = readdirSync(dir) - 读取本地文件lib/index.js:132
const st = statSync(p)
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
在 DSH 浏览器里用 blob: 方案下载文件,绕过迅雷等下载扩展的劫持
README
由 DeepSeek 最新模型翻译生成dsh-blob-download
给 DeepSeek Harness 用的下载工具插件:在 DSH 浏览器里用 blob: 方案下载文件,绕过迅雷等下载扩展的劫持。
在 DSH 浏览器内通过 blob: URL 下载文件,下载劫持类扩展(迅雷等)就永远看不到 chrome.downloads 事件。
解决什么问题
迅雷「下载支持」扩展(popomkonnjgcdagdhgcpcekbdeoibglc)会监听 chrome.downloads,把浏览器的下载 cancel 掉,再经 nativeMessaging 交给迅雷客户端建任务——于是你在 DSH 里让智能体下个文件,弹出来的却是迅雷的「新建下载任务」窗口。
但这类扩展在决策函数里通常明确排除了 blob: / data: 协议,因为 blob 无法可靠地交给外部下载器重下。迅雷 v4.1.5 的 bd() 第一条就是:
if (vd.has(new URL(url).protocol)) return false;
// vd = Set(["blob:", "data:", "chrome-extension:", "file:"])
所以在页面内走一遍 fetch → Blob → createObjectURL → .click() 就能让文件老老实实走浏览器自己的下载管线,不触发扩展。
展开完整文档(README 剩余 1 节)
dsh-blob-download
给 DeepSeek Harness 用的下载工具插件:在 DSH 浏览器里用 blob: 方案下载文件,绕过迅雷等下载扩展的劫持。
在 DSH 浏览器内通过 blob: URL 下载文件,下载劫持类扩展(迅雷等)就永远看不到 chrome.downloads 事件。
解决什么问题
迅雷「下载支持」扩展(popomkonnjgcdagdhgcpcekbdeoibglc)会监听 chrome.downloads,把浏览器的下载 cancel 掉,再经 nativeMessaging 交给迅雷客户端建任务——于是你在 DSH 里让智能体下个文件,弹出来的却是迅雷的「新建下载任务」窗口。
但这类扩展在决策函数里通常明确排除了 blob: / data: 协议,因为 blob 无法可靠地交给外部下载器重下。迅雷 v4.1.5 的 bd() 第一条就是:
if (vd.has(new URL(url).protocol)) return false;
// vd = Set(["blob:", "data:", "chrome-extension:", "file:"])
所以在页面内走一遍 fetch → Blob → createObjectURL → .click() 就能让文件老老实实走浏览器自己的下载管线,不触发扩展。
为什么不用 dsh_browser_download
DSH 自带的 dsh_browser_download 走服务商的原生下载通道,而桌面端(desktop shell)不支持它:
browser: download is only available on the self-hosted browser
本插件改走页面内 blob 方案,桌面端同样可用。
安装
插件要求 DSH 0.2.1-rc.5 或更高,并且配置档里装了 dsh-builtin-browser(浏览器工具 dsh_browser_* 的来源,插件要用它的 browser 服务)。
方式一:插件页安装(推荐)
Web 侧边栏 → 插件 → 安装,填本仓库的 git 地址:
git+https://github.com/adcgesdad/dsh-blob-download.git
需要固定版本就在后面加 #<commit>。装完重启 DSH。
方式二:本地源码
git clone https://github.com/adcgesdad/dsh-blob-download.git ~/.dsh/plugin-src/dsh-blob-download
cd ~/.dsh/profiles/desktop
pnpm add link:~/.dsh/plugin-src/dsh-blob-download
然后把包名追加进同一个 package.json 的 bundle 列表:
{
"dependencies": { "dsh-blob-download": "link:..." },
"dsh": { "profile": { "bundles": ["dsh-builtin-browser", "dsh-blob-download"] } }
}
重启 DSH 生效。
方式三:npm(暂未发布)
npm i dsh-blob-download 这条要等包发到 npm 之后才能用,目前请走上面两种。
工具:blob_download
| 参数 | 必填 | 说明 |
| url | 是 | 要下载的 URL(http/https) |
| fileName | 否 | 保存的文件名,不传就从 URL 末段推断 |
| saveDir | 否 | 保存目录(绝对路径),不传用配置或系统下载目录 |
| waitSeconds | 否 | 等待落盘的秒数,默认 30,上限 300 |
返回:
{ ok: boolean, message: string, path?: string, bytes?: number, fileName?: string, verified?: boolean }
verified: true 表示宿主真的在目标目录里看到了大小相符的新文件,不只是「点了一下下载链接」。
行为细节
- 一次只下一个:浏览器对并发触发多个下载会弹「允许下载多个文件」确认框,未确认前后续下载被挂起,看起来就像失败。插件内部串行排队,一个下完(无论成败)才轮到下一个。
- 先落目录再下:下载前会把会话导航到目标 URL 的 origin 根路径,让页面内 fetch 是同源请求(同站资源不受 CORS 限制)。注意不能直接 openUrl 目标文件——那会先触发一次真正的浏览器下载,正好喂给迅雷。
- 文件名消毒:去掉 Windows 不允许的字符和路径穿越段;重名自动加 (1) 后缀。
- 会删空目录:不会。插件只读目录,不清理也不移动文件。
配置
cordis.patch.yml 里可改:
- insert:
- id: blob-download
name: 'dsh-blob-download'
config:
downloadDir: '' # 默认目标目录,留空用系统下载目录 timeoutMs: 120000 # 单次等待上限(毫秒)
已知限制
- 只支持 http/https。file:、data: 等协议会被拒绝。
- 依赖页面能 fetch 到目标 URL。有反爬或需要特殊 header 的站点可能取不到字节。
- 目标站点若禁止跨源读取(没给 CORS 头)且文件不在同站,fetch 会失败。
- 需要 browser 服务在场:没装 dsh-builtin-browser 时工具会直接报错。
许可
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
adcgesdad/dsh-blob-download
在浏览器内用 blob 方式下载文件,绕开迅雷等扩展劫持
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,826已汉化DSH
72.2
花束设计alchaincyf/huashu-design
一句话生成网页、原型、PPT 与信息图等可交付设计
★ 28,638已汉化DSH
71.7
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。