mirror of
https://github.com/Gloridust/WechatOnCloud.git
synced 2026-06-16 19:53:53 +08:00
1c34777353
管理页 → 实例「管理」→ 数据卷(仅 admin)。解决大量用户"把 PC 微信数据迁移上 docker"的诉求。 - 整卷备份:流式打包 /config 为 .tar.gz 下载(大文件不入内存);恢复:上传覆盖回 /config。 machine-id 存在卷内随包迁移 → 跨 woc 实例恢复可保留聊天记录。 - 文件浏览器:浏览/上传/上传并解压(.tar/.tar.gz)/下载/改名/移动/删除;PC 数据打包上传解压后重启实例。 - 全程在运行中的实例上操作(exec + docker cp,运行容器才可 exec);恢复为全量覆盖,强提示并建议重启。 - 安全:仅 admin;路径严格限制在 /config、禁止 .. 穿越;上传落地为 abc 属主。 - docker.ts 抽出 extractSingleFileFromTar 复用(PAX 头跳过),新增 list/mkdir/move/delete/upload/ extract/download/backup(stream)/restore;index.ts 加 9 个 /volume 管理路由;前端 VolumeManager 弹窗 + 线性 SVG 图标(替代渲染不一致的 emoji);新增 doc/数据卷管理.md。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.4 KiB
2.4 KiB
数据卷管理与数据迁移
返回 ← README
管理员专用。 每个实例的「数据卷」= 容器内 /config 持久卷,含微信全部数据(登录态、加密聊天库、配置等)。
入口:管理页 → 实例卡片「管理」→ 数据卷。子账号不可见(数据卷等同完整微信会话凭据)。
提供两块能力:整卷备份 / 恢复 与 文件浏览器(浏览 / 上传 / 上传并解压 / 下载 / 改名 / 移动 / 删除)。
整卷备份 / 恢复(最可靠)
- 下载整卷备份:把
/config流式打包成.tar.gz下载(大文件不进内存,边打包边下)。用于离线备份、换宿主、跨实例迁移。 - 恢复备份:上传
.tar.gz覆盖写回/config;恢复后在卡片上「重启」实例以加载数据。 - 为什么能保留聊天记录:唯一设备标识存在卷内的
.woc-machine-id,会随备份一起迁移 → 目标实例解密环境一致,聊天记录可还原。这也是 woc 实例之间迁移的推荐方式。详见 设备伪装。
备份大小 ≈ 卷大小(微信数据常为数百 MB ~ 数 GB),请按网络情况耐心等待。
把 PC 微信数据迁移上来
- 在 PC 上把微信数据文件夹打包成
.tar.gz; - 数据卷 → 进入目标目录 → 「上传并解压」(也支持
.tar); - 在卡片上「重启」实例。
⚠️ 能否解密取决于微信版本与设备绑定:微信本地库通常按设备/账号加密,跨设备直接复制数据库不保证能在新实例打开,请自行测试。最可靠的是「本系统导出的整卷备份」在 woc 实例间恢复。
安全与注意
- 仅管理员可用;子账号永不可见(数据卷 = 完整微信会话凭据)。管理员本就持有
docker.sock(宿主 root),不新增风险。 - 所有路径严格限制在
/config内,禁止..穿越。 - 全程在「运行中」的实例上操作(底层用
docker exec浏览/改名/删除、用docker cp传输)。改动微信正在使用的数据后,需重启实例方可生效;大改动前建议先「下载整卷备份」留底。 - 实例未运行时:只能做整卷备份 / 恢复;文件浏览需实例运行中。
- 上传的文件落地为容器内
abc属主(微信进程可读)。