Files
mokeeText/memory/session-20260628-4.md
2026-07-15 16:08:17 +08:00

97 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: session-20260628-4
description: 2026-06-28 第4次会话 — 切换系统按钮 + 目录整理 + 项目/部署文档 + 文件服务接入与回退
metadata:
type: session
date: 2026-06-28
sessionNumber: 4
startTime: 2026-06-28T04:45:00+08:00
---
# 2026-06-28 第4次会话
## 会话摘要
1. 顶栏添加「切换系统」按钮 → `https://web.gw.zgitm.com/select`
2. 项目目录彻底整理backend/ frontend/ deploy/ 三目录分离
3. 编写项目文档 `docs/README.md` 和部署文档 `docs/DEPLOY.md`
4. 图片存储接入文件服务 → 部署排错 → 最终回退到 DB 存储,保留文件服务代码备用
## 代码改动
### 1. src/App.vue — 顶栏右侧加「切换系统」按钮
- **位置**: 顶栏 [☰ MoKeeText] 右侧空白
- **跳转**: `https://web.gw.zgitm.com/select`(外部链接,非 Vue 路由)
- **样式**: ghost 风格 `.switch-system-btn`hover 变蓝
### 2. 项目目录整理
**整理前** → 根目录混在一起app.py / index.html / Dockerfile / routes / src / static 等全在一个目录)
**整理后**:
```
mokeeText/
├── backend/ # FastAPI 后端
│ ├── app.py, models.py, config.py, logger.py, init_db.py
│ ├── file_service.py # 文件服务客户端(备用,当前未启用)
│ ├── requirements.txt, Dockerfile, .dockerignore
│ ├── routes/ # notes, websites, import_api, upload, share
│ └── middleware/ # user_context
├── frontend/ # Vue 3 前端
│ ├── index.html, package.json, vite.config.js
│ ├── Dockerfile.frontend, nginx.conf, .dockerignore
│ ├── src/ # Vue 源码
│ └── static/ # dist + js/vendor + css + uploads
├── deploy/ # 部署
│ ├── docker-compose.yml
│ └── deploy.py # 日常部署SSH 密钥认证)
├── docs/
│ ├── README.md # 项目文档
│ └── DEPLOY.md # 部署文档
├── memory/ # 会话记忆
└── templates/ # 旧 Jinja2 模板(已废弃)
```
### 3. 配置更新
- **docker-compose.yml**: build context → `./backend` / `./frontend`
- **Dockerfile**: 新增 COPY file_service.py
- **deploy.py**: 路径更新 + 改用 SSH 密钥(无密码),运行: `python deploy/deploy.py`
- **.dockerignore**: 分别放在 backend/ 和 frontend/ 下
### 4. 图片存储 — 接入文件服务后又回退
**过程**:
1. 新增 `backend/file_service.py` — 封装文件服务 API系统码 `mokeetext-edit`,目录 `/mokeetext-images/`
2. 修改 models.py — Upload 表新增 `file_id` 字段data 改为 nullable
3. 修改 init_db.py — 新增 migrate() ALTER TABLE
4. 改造 upload.py — 上传走文件服务,读取兼容 file_id + blob 双通道
5. 添加 requests 依赖
**排错过程**:
- 🔴 Dockerfile 遗漏了 COPY file_service.py → 容器内无此文件,上传走旧代码
- 🔴 SCP 时把 routes/upload.py 传到 backend/ 根目录而非 backend/routes/ 子目录 → 容器用的是旧代码
-`--no-cache` 强制重建 + 修正文件路径后成功接入,文件服务出现 2 张图片
**最终决定**: 用户要求恢复 DB 存储,保留文件服务代码
- `upload.py` 改回 DB LONGBLOB 存储
- 读取优先 blobfile_id 存在时走文件服务(兼容之前 2 张图)
- `file_service.py` 保留不删,注释标注备用切换方式
## 当前状态
- **图片存储**: MySQL LONGBLOB + 文件服务兼容读取(备用)
- **file_service.py**: 保留,如需切换取消注释即可
## 部署
- ✅ 目录迁移(服务器同步整理)
- ✅ Docker 重建backend + frontend 均在运行)
- ✅ 数据库迁移file_id 列已添加)
- ✅ deploy.py 改用 SSH 密钥认证
- ✅ 服务器 SSH 密钥认证正常工作
## 重要资产
- 文件服务 API 文档: `E:\AI\claude\new\fileServer\goFileService\docs\api.md`
- 参考项目 control-web: `E:\AI\claude\new\deployServer\control-web`
- 项目文档: `docs/README.md` + `docs/DEPLOY.md`
## 待处理
- [ ]`templates/` 目录可删除Jinja2 已废弃)