System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及it与软件开发,具体为一种基于分片复用的文件下载方法。
技术介绍
1、文件分片就是将一个文件分成很多小的文件,文件分片是对大文件数据的传输做出的一种优化处理的方案。使用多线程的形式可以加快文件的传输速度,介质中心提供了统一的介质版本和介质文件上传下载等管理能力,在paas云平台中,统一的介质中心可以为资源池区提供统一的下载服务端。资源池:资源池是针对用户的不同区域而进行各类机器和计算资源隔离的基本单位,在paas云平台中,用户需要在资源池的租户网络中安装组件,组件安装部署介质一般较大,需要从统一的介质中心下载获取。
2、在paas云平台组件开通场景中,资源池区需要从公共区的统一介质中心下载大量的安装介质包,一方面介质包比较大,下载速度较慢,另一方面不同版本的介质文件之间存在着大量的相同片段,文件下载过程中存在着大量的重复内容传输,造成下载速度较慢,并占用有限的带宽资源。
技术实现思路
1、(一)解决的技术问题
2、针对现有技术的不足,本专利技术提供了一种基于分片复用的文件下载方法,具备下载速度快优点,解决了上述技术问题。
3、(二)技术方案
4、为实现上述目的,本专利技术提供如下技术方案:一种基于分片复用的文件下载方法,包括以下步骤:
5、s1、介质中心存储,通过高速网络连接对数据进行划分,并对分片存储;
6、s2、下载初始化,对分片文件建立文件分片库,并通过本地目录进行存储,并对每一个分片进行标
7、s3、分片查询,对资源池区中分片信息和分片顺序进行读取;
8、s4、分片匹配,对查询文件与现有的库中的文件进行匹配对比,并判断是否需要下载;
9、s5、分片下载,对未存在的分片文件进行下载,并存储到临时目录中;
10、s6、分片获取,对分片库中的分片信息和下载的文件分片组合,形成完整的文件分片列表;
11、s7、分片更新,下载程序将未在分片库中保存的分片信息更新到本地分片库,并更新缓存;
12、s8、分片合并,下载程序按查询的分片列表和顺序进行分片合并,形成完整的文件,完成下载。
13、作为本专利技术的优选技术方案,所述步骤s2中的下载初始化过程具体如下:
14、s2.1、将需要下载的文件内容读入内存;
15、s2.2、将文件内容分割成多个小块,以月份和日期构建树形目录结构,每个小块的大小能够根据实际情况进行调整;
16、s2.3、将分割完成的小块转存储到本地目录的数组中,从而完成文件分片库的建立。
17、作为本专利技术的优选技术方案,所述步骤s2.2中的调整过程具体如下:
18、s2.2.1、需要获取文件的总大小;
19、s2.2.2、根据需要分割的块大小计算出总共需要分割成多少个块,并通过math.ceil()函数来实现向上取整;
20、s2.2.3、创建一个循环来遍历每个分片,每次循环中获取当前分片的内容,同时对起始位置和结束位置进行建立,同时读取网络参数,根据网络参数对分片大小进行调整;
21、s2.2.4、对每个分片进行哈希运算,生成唯一的md5标识符。
22、作为本专利技术的优选技术方案,所述步骤s3中的分片查询具体步骤如下:
23、s3.1、需要确定数据分片的方式,并对分片的md5标识符进行确定;
24、s3.2、通过哈希函数来确定数据的存储位置;
25、s3.3、根据s3.2确定的物理分片位置,能够获取到该分片的信息,当进行查询时,根据查询条件中涉及到的分片键的值,确定需要在哪些节点上进行查询,能够通过查询路由表或者分片键的计算来确定查询的目标节点;
26、s3.4、根据月份和日期对分片的顺序确定,并完成分片的校验;
27、s3.5、结果合并,将各个节点返回的查询结果进行合并,得到最终的查询结果。
28、作为本专利技术的优选技术方案,所述步骤s4中的分片匹配的具体过程如下:
29、s4.1、将查询文件和现有库中的文件进行每片逐一对比;
30、s4.2、通过将查询文件的md5标识符与现有库中文件比对,如相同则表明库内存在此分片,无需下载,直接从分片库中获取分片信息,若查询文件的md5标识符现有库中文件未找到对比,则分片信息在分片库中不存在,则启动下载线程。
31、作为本专利技术的优选技术方案,所述步骤s5分片下载的具体过程如下:
32、s5.1、向介质中心服务器发起请求,获取文件的分块数据,根据获取的文件大小和设定的分片大小,计算出需要下载的分片数量;
33、s5.2、通过多线程来对分片数据进行下载;
34、s5.3、对下载过程进行监听并获取下载进度。
35、作为本专利技术的优选技术方案,所述步骤s6中的汇聚排序步骤如下:
36、s6.1、下载完成后,将每个分片的元数据保存到一个列表中,并对每一个分片定义一个不同的key参数;
37、s6.2、对设定的key参数通过存储表的形式进行顺序存储排列。
38、作为本专利技术的优选技术方案,所述s7中的更新缓存的具体步骤如下:
39、s7.1、需要确定要更新的数据在缓存和资源池区中的位置;
40、s7.2、对有多个线程同时更新同一个数据时产生的并发控制问题进行处理;
41、s7.3、测试和验证缓存和数据库中的数据是否已经正确更新。
42、作为本专利技术的优选技术方案,所述步骤s7.2中的并发控制问题解决步骤如下:
43、s7.2.1、识别共享数据,通过每个分片上的md5标识符确定哪些数据是共享的,即多个线程需要同时访问和更新的数据;
44、s7.2.2、对正在被访问的共享分片上添加互斥锁;
45、s7.2.3、更新共享数据,在获取到互斥锁信号量后,线程能够安全地访问和更新共享数据;
46、s7.2.4、释放锁,完成对共享数据的操作后,释放相应的锁,以便其他线程能够继续访问和更新共享数据。
47、作为本专利技术的优选技术方案,所述步骤s8分片合并的具体过程如下:
48、s8.1、获取分片列表和顺序,需要获取到下载的文件的分片列表和顺序;
49、s8.2、创建合并文件,根据下载的文件的文件名和类型,创建一个空的合并文件,用于存储合并后的数据;
50、s8.3、写入合并文件,按照指定的顺序,依次遍历分片列表,将读取到的分片数据写入合并文件中;
51、s8.4、关闭分片文件,在完成对一个分片的读取和写入后,关闭对应的分片文件;
52、s8.5、继续下一个分片,重复步骤s8.3和步骤s8.4,直到遍历完所有的分片;
53、s8.6、完成合并,当遍历完所有的分片后,对合并文本文档来自技高网...
【技术保护点】
1.一种基于分片复用的文件下载方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的一种基于分片复用的文件下载方法,其特征在于:所述步骤S2中的下载初始化过程具体如下:
3.根据权利要求2所述的一种基于分片复用的文件下载方法,其特征在于:所述步骤S2.2中的调整过程具体如下:
4.根据权利要求2所述的一种基于分片复用的文件下载方法,其特征在于:所述步骤S3中的分片查询具体步骤如下:
5.根据权利要求3所述的一种基于分片复用的文件下载方法,其特征在于:所述步骤S4中的分片匹配的具体过程如下:
6.根据权利要求1所述的一种基于分片复用的文件下载方法,其特征在于:所述步骤S5分片下载的具体过程如下:
7.根据权利要求6所述的一种基于分片复用的文件下载方法,其特征在于:所述步骤S6中的汇聚排序步骤如下:
8.根据权利要求5所述的一种基于分片复用的文件下载方法,其特征在于:所述S7中的更新缓存的具体步骤如下:
9.根据权利要求8所述的一种基于分片复用的文件下载方法,其特征在于:所述步骤S7.
10.根据权利要求1所述的一种基于分片复用的文件下载方法,其特征在于:所述步骤S8分片合并的具体过程如下:
...【技术特征摘要】
1.一种基于分片复用的文件下载方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的一种基于分片复用的文件下载方法,其特征在于:所述步骤s2中的下载初始化过程具体如下:
3.根据权利要求2所述的一种基于分片复用的文件下载方法,其特征在于:所述步骤s2.2中的调整过程具体如下:
4.根据权利要求2所述的一种基于分片复用的文件下载方法,其特征在于:所述步骤s3中的分片查询具体步骤如下:
5.根据权利要求3所述的一种基于分片复用的文件下载方法,其特征在于:所述步骤s4中的分片匹配的具体过程如下:
6.根据权利要...
【专利技术属性】
技术研发人员:邓龙亮,邓志强,洪水能,浣浩,卢龙涛,王斐瀚,
申请(专利权)人:天翼云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。