Skills Plugins MCP Prompt Model 导航 博客 资讯 我的中心
工具与能力 #deepseek-harness#dsh-plugin

dsh-fetch-file

Downloads a URL into the workspace as a file, with a path fence, streaming, and a 200 MB cap.

zhijiangtang @zhijiangtang ⬇ 2 ★ 0 main

安装

dsh plugin --profile web add github:zhijiangtang/dsh-fetch-file
下载安装清单

需要可复现安装时,可在仓库后追加 #commit 固定提交。

Downloads a URL into the workspace as a file, with a path fence, streaming, and a 200 MB cap.

该插件未提供要点说明,请参考仓库 README。

deepseek-harnessdsh-plugin
  1. 安装并启动 DeepSeek Harness:npx @deepseek-ai/dsh web
  2. 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
  3. 用 dsh plugins list 确认已安装,必要时重启 Harness 生效

插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。

代码仓库github.com/zhijiangtang/dsh-fetch-file
许可证MIT
主要语言main
下载量2
GitHub 星标0
最近推送2026-08-16
收录日期2026-09-19
分类工具与能力

事实信息来自公开插件目录快照(2026-10-03),介绍文案由本站再加工。

以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。

# dsh-fetch-file

DSH 插件:把任意 URL 下载为**工作区里的文件**(二进制友好,流式落盘)。纯 ESM、零依赖、无构建。

## 简介

`download` 工具接收一个 URL,跟随重定向抓取响应,流式写入工作区内的文件,返回落盘绝对路径、实际字节数、HTTP 状态码与 Content-Type。适合下载图片、压缩包、PDF、音频、安装包等**二进制资源**——这正是 `web_fetch` 不擅长、而模型常常需要的场景。

## 安装

```sh
dsh plugin --profile <你的 profile> add file:./plugins/dsh-fetch-file
# 或发布到 npm 后:
dsh plugin --profile <你的 profile> add dsh-fetch-file
```

## 参数

| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
| `url` | string | 是 | — | 要下载的 URL(http/https),自动跟随重定向 |
| `dest` | string | 否 | URL 的 basename | 保存路径(**相对工作区根**)。URL 无 basename 时退化为 `download-<时间戳>` |
| `overwrite` | boolean | 否 | `false` | `dest` 已存在时是否覆盖;`false` 且已存在则返回规范错误值 |

## 输出(规范值)

- 成功:`{ ok: true, path, absPath, sizeBytes, status, contentType }`(`path`/`absPath` 均为绝对路径)
- 失败:`{ ok: false, error }`,`error` 为字符串(越界/已存在)或对象(`{ stage: 'http'|'network'|'timeout'|'size'|'aborted'|'fs', ... }`)。**所有失败都走规范值,不抛异常。**

## 与 web_fetch 的区别

| | `download`(本插件) | `web_fetch`(内置) |
|---|---|---|
| 用途 | **下载为文件**,落盘到工作区 | **阅读网页**,返回正文文本给模型 |
| 内容 | 原始字节,**二进制友好**(图片/压缩包/PDF…) | 抓取后提取正文,丢弃二进制 |
| 结果 | 文件路径 + 字节数 + 状态码 | 摘要文本 |
| 上限 | `maxSizeBytes`(默认 200MB) | 受模型上下文/抓取策略限制 |

一句话:需要「拿回来一个文件」用 `download`,需要「读一篇文章」用 `web_fetch`。

## 大小限制

默认单次下载上限 **200MB**(`MAX_SIZE_BYTES = 200 * 1024 * 1024`),超限即中止并返回 `{ ok: false, error: { stage: 'size' } }`,不会留下半成品文件(失败会清理临时写入)。响应通过流式写入磁盘,不会把整个文件读进内存。抓取超时 120 秒(`AbortSignal.timeout`)。

## 安全

- **路径围栏**:`resolve(dest)` 必须位于工作区根(`exec.agent.session.header.cwd ?? process.cwd()`)之内,否则返回 `{ ok: false, error: 'dest 越出工作区' }`。
- 挂载时自检:真实下载一次 `https://example.com/` 到临时文件并删除,再验证越界路径被拒绝,证据行打印到日志。

## License

MIT

数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。