开发者社区> 问答> 正文

阿里云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 8076 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载