1. 项目背景与需求分析
军工行业卫星视频传输面临的核心挑战在于文件体积庞大(通常单个文件超过10GB)、网络环境复杂(跨地域、跨网络隔离区)以及安全合规要求严格。传统HTTP上传方式在遇到网络波动时会导致整个文件传输失败,且无法满足军工行业对传输稳定性和安全性的苛刻要求。
我们基于百度WebUploader进行深度改造,主要解决三个痛点:
- 跨浏览器兼容性问题(需支持IE8+及国产浏览器)
- 超大文件(100GB+)的稳定传输
- 军工级数据安全保障
关键指标:支持单文件最大100GB,传输中断后可从最近分片续传,传输成功率需达到99.99%
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心技术方案设计
2.1 整体架构
采用前后端分离设计:
code复制[浏览器端]
→ WebWorker分片计算
→ IndexedDB存储分片元数据
→ 加密传输通道
→ [服务端]
→ 分片临时存储
→ 原子性合并操作
→ 国密SM4加密存储
2.2 分片策略优化
原生WebUploader的固定分片策略(默认5MB)不适合卫星视频场景,我们实现动态分片算法:
javascript复制function calculateChunkSize(fileSize) {
const MIN_CHUNK = 10 * 1024 * 1024 // 10MB下限
const MAX_CHUNK = 200 * 1024 * 1024 // 200MB上限
const ideal = Math.sqrt(fileSize * 0.2) // 经验公式
return Math.max(
MIN_CHUNK,
Math.min(
Math.round(ideal / (1024 * 1024)) * 1024 * 1024,
MAX_CHUNK
)
)
}
2.3 断点续传实现
- 前端持久化方案:
javascript复制// 使用IndexedDB存储上传状态
const db = new Dexie('UploadRecords')
db.version(1).stores({
chunks: '++id, fileMd5, c
