用户体验与状态流转

体验不等于进度条

断点续传需要产品层面的配合。用户不应该只看到一个模糊的进度条,而应该看到清晰、可预期的状态:

  • 正在校验文件
  • 正在上传(第 N / M 个分片)
  • 已暂停,可继续
  • 正在合并
  • 正在安全扫描
  • 上传完成

状态与文案

把技术状态翻译成用户语言:

uploading  ->  正在上传 62%(已上传分片 5/8)
paused     ->  已暂停,点击继续上传
merging    ->  正在合并文件,请稍候
scanning   ->  正在安全检查
available  ->  上传完成,可以查看

关键点:合并和校验对超大文件很耗时,一定要异步化,否则用户会看到「卡在 100%」。

弱网与中断的体验

弱网环境下断点续传的价值最明显:

  • 上传中断后,重新连接自动从断点继续。
  • 用户切后台、锁屏、刷新页面,任务状态保留。
  • 重新进入页面时,提示「发现未完成的上传,是否继续?」。

秒传的体验

断点续传 + hash 识别还能带来一个惊喜体验——秒传:

用户上传一个文件,服务端发现「这个文件的 hash 已经存在」, 直接返回可用,不用真的传输内容。

实现前提:服务端保存了文件 hash 索引,且能确认内容一致。这是「识别同一上传」策略的副产品,能极大提升重复上传场景(如团队共享素材)的体验。

体验的边界

体验设计要克制,避免误伤:

  • 自动续传要可关闭(用户可能不想继续)。
  • 大文件合并 / 扫描耗时,要诚实展示,而不是假装瞬间完成。
  • 权限与配额变化时,续传要重新校验。

小结

断点续传的体验本质是把技术状态机翻译成用户语言:

  • 明确的分片级进度,而不是模糊的百分比。
  • 合并、扫描异步化,诚实展示耗时。
  • 用 hash 识别带来秒传等惊喜体验。

到这里,传输层(分片 + 断点续传)已经能支撑大文件和弱网络。下一章把存储从业务服务拆出去——对象存储。

发现内容有问题?

告诉我们哪里需要改进。