一种多线程分片的云上传下载方法及系统技术方案

技术编号:7850846 阅读:342 留言:0更新日期:2012-10-13 07:53
一种权限可控的多线程分片上传、下载、自动容错的方法及系统,该方法可以使本地文件上传时切分为多个分片,结合md5算法,多线程上传,云端并行合并,大大提高了文件上传的效率。当文件下载时,结合权限控制,将签名的权限令牌信息携带到下载请求头中,云端根据信息动态匹配,并提供多个线路下载,有利于在云盘场景中提高文件下载的效率。另外自动容错机制,使得客户端和云端都能够及时实现故障转移和任务的重新分配,为上传、下载质量提供了保障。

【技术实现步骤摘要】

本专利技术涉及一种可控制权限的多线程分片云上传下载方法及系统,同时也涉及Flex技术、Java技术及MapReduce调度模型等技术方法,属于软件

技术介绍
随着互联网网速的不断提升以及Web2.0应用的兴起以和移动互联网、智能终端的快速普及,使得云存储的应用和推广成为可能。云存储的需求给互联网企业带来了新的机遇,同时也带来了新的挑战。其中云存储产品中的上传、下载是其核心功能。本系统客户端结合Flex富客户端技术,云端结合云计算分布式处理技术,从技术实现机制上进行创新,从而能够并行地高效处理来自客户端的上传和下载请求。该方法具有通用性,也应用在桌面终端,也可在移动终端实现相应定制,从而为来自不同客户端的请求提供高速上传下载服务。
技术实现思路
本专利技术所要解决的首要技术问题是提供一种具备完善的上传、下载、容错处理功能的系统;提供该系统基于富客户端、多线程、分片、云存储、容错处理功能的方法。为实现上述的专利技术目的,本专利技术通过富客户端、多线程、分片、云存储、容错处理等技术,形成了一套完善的技术方案,其技术方案如下上传时,客户端访问应用服务器发出请求,应用服务器对请求分别建立通道,并再次接收客户端的分片上传请求,上传的文件在云端并行处理合并完毕后,通过存储客户端调用存储集群,将文件存储到云端,云端返回数据给应用服务器,应用服务器将获得的数据经过业务处理返回给客户端。下载时,客户端发起下载请求,根据下载客户端的不同,向云端请求文件,云端验证权限并生成加密token,建立通道准备传输。客户端发起带有加密token的多线程请求文件,云端认证并发送分片。最终客户端得到分片后合并,通过完整性验证,完成下载。另外,当云端和客户端发生错误时,分别采用相应的容错机制,保证了文件的完整性,提高了上传、下载服务的质量。本系统云端具有很强的健壮性、先进性、容错性,客户端易用、快捷、高效。利用本专利技术,不仅能完成一般的文件上传下载功能,还可以大大提高了多文件并行上传下载的效率,有效的利用了网络带宽,减少了用户上传下载的等待时间,实现了快速容错处理。附图说明 此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,并不构成对本专利技术的限定。在附图中图I为上传流程示意图,图2为下载流程示意图,图3为云服务端拓扑结构图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚,下面结合附图对本专利技术的具体实施方式进行详细说明。在此,实施说明用于解释本专利技术,但并不作为对本专利技术的限定。系统总体上分为客户端,应用服务器集群,存储集群三大部分。上传时,客户端访问应用服务器发出请求,应用服务器对请求分别建立通道,并再次接收客户端的分片上传请求,上传的文件在云端并行处理合并后,将文件存储到云端的存储集群,云端返回数据给应用服务器,应用服务器将获得的数据经过业务处理返回给客户端。具体的实现流程如图I所示,详细的过程说明如下I、选择本地文件,通过Flex在客户端计算文件的md5值。2、计算完毕后,携带文件信息及md5值发起第一次请求。 3、云端接收到请求后,根据文件信息进行验证。当发现md5值存在时,则瞬间秒传,上传成功,并返回给客户端提示信息,客户端进度值为100%,上传完成。4、当发现md5值不存在时,云端返回信息,等待客户端再次发起请求。5、客户端文件进入队列排队,并计算其优先级和断点信息,存在断点的时候,载入断点数据,等待上传。6、当排队文件获取上传指令时,客户端根据文件分片信息发起m*n个线程,携带客户端生成token,发起第二次请求,客户端不断进度回调,云端建立数据通道。7、客户端接收到通道信息后,准备m个文件,计算每个文件的分片,并再次携带新计算的token,发起第三次请求。8、文件开始分片高速上传,云端服务器开始多通道通过MapReduce的map任务并行接收数据,临时数据存入分布式数据库,通过reduce任务将每个文件的n个分片进行数据合并。9、数据合并完成后,文件上传成功,根据是否为多文件上传,返回相应的信息,状态回调值为100%,完成文件上传。下载时,客户端发起下载请求,根据下载客户端的不同,向云端请求文件,云端验证权限并生成加密token,建立通道准备传输。客户端发起带有加密token的多线程请求文件,云端认证并发送分片。最终客户端得到分片后合并,通过完整性验证时,完成下载。具体的实现流程如图2所示,详细的过程说明如下I、用户选择文件,并准备下载。接着可以选择下载方式,分为本系统内置Flex下载、浏览器内置下载、第三方下载工具三种。以下说明的内容为本系统内置的下载。2、工具选择后,发起第一次请求,根据提交的信息,系统判断是否为私有文件。3、如果不是私有文件,则进行简单加密,建立加密传输通道,等待文件的传输。4、如果是私有文件,则进行强权限控制,无权限则直接退出。有权限,则生成强加密token,并建立加密传输通道,等待文件传输。5、客户端接收到通道信息后,将下载信息排入队列,并进行优先级的判定,如果得到下载指令,则处理断点情况。6、如果为断点下载,则计算断点的位置,根据断点的信息准备m*n个线程,当获取执行指令时,开始发起执行线程,请求m个文件。7、云端接收分片并行高速下载请求,并建立多通道,任务调度器对着m个文件的n个分片开始处理。8、然后根据请求文件所处的服务器进行协议适配,云存储客户端建立连接,经过权限认证后,去相应的云存储服务器请求具体的文件,云存储客户端获取到文件后,开始传输携带token的分片。9、客户端开始接收分片的数据,并在队列中不断处理,迭代对分片进行合并。10、同时客户端不断进行进度回调。11、客户端合并完成后的文件,需要配合携带于token返回的md5信息进行完整性验证,通过验证的文件,当进度回调为100%时,结束下载。12、完整性验证未能通过的文件,进入容错处理阶段,根据具体的故障,重新发起线程,执行下载指令,直到过程结束。本文档来自技高网...

【技术保护点】

【技术特征摘要】
1. 一种权限可控的云上传下载方法及系统,上传时,客户端访问应用服务器发出请求,应用服务器对请求分别建立通道,并再次接收客户端的分片上传请求,上传的文件经分布式数据库并行合并后,通过存储客户端调用存储集群,将文件存储到云端,云端返回数据给应用服务器,应用服务器将获得的...

【专利技术属性】
技术研发人员:綦玉冰
申请(专利权)人:新华网股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1