发布时间: 2026年10月28日更新时间: 2026年10月28日

App 大文件上传:断点续传与完整性测试

移动 App 跨地区上传出现失败时,如何区分网络中断、续传行为与文件完整性问题?本文介绍合成样本、恢复条件、哈希核验和服务端分片检查。

大文件上传出问题,第一件事是分清三种失败:文件没传完、传完但内容损坏、传完但服务端没收到完整对象。三种用的证据完全不同——字节进度、校验和、服务端分片记录——混在一起记,就会把产品缺陷记成网络抖动。

测试自有 App 上传时,先用固定内容的合成文件建立基线,再按产品支持的方式制造网络中断。地区出口用于观察链路差异,不能代替上传完整性检查;本文聚焦自有 App 与存储服务。

准备可重复的上传样本

准备几种大小的合成文件,使用可重复生成的内容,并在上传前计算哈希。样本大小应覆盖产品实际支持的路径;是否分片由产品实现决定,不预设所有大文件都必须分片。文件名可带用例编号,便于查找服务端对象。

不要用真实用户文件。先在基准网络下确认样本可正常上传,再比较其他网络条件。

检查中断后的恢复行为

飞行模式可直接切断网络;切后台和锁屏则不保证中断上传,有些系统会继续执行任务。记录设备实际状态、任务是否暂停,以及恢复从何处继续。预期应以产品对后台传输和续传的承诺为准:承诺续传却无法恢复,才按相应契约判断;没有续传承诺时,从头重传本身不一定是缺陷。最终核对文件大小、源文件与目标文件哈希,以及产品使用分片时的分片清单。

若上传超时,记录发生阶段和网络条件,再在其他条件不变时复测。换出口可帮助判断现象是否随网络条件变化,但不能单独确定根因。

校验完整性:哈希、分片与重复

上传完成后核对源文件与服务端对象的大小、哈希;使用分片时再检查分片内容、序号和合并清单。若结果不一致,结合客户端和服务端记录定位,不能仅凭哈希差异断定责任环节。

界面显示成功不等于服务端对象完整。记录校验结果和服务端确认状态,区分内容损坏与对象不完整。

检查失败清理与重试

还要检查失败清理和重试:临时文件及未完成分片是否按策略过期,重试是否有上限与退避,避免反复失败造成存储、流量或电量异常。

记录这些条件和观察结果,才便于比较不同网络下的表现。

每轮记录文件大小、网络条件、中断时的系统状态、恢复位置、哈希和适用的分片证据。验收依据是产品对续传、完整性和重复提交的约定。

常见问题

能用真实用户文件做测试吗?

优先使用合成文件,便于重复生成和核对哈希,也可避免暴露用户内容。确需使用真实文件时,应先取得授权并做好脱敏。

上传显示成功,但服务端文件损坏,怎么判断?

先比对源文件与目标对象的哈希,再查看分片内容、合并清单及服务端日志。把异常记录下来后,再根据各阶段证据定位。同一上传会话的重试与新建上传要分开判断;清理策略不能删除仍有效续传所需的数据。

断点续传和分片上传是一回事吗?

不是。续传靠服务端记录已接收的偏移量,分片是传输方式;两者常一起用,但可以单独成立,验收时要分别检查。

换地区一定要用代理 IP 吗?

不一定。测试上传逻辑可用本地弱网条件;比较地区链路则需一个可确认的目标地区出口,可以是代理或目标地区测试机。