帮助中心

首页 产品文档存储对象存储文件上传 正文

对象存储产品文档之:断点续传

一、 使用场景

当使用简单上传(putobject)功能来上传较大文件到SpeedyCOS的时候,如果网络出现错误,此次上传文件失败,再次上传时必须从文件的起始位置开始上传。SpeedyCOS提供分片上传(multipart upload)来达到断点续传的效果。分片上传就是将要上传的文件分成多个数据块(SpeedyCOS中称为Part)来分别上传,上传完成之后在调用SpeedyCOS接口将这些Part组合成一个Object。

适用场景如下

恶劣的网络环境:当文件出现上传失败时,可以对失败的Part进行独立的重试,不需要重新上传其他的Part
断点续传:中途暂停之后,可以从上次上传完成的Part的位置继续上传
加速上传:要上传到SpeedyCOS文件很大的时候,可以并行上传多个Part以加快上传

二、 基本流程

1、将要上传的文件按照一定的大小分片。
2、初始化一个分片上传任务。
3、逐个或者并行上传分片。
4、完成上传。

在这个过程中有些要注意的地方:

除了最后一块Part,其他Part的大小不能小于100KB,否则会导致在调用CompeleteMultipartUpload接口的时候失败。
要上传的文件切分成Part之后,文件顺序是通过上传过程中指定的PartNumber来确定的,实际执行中没有顺序要求,因此可以实现并发上传。具体的并发不是越多速度就越快,要结合用户的自身的网络情况和设备负载综合考虑。
默认情况下,已经上传但还没有调用CompleteMultipartUpload的part是不会自动收回的,因此如果要终止上传并删除占用的空间请调用AbortMultipartUpload。如果需要自动收回上传的part,请参考object生命周期管理。

三、 断点续传

以上传的Part的生命周期是永久的,因此很容易实现断点续传
断点续传功能在移动设备和大文件上传中最有价值

四、 上传限制

大小限制:在这种上传方式,object的大小由Part来决定的。最大支持10000块part,每块最小100kb(最后一块可以100kb小),最大5GB。
命名限制:
Ø API或者SDK使用UTF-8编码
Ø 长度必须在1-1023字节之间
不能以”/”或者”\”字符开头