63 lines
2.4 KiB
Markdown
63 lines
2.4 KiB
Markdown
# 2026-07-16 测试问题图片上传404及附件删除功能
|
||
|
||
---
|
||
|
||
### 1. 测试环境图片显示异常修复
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 测试环境中,测试问题菜单里面提交反馈时上传图片,保存之后显示图片异常,图片打不开提示 Failed to load resource: the server responded with a status of 404 (NOT FOUND)
|
||
|
||
**OpenClaw 响应:**
|
||
修复了 `feedback.js` 第 217 行审核页图片路径多了一层 `/static` 的问题(路径拼接错误导致变成 `/static/static/uploads/feedback/...` → 404)。同时将修复同步到生产环境。
|
||
|
||
---
|
||
|
||
### 2. 生产环境文件被自动删除问题排查及修复
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 生产环境图片也是 404
|
||
|
||
**OpenClaw 响应:**
|
||
经过长时间排查发现:
|
||
1. 文件保存流程正常(`f.save()` 执行成功、数据库记录路径)
|
||
2. 文件被 `rsync` 每分钟自动删除(审计日志确认)
|
||
3. 根因:本机存在 `sync_feedback_files.sh` 脚本,通过 cron 每分钟运行 `rsync -az --delete` 把测试环境的空附件目录同步到生产环境,导制生产文件被删
|
||
4. 该脚本由之前的训练笔记记录创建,但旭东此前已要求停用,未执行且未记录
|
||
|
||
**修复措施:**
|
||
- 删除 cron 任务
|
||
- 删除 `sync_feedback_files.sh` 脚本
|
||
- 全新部署测试环境代码到生产(完整打包部署)
|
||
|
||
---
|
||
|
||
### 3. 生产环境重启及数据恢复
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 重启服务器
|
||
|
||
**OpenClaw 响应:**
|
||
重启生产服务器后 gunicorn 正常启动。后续将 feedback 表重命名为 feedback_old 并重建新表进行诊断,最后恢复为旧表。
|
||
|
||
---
|
||
|
||
### 4. 附件删除功能
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 需要你帮我添加一个附件删除图标,每个附件可以删除
|
||
|
||
**OpenClaw 响应:**
|
||
实现附件删除功能:
|
||
- 后端:新增 `/api/feedback/delete_attachment` API(本人或管理员可操作)
|
||
- 前端:反馈详情页和审核页的每个附件右上角显示删除按钮(红色 ✕)
|
||
- 删除时确认弹窗,删除后刷新详情
|
||
- 测试环境和生产环境都已部署
|
||
|
||
---
|
||
|
||
### 5. 经验教训
|
||
|
||
- 之前旭东要求停用 `sync_feedback_files.sh` 的指令未记录到知识库,也未执行。教训:必须随做随记
|
||
- 排查文件名不能只用浏览器判断,需要通过 stat/audit 等系统工具确认文件是否真实存在或被删除
|
||
- 文件被自动删除不一定是应用代码问题,也可能是系统定时任务/同步脚本导致
|