阿里云断点续传怎么用?大文件上传断了从哪接着传

上传几百MB的视频,或者几个G的备份包,最怕传到一半断网、进程被杀,或者浏览器刷新。之前的进度全部归零,只能从头再来。阿里云OSS的断点续传就是为这种情况设计的。下面从原理讲到代码,再说生产环境里容易踩的坑。

阿里云断点续传怎么用?大文件上传断了从哪接着传

为什么大文件要分片续传

普通的PutObject是一次请求,中间任何环节出错,就得从第一个字节重传。文件小的时候问题不大,文件到了几个G,问题就很明显了:

  • 网络一抖就失败,带宽和时间全都白费
  • 移动端或弱网环境下,一次传完的成功率明显偏低
  • 进度条归零后,用户很快就不相信这次上传能成功

断点续传的做法是把文件切成若干分片,每片单独上传。成功的分片记下来,失败后只重传没完成的那部分。

OSS 里的两种实现方式

在OSS上做断点续传,有两条路。

分片上传(Multipart Upload)

这是底层接口,分三步:InitiateMultipartUpload 初始化任务并拿到UploadId,UploadPart 逐片上传,CompleteMultipartUpload 合并分片。中断之后,只要保存好UploadId,以及每个已完成分片的PartNumber和ETag,就可以用ListParts查询进度,接着上传剩下的分片。

官方SDK的断点续传接口

大部分业务直接用SDK封装好的方法就够了。比如Java SDK的resumableUploadFile,会把进度写进本地的checkpoint文件,进程重启后读取这个文件就能续传。业务代码改动很小,多数后端场景用它即可。

一个在线教育团队的改造

某在线教育团队原来的课件上传是单次POST。单个视频经常在80%左右失败,运营同学只能一遍遍重传。改造时他们做了三件事:

  1. 前端按每片5MB切分文件,计算每片的MD5,分片信息缓存在IndexedDB里。
  2. 服务端为每个文件创建OSS分片任务,把UploadId和文件哈希的对应关系存进Redis,过期时间设为24小时。
  3. 重新上传时,先调用ListParts拿到已完成的分片,跳过它们,只补传缺失的部分。

改造后,弱网环境下一次上传的成功率从约60%升到接近99%。同样一个2GB的文件,平均重传流量下降了七成以上。这套做法的要点是把上传进度当成需要保存的数据来管,代码本身并不复杂。

实现时要注意的几件事

分片大小

OSS对分片有硬性限制:除最后一片外,每片至少100KB;单个文件最多10000个分片;单片最大5GB。实际选择时,常见的取值在1MB到10MB之间。分片切得太小,请求数变多,开销跟着涨;切得太大,一片失败后要重传的数据量也大。5MB到16MB是比较稳妥的起点,之后可以根据实际失败率再调。

并发与重试

分片可以并发上传,但并发数要看带宽和设备能力,一般3到5个比较合适。单片失败时用指数退避重试。要区分可重试和不可重试的错误:网络超时、5xx可以重试;403通常意味着签名失效,重试没有意义,需要重新获取签名。

进度保存

进度可以存在本地文件、数据库或Redis里,关键是和UploadId绑定。如果任务超过OSS设定的保留期,或者UploadId已被Abort,续传就会失败。遇到这种情况,清掉本地记录,重新初始化任务。

未完成分片的清理

用户中途放弃上传时,未完成的分片仍占着存储空间,也会产生费用。可以配置生命周期规则,自动清理长期未完成的分片。如果业务层能判断用户已经放弃,就直接调用AbortMultipartUpload。

签名与安全

前端不要直接持有AccessKey。更稳妥的做法是由服务端通过STS临时凭证或预签名URL授权分片上传,并把可访问的Bucket和对象前缀限制在最小范围内。凭证一旦泄露,影响范围会小很多。

常见问题排查

  • NoSuchUpload:多半是UploadId已过期或已被取消,重新初始化任务即可。
  • 分片ETag不一致:检查续传时分片内容有没有被改动,确保分片边界和第一次切分时一致。
  • 合并失败:确认分片编号连续,每片都已成功上传,并且ETag已记录。
  • 进度和实际对不上:以ListParts返回的结果为准,不要只信本地缓存。

写在最后

阿里云断点续传的思路并不复杂:把大文件拆成能单独恢复的小片,同时把进度好好保存。优先使用官方SDK的封装,能省掉很多底层细节。再把凭证授权、并发控制和过期清理处理好,大文件上传的体验会好很多。

赞 (0)
阿里云服务器域名解析怎么加A记录,解析不生效先查什么
上一篇 2026年11月1日 上午12:27
阿里云 API 调用前,AccessKey 该怎么创建和保管
下一篇 2026年11月1日 上午12:28

相关推荐

  • 阿里云董事长吴泳铭谈云与AI,下一步重点投向哪里

    很多人谈阿里云,会先看规模和排名。但要看清它为什么现在押注AI,得回到它一步步走过来的路径。阿里云董事长吴泳铭的判断,很大程度上就是从这条路上长出来的。 先是自己用,后来才对外卖 阿里云最早并不是为了做生意。电商业务快速增长那几年,最头疼的是机器。传统做法是为大促提前采购服务器,平时大部分闲着,峰值时又可能不够,成本高,扩容也慢。 阿里云走的是另一条路:自研…

    2026年10月31日
  • 阿里云大数据怎么用?MaxCompute和实时计算各适合什么场景

    很多企业的数据量已经不小,但”存着,用不起来”的情况仍然常见。报表要等好几天,业务方问一个新问题,数据团队得先翻表结构。阿里云大数据产品覆盖存储、计算、开发治理和可视化,能把数据从采集一路接到决策。 阿里云大数据的整体思路 阿里云大数据按数据生命周期分层。数据先进入对象存储和数据湖,再由离线引擎或实时引擎计算,结果交给数据服务和报表平…

    2026年10月31日
  • 阿里云导航在哪找?按产品类别快速定位

    阿里云的产品很多,计算、存储、数据库、安全、AI 等类别加起来有上百个服务。第一次进控制台的人,常在首页来回翻,十几分钟还没找到要的入口。阿里云导航就是为这种情况准备的,它把产品按类别排好,让你知道该去哪里点。 先把导航的结构看明白,后面的开通、管理、计费和运维都会顺手很多。 导航由哪几块组成 进入官网后,顶部一般有”产品”入口,点开…

    2026年11月1日
  • 阿里云上市后,对国内云计算价格和竞争格局有什么影响?

    阿里云上市这件事,这两年在行业里被反复提起。作为国内规模最大的云服务商之一,阿里云的动向会直接影响上下游供应商和同行,也影响正在考虑上云的企业。大家最想弄清楚的其实很简单:如果它真的独立走向资本市场,云服务的价格会怎么变,竞争会怎么变? 先看组织上的变化 2023年,阿里巴巴集团宣布调整组织架构,把原有业务拆分成几个相对独立的业务集团,并表示各集团可以探索独…

    2026年10月31日
  • 域名购买阿里云,实名认证和续费价格有哪些坑

    建站或注册品牌时,很多人都会卡在域名这一步。名字想好了,却不知道在哪买、后缀怎么选、要准备什么材料。阿里云是国内用得比较多的域名注册商,流程完整,新手照着走一般不会出大错。但实名认证和续费这两处,确实容易踩坑。下面按购买的顺序讲一遍。 买之前先想三件事 域名会陪着网站、名片和邮箱用好几年,改起来麻烦。所以在打开购买页面前,先把下面三件事理清楚。 用途决定后缀…

    2026年10月31日
返回顶部