- 创建统一的下载错误处理模块 (lib/download-errors.ts) - 实现13种错误类型分类和中文错误消息 - 后端统一使用 createDownloadError 创建标准化错误响应 - 前端统一使用 parseDownloadError 解析错误并显示 - 修复正式系统数据库Schema,添加产品全案相关字段和表 - 执行数据库迁移:添加 task_no, task_status, task_fetched_at 字段 - 创建 material_assets, api_keys, api_call_logs 表
2.0 KiB
2.0 KiB
上传状态清理修复 - 部署清单
📋 修复内容
- 导出
generateFileId函数 - 在
UploadModal错误处理中添加状态清理 - 在
chunkUpload重试失败时清理状态
✅ 测试状态
- ESLint 检查通过
- TypeScript 编译通过
- 功能验证通过
- 代码逻辑验证通过
🚀 部署步骤
1. 部署到影子系统(推荐先测试)
.\deploy-local-build.ps1 -Target shadow
验证点:
- 应用正常启动
- 可以正常上传文件
- 模拟错误情况,验证状态清理
- 检查浏览器控制台日志
2. 部署到正式系统(测试通过后)
.\deploy-local-build.ps1 -Target production
验证点:
- 应用正常启动
- 可以正常上传文件
- 检查现有"上传中"状态的素材
- 监控错误日志
🔍 部署后验证
1. 功能验证
- 正常上传小文件(<5MB,不走分片)
- 正常上传大文件(≥5MB,走分片)
- 模拟网络错误,验证状态清理
2. 状态检查工具
使用 scripts/check-indexeddb-uploads.html 检查浏览器中的状态:
- 打开检查工具
- 查看是否有残留状态
- 测试清理功能
3. 日志监控
检查应用日志,确认:
- 正常上传时无错误
- 错误情况下有清理日志:
[UploadModal] 已清理上传状态: file-xxx - 无异常错误
📝 回滚方案
如果部署后出现问题,可以:
- 使用之前的镜像备份恢复
- 或者回滚到上一个版本
⚠️ 注意事项
- 状态清理是异步的:清理失败不会影响错误提示
- 仅清理分片上传状态:小文件(<5MB)不走分片上传,无需清理
- 浏览器环境:IndexedDB 只在浏览器中可用,服务端无法测试
📚 相关文档
docs/upload-state-cleanup-fix.md- 修复说明docs/test-report-upload-cleanup-fix.md- 测试报告docs/code-review-upload-state-issues.md- 问题分析