大文件上传与断点续传

先理解原理和示例,再练习完整口述与追问。

切片标识;限流重试;已上传查询;服务端验证和合并。

断点续传需要稳定文件身份、分片编号、服务端已接收状态和最终合并校验。分片上传不等于无限并发;摘要计算、网络和服务器都有限制。暂停需要停止新任务并取消进行中请求,恢复时重新核对缺失分片。文件名与客户端 MIME 不能作为服务端安全校验依据。

流程是选择文件 → 获取上传会话 → 按服务端规则计算身份或摘要 → 查询已完成分片 → 有限并发上传缺失项 → 通知合并 → 服务端校验大小/摘要并发布。进度按已确认字节汇总;某片失败单独退避重试,合并失败不能显示上传成功。大文件摘要可在 Worker 中分块计算。

同名文件可能内容不同,同内容不同名也可能是同一数据。过期会话、重复分片、越权读取、存储配额和恶意文件都需服务端处理。

客户端把文件分片,生成文件标识并记录分片序号;大文件 hash 可放 Worker 避免阻塞。开始前查询服务端已有分片,只上传缺失部分,限制并发,失败分片有限重试。进度按确认上传的字节计算,不能把请求数量直接当字节比例。所有分片到齐后由服务端校验完整性并合并,合并也要幂等。取消时终止未开始及进行中的任务,断点恢复时重新确认文件和已上传记录,服务端还要校验用户、大小与文件类型。