开发者社区> 问答> 正文

阿里云OSS之九大使用技巧之五: 实现Object断点下载和并发下载

从互联网上下载数据时,支持断点下载是一项非常基本的功能。其原理很简单,就是记住上次接受数据的位置,然后要求服务器从上次断点的地方开始将余下的部分传输过来。下载OSS上的Object时,可以采用HTTP请求中通用的Range这一header,来完成这个功能。例如:
获取一个文件的头5个字节的请求代码如下:


Headers = {}  
headers['range'] = "bytes=0-4"  
res = my_store.get_object (bucket_name, object_name,  headers)

获取一个文件中间3KB字节数据的请求代码如下:

Headers = {}  
headers['range'] = "bytes=1024-4095"  
res = my_store.get_object (bucket_name, object_name,  headers)

知道了如何使用range来随机读一个object后,实现并发下载就轻而易举了。只要将要下载的object分成若干份,然后开多个线程,每个线程下载其中的一块。在所有块都下载完成后,整个文件就下载完成了。
注意:按照HTTP协议,如果用户的请求中含有range字段,则服务器返回的HTTP状态码为206 (Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它)。        

展开
收起
newegg11 2012-08-23 16:59:17 7979 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
阿里云云原生 Serverless 技术实践营 PPT 演讲 立即下载
阿里云产品十月刊 立即下载
基于阿里云构建博学谷平台实时湖仓 立即下载