前言¶
在 DSH 里做项目时,工作区文件往往只留在本机:要备份、要传到网盘、要让 Agent 上传刚生成的产物,常见做法是再装一套云盘客户端,或自己写脚本调开放平台接口。123 云盘若走开放平台,还需要 appid / secret,对个人或小团队并不总是顺手。
下面介绍社区插件 dsh-123pan(维护者 cny919191):把 123 云盘 接进 DSH,用手机号或邮箱加密码登录,在宿主内浏览、上传、下载、管理文件,并支持把工作区增量备份到云端。网络请求、MD5、16MB 分片上传、CDN 下载、token 加密在随包提供的 C++ 静态核心 123pan-core.exe 中完成;插件层用 Node.js 做参数拼装与 UI,README 写明不依赖 Python,也不需要额外运行时。
这是什么¶
架构可以概括为:
dsh 插件 ──工具/设置页──▶ 123pan-core.exe(C++ 静态链接)──▶ 123 云盘
插件在 DeepSeek Harness 中注册 Agent 工具与本机 HTTP 路由,并提供左侧栏「123 云盘」面板与「设置 → 123 云盘」配置页。当前核心的传输与加密实现面向 Windows(Winsock、DPAPI、系统证书存储);README 说明移植到 Linux/macOS 需替换连接层与平台工具部分。
- 目录页:skillhub.cn/plugins/cny919191/dsh-123pan
- 源码与文档:github.com/cny919191/dsh-123pan
- 许可证:MIT(见仓库
package.json) - 当前资料中的版本号:1.3.5.1
核心功能¶
以下能力均来自仓库 README 的功能表与说明。
| 能力 | 说明 |
|---|---|
| 登录 | 手机号 / 邮箱 + 密码(密码只用于换 token,不落盘);也可粘贴客户端 JWT,或通过配置 apiToken 免账号密码 |
| 会话 | token 本地用 Windows DPAPI 加密;status 时会自动续期 |
| 文件操作 | 列目录、翻页、按文件名搜索、回收站;上传(MD5 秒传 + 16MB 分片);下载(直链 + 单流写入);临时签名直链 |
| 管理 | 重命名、移动、删除(默认进回收站,可彻底删除) |
| 备份 | 工作区增量备份:跳过未变化文件、保留目录结构、支持预演(dryRun) |
| UI | 侧栏云朵图标浏览网盘;拖拽上传(或选文件);点行内「下载」;点文件名在线预览文本 / 图片 / 视频 / 音频 / PDF;设置页与侧栏跟随宿主亮暗主题 |
侧栏拖拽上传受浏览器限制:面板把 File 读成 base64,经 POST /api/dsh-123pan/uploadBytes 落到临时文件后交给核心上传,单文件上限由 maxFileBytes 控制(默认 200MB)。
下载目录优先级(前者优先):请求里的 out → dir → 配置 downloadDir → 当前会话工作区根目录。面板底部可改下载目录,默认跟随工作区;切换工作区后目录会更新。
安装与启用¶
安装前请自行查看仓库源码与 MIT 许可证;插件以当前 DSH 进程权限运行,并会启动本机子进程访问网盘与会话文件。
方式一:下载 Release(README 推荐)¶
从 Releases 下载 dsh-123pan-vX.Y.Z.zip,解压到固定目录(例如 D:\plugins\dsh-123pan)。该 zip 是插件目录,不是安装程序。
1、用目录联接挂到 profile 的 node_modules(示例为 Windows,不需要管理员):
cmd /c mklink /J "%USERPROFILE%\.dsh\profiles\<profile>\node_modules\dsh-123pan" "D:\plugins\dsh-123pan"
2、编辑 %USERPROFILE%\.dsh\profiles\<profile>\package.json,dependencies 与 dsh.profile.bundles 两处都要加:
{
"dependencies": { "dsh-123pan": "file:D:/plugins/dsh-123pan" },
"dsh": { "profile": { "bundles": ["...", "dsh-123pan"] } }
}
3、完全退出 DSH(任务管理器确认 DeepSeek Harness.exe 已结束)后再打开。在「设置 → 插件」确认 dsh-123pan 已启用,再打开「设置 → 123 云盘」登录。
方式二:从源码¶
先在插件目录构建核心(README 写明需要 MSYS2 ucrt64 的 g++),再安装进指定 profile:
cd native/core
./build.sh
dsh plugin --profile <profile> add /absolute/path/to/dsh-123pan
更细的排查步骤见仓库 docs/USAGE.md。
配置¶
可在 profile 的 cordis.patch.yml 中覆盖下列项(均有默认值):
- id: dsh-123pan
config:
defaultRemoteDir: dsh-backup/my-project
maxFileBytes: 209715200
maxFiles: 5000
ignoreDirs: ['.git', 'node_modules']
ignoreGlobs: ['*.log', '*.tmp']
storeDir: ''
corePath: ''
apiToken: ''
apiToken 非空时,可直接用 API Key 作为会话,无需在 UI 里登录。
典型用法¶
日常:侧栏与设置页¶
- 左侧栏点云朵图标:浏览当前网盘目录,拖文件上传或选文件上传。
- 「设置 → 123 云盘」:登录、查看容量、配置备份、关于信息。
会话里让 Agent 备份工作区¶
README 示例话术:
把当前工作区备份到 123 云盘的
dsh-backup/python,先预演一遍。
对应工具包括 pan123_backup_workspace(支持 dryRun)、pan123_backup_status、pan123_scan_workspace 等;完整工具列表见 README「给 agent 用的工具」一节。
本机 HTTP API(脚本 / Agent)¶
插件注册 http://127.0.0.1:<port>/api/dsh-123pan/*,README 强调只接受本机回环与 POST,并校验 Origin / Sec-Fetch-Site。
按本地路径批量上传:
curl -X POST http://127.0.0.1:<port>/api/dsh-123pan/uploadBatch \
-H 'content-type: application/json' \
-d '{"files":["D:\work\a.zip","D:\work\b.txt"],"parentId":0}'
下载到指定目录(不传 out/dir 时落到工作区根目录):
curl -X POST http://127.0.0.1:<port>/api/dsh-123pan/download \
-H 'content-type: application/json' \
-d '{"fileId":123,"name":"a.zip","dir":"D:\work"}'
用客户端 JWT 登录一次后复用会话:
curl -X POST http://127.0.0.1:<port>/api/dsh-123pan/loginToken \
-H 'content-type: application/json' \
-d '{"token":"eyJhbGciOiJIUzI1NiIs..."}'
Agent 上传自己生成的文件时,仓库建议阅读 AGENT.md,避免再生成 Python 中转脚本。
适用场景与注意¶
适合谁:已在用 123 云盘、希望在 DSH 工作流里完成上传下载与增量备份的个人开发者;需要 Agent 直接调本机 API 或 pan123_* 工具、而不是手写网盘脚本时。
需要知道的限制:
- 接口走的是客户端私有 API,不是开放平台文档里的稳定开放接口,README 建议个人账号低频自用,高频可能触发风控。
- 核心
123pan-core.exe在工作区内可能带 Low 完整性标签,写不了部分系统目录;下载失败时会先落到工作区下的.dsh-123pan-staging\,再由 Node 搬到目标路径。 - HTTP 桥仅监听本机;token 密文在
$DSH_HOME/dsh-123pan/session.dat,绑定当前 Windows 用户 DPAPI,不宜当作可迁移的明文凭证。
DeepSeek Harness 的生态是「一切皆插件」;SkillHub 上的插件目录由社区维护,与 DeepSeek / 幻方无官方从属关系。选用插件前请自行审阅源码与发布包。
结尾¶
dsh-123pan 把 123 云盘的登录、传输与增量备份收进 DSH 一条链路:侧栏与设置页给人用,HTTP 路由与 pan123_* 工具给 Agent 用,C++ 核心承担协议与加密细节。若要安装或查版本,以 GitHub Releases 与 README 为准;插件介绍页见 skillhub.cn/plugins/cny919191/dsh-123pan。