README 更新: 菜单表对齐实际 TUI (1-17)

This commit is contained in:
lou
2026-08-10 22:58:05 +08:00
parent 5a02e6b9e1
commit 54785c67d1
+36 -46
View File
@@ -1,56 +1,46 @@
# 7z-encrypt-tui 终端界面 # 7z-encrypt-tui
7z-encrypt 文件安全传输系统的终端界面。**Python TUI** (input() REPL)——原生支持中文输入法, 不需要图形环境, SSH 也能用。 > 7z-encrypt 终端界面 | Python TUI | 全功能中文菜单
**发行版下载:** Gitee [Releases v1.3.0](https://gitee.com/edgevoid/7z-encrypt-tui/releases) · Gitea [Releases v1.3.0](http://8.136.202.225:3000/edgevoid/7z-encrypt-tui/releases)
[7z-encrypt](https://gitee.com/edgevoid/7z-encrypt) 的终端交互界面(随客户端 deb 一起安装, 或独立运行)。
## 功能菜单
``` ```
主菜单 1. 上传文件 8. 密钥导入 15. 目录管理 (创建/列表/删除)
1. 上传文件 (7z 压缩 → 加密 → 分卷 → 上传) 2. 任务续传 9. 注册账号 16. 移动文件到目录
2. 任务续传 (断点续传: 只补传缺失卷) 3. 配置 10. 登录 17. 克隆文件
3. 配置 (服务器地址 / token) 4. 文件列表 (ls) 11. 注销 q. 退出
4. 文件列表 (ls + 空间配额) 5. 下载文件 12. 重新生成密钥
5. 下载文件 (逐卷下载 → 本地解密 → 解压还原) 6. 删除文件 13. 一键备份 (相册/文档/下载)
6. 删除文件 (先 ls 再选 file_id) 7. 密钥导出 14. 恢复备份
7. 密钥导出 (红色风险警告 + 二次确认, 导出权限 600)
8. 密钥导入 (红色风险警告 + 二次确认, 自动备份 keyring.json.bak)
9. 注册账号 (用户名+密码, 成功即登录)
10. 登录 (token 自动保存)
11. 注销 (token 失效)
12. 重新生成密钥 (红色警告 + 二次确认, 旧密文永久不可解)
q. 退出
``` ```
## 使用 - 上传: 32MB 统一切卷 → 逐卷 7z/加密 → aria2 上传, 可选目标目录(按名自动查/建)
- 下载: aria2 并发拉卷 → 逐卷解密/解压 → 拼接还原
- 备份: 整个文件夹打包一个文件(tar → 卷压缩 → 加密 → 上传), 恢复一键解包
- 登录门禁: 未登录时无文件操作项, 强行输入报错
## 安装
```bash ```bash
python3 scripts/tui.py # 源码运行 # 随客户端 deb 安装 (推荐)
bin/sz-tui # 或 Nuitka 编译版 (原生二进制) sudo dpkg -i 7z-encrypt-client_1.0.0_all.deb
sz-tui
# 独立运行 (源码)
python3 scripts/tui.py
# Nuitka 编译版 (免 Python)
sudo dpkg -i 7z-encrypt-client-bin_1.0.0_amd64.deb
sz-tui
``` ```
- **登录门禁**: 启动先验证登录, 不登录不能进行文件操作 (只有登录/注册/配置) ## 环境变量
- **未登录时文件操作灰掉**: 主菜单动态切换, 未登录界面无文件操作项, 强行输入报错
(每次循环重新验证 token, 注销/失效立即回登录界面)
- 服务器地址自动补 `http://` 前缀, 默认从客户端 config.json 读
- 路径输入自动剥引号 (复制路径常带 ' 或 ")
- 上传成功自动清理临时产物, 失败保留可续传
- 所有耗时操作有 tqdm 进度条 (上传卷条 / 下载双层条 / 加密 / 解密)
## 依赖 | 变量 | 说明 |
|---|---|
- 客户端项目: `/home/lou/文档/7z-encrypt` (7 模块 + .venv) | SZ_CONFIG | 配置文件路径 (默认 ~/.config/7z-encrypt/config.json) |
- tqdm | SZ_CLIENT_DIR | 客户端源码目录 (deb 安装版自动指向 /usr/share/7z-encrypt) |
## 架构
```
tui.py
├─ run() 子进程调 7z-encrypt CLI (cwd=客户端目录, 实时透传输出)
├─ upload() 1/3 7z压缩 → 2/3 加密分卷 → 3/3 上传 → 清理
├─ download() 逐卷下载 + --decrypt 本地解密解压
├─ files_list() ls + 配额
├─ delete_file() ls 展示 → 输 file_id 删除
└─ config() 服务器/token 配置 (调 config.py)
```
## 协议
MIT License, Copyright (c) 2026 edgevoid