欢迎来到阿里云合作伙伴典名科技! 阿里云购买咨询电话:023-66887777 手机:18623333330  13452888883 13452888886  18581111171  QQ:11611616 / 673768899 / 673768855 / 956491
  • 1
  • 2
  • 3
  • 4
  • 5
阿里云帮助文档
当前位置: 网站首页  »    »  阿里云帮助文档  »  阿里云帮助文档

“断点续传”文件传输方式

重庆典名科技 admin    重庆典名科技 2018-5-14

很多应用场景中简单的上传功能是不能够满足我们的需要的。在上传文件的时候有可能会遇到网络出现问题,重新连接之后上一次传输就失败轻量,又需要我们进行重新传输上传。针对这种情况,阿里云对象存储OSS提供分片上传(Multipart Upload)来达到断点续传的效果。顾名思义,分片上传就是将要上传的文件分成多个数据块(OSS里又称之为Part)来分别上传,上传完成之后再调用OSS的接口将这些Part组合成一个Object。那么下面就来详细了解断点续传。


分片上传适用场景:

1】恶劣网络环境:例如移动端,出现上传失败的时候,就可以对失败的part进行独立的重试,就不需要再重新上传其它的Part

2】断点续传,在上传文件的时候中途暂停之后,在需要传输的时候可以从上传完成的Part的位置继续进行上传

3】加速上传:需要上传到对象存储OSS 的本地文件非常的大,这时候我们可以并行上传多个Part 这样加快上传的速度。

4】流式上传:可以在需要上传的文件大小还不确定的情况下开始上传。这种场景在视频监控等行业应用中比较常见。


基本流程

通常的流程如下:

1】首先需要将我们要上传的文件按照一定的大小进行分片

2】初始化一个分片上传任务(InitiateMultipartUpload)

3】逐个或并行上传分片(UploadPart)

4】完成上传(CompleteMultipartUpload)(如下图)

断点续传示意图

在这个操作过程中阿里云代理商提醒一下这些地方需要注意:

1】除去最后一块Part,其它的Part的大小都不能够小于100KB,不然会直接导致调用CompleteMultipartUpload接口的时候出现失败

2】我们把需要上传的文件切分成Part之后,文件的顺序是通过在上传过程中指定的partNumber 来进行确定的,在实际的执行中是没有顺序要求的,因此可以实现并发上传,并发上传个数并不是越多越快,这就需要结合用户自身的网络情况以及设备负载等综合来进行考虑了。

3】在默认的情况之下,已经上传但是没有调用CompleteMultipartUpload的Part是不会自动回收的。所以假如要终止上传并且删除占用的空间请您调用AbortMultipartUpload。


断点续传

因为已经上传到OSS商的Part的生命周期是永久的,因此想要实现断续传功能是相对比较容易的。

使用分片上传的过程之中,假如系统出现意外崩溃,可以在重庆的时候通过ListMultipartUploads和ListParts两个接口来谋取某个Object商的所有的分片上传任务和每个分片上传任务中上传成功的Part列表。通过这样就可以从最后一块成功上传的Part开始继续上传,从而达到断点续传的效果。暂停和恢复上传实现原理也是一样的。

断点续传功能使用最多在移动设备上传和大文件上传之中


上传限制

1】上传的大小限制:这种上传方式之下,Object的大小是由Part来决定的,最大的支持数为10000块Part。其中每一块Part最小为100KB(最后一块Part除外),最大为5GB,同时Object的大小不能超过48.8TB。

2】命名的限制:

  使用UTF-8编码

  长度必须在1-1023字节之间

  不能以“/”或者“\”字符开头


上传的安全及授权

为了防止第三方往开发者的Bucket未经授权上传,阿里云对象存储OSS提供了Bucket和Object级别的访问权限控制。为了授权给第三方上传,OSS除了Bucket和Object级别的访问权限外,还提供了账号级别的授权,见上传安全之授权第三方。


上传后续操作

1】文件上传到阿里云对象存储OSS 上之后,开发者可以使用上传后回调来向指定的应用服务器发起回调请求,进行下一步操作

2】假如上传的是图片,您可以使用图片服务进行后续的处理

3】若上传的是音频或者是视频文件,可以直接使用媒体转码进行后续的处理


上述就是断点续传以及分片传输的介绍以及在使用过程中出现的问题及解决办法,如果您还有阿里云产品使用、价格、折扣等问题请您直接联系客服。


+查看更多+
常见问题解决方案
相关热门文章
热门产品推荐
热门产品推荐
阿里云代理商
阿里云客服
阿里云客服
阿里云客服