应用上传
应用上传功能用于将各平台的安装包文件上传到厂家管理系统,支持多种文件格式和自动校验。
上传流程
1. 准备安装包
确保安装包文件满足以下要求:
| 平台 | 支持格式 | 大小限制 | 命名规范 |
|---|---|---|---|
| Windows | .exe, .msi | 500MB | chainlesschain-{version}-win.exe |
| macOS | .dmg, .pkg | 500MB | chainlesschain-{version}-mac.dmg |
| Linux | .AppImage, .deb | 500MB | chainlesschain-{version}-linux.AppImage |
| Android | .apk | 200MB | chainlesschain-{version}.apk |
| iOS | .ipa | 200MB | chainlesschain-{version}.ipa |
2. 进入上传页面
登录厂家管理系统
→ 应用管理
→ 版本管理
→ 选择目标版本(状态为草稿)
→ 上传安装包3. 上传文件
1. 点击"选择文件"或拖拽文件到上传区域
2. 系统验证文件格式和大小
3. 显示上传进度条
4. 上传完成后自动计算SHA-256校验和
5. 确认文件信息4. 验证上传
上传完成后,系统自动执行以下验证:
| 验证项 | 说明 |
|---|---|
| 文件格式 | 检查文件扩展名和MIME类型 |
| 文件大小 | 不超过平台限制 |
| 完整性校验 | SHA-256校验和计算 |
| 病毒扫描 | 基础安全扫描(如启用) |
批量上传
支持同时为多个平台上传安装包:
应用管理 → 版本管理 → 批量上传
→ 分别选择各平台的安装包文件
→ 系统并行上传
→ 查看各文件上传状态替换安装包
草稿状态的版本可以替换已上传的安装包:
1. 进入版本详情
2. 点击已上传文件旁的"替换"按钮
3. 选择新文件
4. 确认替换注意
已提交测试或已发布的版本不能替换安装包。如需修改,请创建新版本。
上传配置
分片上传
大文件自动使用分片上传,提高上传稳定性:
- 分片大小: 5MB
- 并发数: 3
- 断点续传: 支持
存储配置
上传的文件存储在系统配置的存储后端:
| 存储方式 | 说明 |
|---|---|
| 本地存储 | 默认,存储在服务器本地磁盘 |
| 对象存储 | 支持S3兼容的对象存储服务 |
常见问题
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 上传速度慢 | 文件过大或网络不稳定 | 检查网络连接,使用有线网络 |
| 上传中断 | 网络断开 | 刷新页面重新上传,支持断点续传 |
| 格式不支持 | 文件格式不在支持列表 | 确认文件格式正确 |
| 校验和不匹配 | 文件传输过程中损坏 | 重新上传文件 |
注意事项
- 上传前确保安装包已通过本地测试
- 使用稳定的网络连接上传大文件
- 上传完成后核对SHA-256校验和
- 同一版本每个平台只能上传一个安装包
- 建议使用推荐的命名规范便于管理
附录:规范章节补全(v5.0.3.108)
为对齐项目用户文档标准结构,下列章节补齐若干未在正文中单独列出的视角。已在正文覆盖的章节在此段仅作简述并标注
见上文指引。
1. 概述
见正文「上传流程」。应用上传模块负责安装包文件的上传、分片、校验与存储,是 应用发布 的文件侧前置步骤。
2. 核心特性
- 拖拽 / 选择上传,4 步向导
- 分片上传(5MB/片、并发 3、断点续传)
- 批量上传 + 替换安装包(仅草稿态)
- 上传后 SHA-256 完整性验证 + 格式 / 大小校验
3. 系统架构
前端(Element Plus 上传组件,分片)
│ REST /api/app-versions/{id}/upload(分片合并)
▼
后端(Spring Boot)→ 安装包存储(本地 / S3 兼容对象存储)
▼
校验 SHA-256 → 写 app_versions 文件元数据4. 系统定位
厂家管理系统的安装包文件入库层,把二进制包安全落地并与版本元数据绑定。
5. 核心功能
| 功能 | 说明 |
|---|---|
| 准备安装包 | 命名规范 + 平台对应格式 / 大小 |
| 上传文件 | 拖拽 / 选择 + 分片 + 进度条 |
| 验证上传 | 格式 / 大小 / SHA-256 / 病毒扫描(可选) |
| 批量 / 替换 | 多平台并行上传、草稿态替换 |
6. 技术架构
前端 Element Plus 分片上传;后端 Spring Boot 接收分片 + 合并 + 校验;存储经「存储配置」可切本地 / S3 兼容对象存储(见正文「上传配置」)。
7. 系统特点
- 分片上传抗大文件 / 弱网中断
- 同一版本单平台单包(防混淆)
- 上传即校验,坏包不入库
8. 应用场景
发布新版本前上传各平台安装包;替换有问题的同版本包;批量导入历史版本。
9. 竞品对比
| 维度 | 本模块 | 直接 FTP 上传 |
|---|---|---|
| 分片续传 | ✅ 5MB/片 | ⚠️ |
| 完整性校验 | ✅ SHA-256 | ❌ |
| 与版本绑定 | ✅ 自动 | ❌ 手工 |
10. 配置参考
分片大小(5MB)/ 并发(3)/ 存储后端(本地 / 对象存储)见正文「上传配置」;大小上限由平台限制 + Nginx client_max_body_size 决定。部署见 安装部署。
11. 性能指标
分片并发(3)上传提升大包吞吐;合并 + SHA-256 校验为 I/O 密集,耗时随包大小线性增长。平台大小上限:PC 500MB / 移动 200MB。
12. 测试覆盖
分片合并、断点续传、SHA-256 校验、同版本替换由后端集成测试覆盖。
13. 安全考虑
- 上传需 ADMIN / DEALER 权限 + JWT
- SHA-256 校验防损坏 / 篡改包入库
- 文件格式 / 大小白名单 + 可选病毒扫描
14. 故障排除
见正文「常见问题」。补充:
| 症状 | 可能原因 | 处理 |
|---|---|---|
| 上传 413 错误 | 超 Nginx body 上限 | 调大 client_max_body_size 或依赖分片 |
| 校验和不匹配 | 网络致分片损坏 | 重传文件(支持断点续传) |
| 同版本传不上 | 已提交测试 / 已发布不可替换 | 创建新版本 |
15. 关键文件
| 资源 | 说明 |
|---|---|
app_versions 表 | 文件路径 / SHA-256 / 大小 |
/api/app-versions/*/upload | 分片上传 API |
| 前端「上传 APP 版本」向导 | 4 步上传界面 |
16. 使用示例
见正文「上传流程」4 步向导(准备 → 进入上传页 → 上传文件 → 验证)。
