dy-dashboard/vault/知识库/工作指南/训练记录/2026-07-16-测试问题图片上传404及附件删除功能.md
2026-10-28 11:14:17 +08:00

63 lines
2.4 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.

# 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 等系统工具确认文件是否真实存在或被删除
- 文件被自动删除不一定是应用代码问题,也可能是系统定时任务/同步脚本导致