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

4.1 KiB
Raw Blame History

name, description, metadata
name description metadata
session-20260628-4 2026-06-28 第4次会话 — 切换系统按钮 + 目录整理 + 项目/部署文档 + 文件服务接入与回退
type date sessionNumber startTime
session 2026-06-28 4 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-btnhover 变蓝

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 已废弃)