# 使用说明(使用事项) > 面向使用者的完整说明。安装、登录、上传下载、备份、给 AI 用、常见问题、风险提示。 --- ## 1. 这是什么 一个 **DeepSeek Harness(DSH)插件**,把 [123 云盘](https://www.123pan.com/) 接进 DSH: - 在 DSH 里**登录 123 云盘**(手机号 / 邮箱 + 密码,或直接粘贴 token) - **侧边栏面板**里浏览网盘、拖拽上传、点击下载 - 把**工作区增量备份**到云端(跳过没变的文件、保留目录结构) - 给 **AI / 脚本**一套工具和 JSON API,直接上传下载 不需要安装 123 云盘桌面客户端,也不需要开放平台的 appid / secret。 ``` DSH 插件(Node/JS) ──工具 + 设置页 + 侧栏面板──▶ 123pan-core.exe(C++ 静态链接)──▶ 123 云盘 ``` 网络请求、MD5、16MB 分片上传、CDN 下载、token 加解密全在 C++ 核心里; 插件层只做参数拼装与界面,不依赖 Python,也没有任何运行时依赖。 --- ## 2. 安装 ### 2.1 前置 | 项目 | 要求 | |---|---| | 操作系统 | **Windows 10 / 11(x64)** | | DSH | 0.2.x(desktop 或 web profile 均可) | | 核心程序 | `native/core/123pan-core.exe`(仓库内已附带,静态链接) | ### 2.2 装进 DSH DSH 的插件从 profile 的 `package.json` 里登记。两种方式: **方式 A:本地目录链接(推荐,便于更新)** ```powershell # 1) 把仓库放到一个固定位置,例如 D:\plugins\dsh-123pan # 2) 在 profile 的 node_modules 里做目录联接(junction,不需要管理员) cmd /c mklink /J "%USERPROFILE%\.dsh\profiles\\node_modules\dsh-123pan" "D:\plugins\dsh-123pan" ``` 然后编辑 `%USERPROFILE%\.dsh\profiles\\package.json`: ```json { "dependencies": { "dsh-123pan": "file:D:/plugins/dsh-123pan" }, "dsh": { "profile": { "bundles": [ "...其它 bundle...", "dsh-123pan" ] } } } ``` **两处都要加**:`dependencies` 决定包能被解析,`dsh.profile.bundles` 决定它被加载。 只加依赖不加 bundles 是最常见的"装了没反应"原因。 **方式 B:直接从 GitHub 装** DSH 侧栏「插件 → 添加插件」支持填 Git 地址 / 本地路径 / tgz。 若走 npm registry 形式,仓库需要先发布成 npm 包(本仓库默认不发布)。 ### 2.3 重启 DSH 插件模块在启动时加载,**必须完全退出 DSH 再打开**。 > 注意:Windows 上"关窗口"不一定退出进程。用任务管理器确认 `DeepSeek Harness.exe` 全部消失, > 或者结束主进程后再双击图标。只关窗口会出现"改了代码没生效"的假象。 ### 2.4 确认装好了 - 左侧栏出现 **云朵图标**,点开是网盘面板 - 「设置 → 123 云盘」出现对应页签 - 对话里 AI 能用 `pan123_status` 等工具 --- ## 3. 登录 打开「设置 → 123 云盘 → 账号」,填手机号或邮箱 + 密码,点登录。 - 密码**只用于换一次 token**,不会保存 - 拿到的 JWT 用 **Windows DPAPI** 加密后存在 `%USERPROFILE%\.dsh\dsh-123pan\session.dat` - 该文件拷到别的 Windows 用户/机器上**解不开**(密钥与用户绑定) 也可以让 AI 直接登录: > 帮我登录 123 云盘,账号 138xxxxxxxx,密码 ******** 或者只给 token(不交出密码): ```bash curl -X POST http://127.0.0.1:/api/dsh-123pan/loginToken \ -H 'content-type: application/json' \ -d '{"token":"eyJhbGciOi...","nickname":"我的账号"}' ``` --- ## 4. 侧栏面板:上传与下载 左栏点击云朵图标进入面板。 ### 4.1 上传 两种方式,都会传到**当前所在目录**: 1. **把文件拖进面板**(虚线框区域)——支持多选 2. 点「选择文件」按钮 > 浏览器拿不到本地文件路径,所以拖拽上传是:浏览器读文件 → 转 base64 → > POST 给宿主 → 宿主落成临时文件 → 交给核心上传 → 删临时文件。 > 这条路的代价是**整个文件要先进浏览器内存**:64MB 以上插件会直接拦下并提示改用路径上传。 **大文件用「按路径上传」**:拖拽区下面有一个输入框,填本机完整路径(如 `G:\93阅兵.mp4`)后点「按路径上传」或回车。宿主直接把路径交给核心分片上传, **不经过浏览器内存**,几百 MB 到数 GB 都能传。实测 705MB 视频约 130 秒。 ### 4.2 下载 点文件行右侧的「下载」。 **保存目录默认是当前工作区根目录**,面板底部可以看到并修改: - 默认显示「自动跟随当前工作区」,在侧栏切换工作区后会自动变 - 手动编辑输入框 → 变成固定目录,旁边出现「跟随工作区」按钮,点一下恢复自动跟随 同名文件不会覆盖,会自动加 ` (1)`、` (2)`。 ### 4.3 在线预览 **点文件名就能看**,不用先下载: | 类型 | 支持格式 | 说明 | |---|---|---| | 文本 | `.txt .md .json .log .yml .ini .csv .py .js .ts .c .cpp .go .rs .sql .lrc ...` | 宿主拉取后解码,UTF-8 → GBK → latin1 逐级回退;2MB 上限 | | 图片 | `.jpg .jpeg .png .gif .webp .bmp .avif` | 弹层内等比缩放 | | 视频 | `.mp4 .webm .mkv .mov .avi` | 带播放条,**支持拖进度**(服务端转发 Range) | | 音频 | `.mp3 .flac .wav .ogg .m4a .aac` | 带播放条 | | PDF | `.pdf` | 用浏览器内置阅读器 | 其他类型(压缩包、Office 文档等)会提示「不支持在线预览,请下载后查看」。 按 `Esc` 或点背景关闭,点右上「关闭」也可以。 > 为什么需要代理:123 云盘直链的 `Content-Type` 一律是 `application/octet-stream`。 > `` 会嗅探所以直链也能显示,但 `