一种文件断点上传方法及系统与流程

文档序号:32601673发布日期:2022-12-17 16:18阅读:38来源:国知局
一种文件断点上传方法及系统与流程

1.本技术涉及一种文件断点上传方法及系统。


背景技术:

2.在文件传输时,如果文件的大小较大,尤其是在网络较差的情况下,网络传输容易断传,这大大影响了传输效率,为了保证文件的一致性,避免文件在传输过程中损坏,一般需要进行重新传输。现在也有一些断点传输的方式,但是现在断点传输对于传输位置记录的准确性较差,使得现有的断点上传中的待重新传输的文件过大,而且可能会导致文件存在缺失,最终导致传输前后的文件存在不一致,文件发生损坏。


技术实现要素:

3.为了解决上述问题,本技术一方面公开了一种文件断点上传方法,包括如下步骤:
4.获取待上传文件信息;
5.若待上传文件的大小超过设定阈值,则将待上传文件进行切片处理得到切片文件;
6.将切片文件进行顺序上传,并记载切片文件的上传记录;
7.在上传中断后记录上传记录对应的已经完成传输的切片文件;
8.在需要继续传输时,根据切片文件的上传记录,继续传输已经完成传输的切片文件的下一个切片文件。本技术通过设置切片上传的方式,使得对于大文件来讲,可以进行逐个切片文件上传的方式进行上传,在发生部分的上传错误或者是因为网络或者其他故障,已经上传的部分不会受到影响,而且采用切片上传,也给部分秒传提供了文件的基础。
9.优选的,所述设定阈值的大小与切片文件的大小一致。
10.优选的,还包括对于切片文件的一致性校验的过程:
11.在切片文件传输过程中,先获取待上传切片文件中前端的预校验数据;
12.根据预校验数据检测该切片文件是否曾经上传过,如果已经上传过,则将匹配到数据文件作为预匹配文件,并将预匹配文件作为该切片文件,继而完成了该切片文件的上传。本技术之所以对于切片部分进行校验,是因为本技术针对的文件是较大文件的传输,在对于服务器当中,有非常多的传输渠道时,则产生相同文件传输的可能性就比较大一些,因此对于切片文件的秒传就有了必要,即便是全部文件都相同,由于采用同一种切片方式,因此,所有文件都采用切片文件的匹配复制,也非常快,还能保证整个文件整体上的准确性,避免产生文件的部分遗失,使得大文件自身产生损坏。
13.优选的,按照如下方式进行预校验数据的校验处理:
14.记录已经上传的文件中的已上传切片文件的校验值作为原始校验值;
15.计算切片文件当中的预校验数据对应的预校验值,
16.将预校验值与原始校验值进行比对,若存在匹配,则将匹配对应的已上传切片文件复制到待上传切片文件的存储位置作为待上传切片文件,若不存在匹配,则将待上传切
片文件进行继续上传。
17.优选的,所述原始校验值为md5校验值和sha512校验值的共同校验。
18.优选的,所述切片文件的大小为3m-10m,所述预校验数据的大小为100k-300k。本技术的切片数据的大小可由系统配置生成,通过对比,发现3m-10m为一个较好的选择;虽然数值越大,准确率越大,但会影响校验效率,在md5和sha512两种校验方式同时使用情况下,数值一直加大准确率实际上并没有明显上升,反而是出现一定波动,需要说明的是,在切片文件和预校验数据的大小确定后,在某一个系统当中需要保持一致性。
19.优选的,还包括一用于记录文件信息的文件记录表,所述文件记录表包括如下内容:文件信息、切片文件信息、文件上传信息。
20.优选的,文件记录表包括如下三个子内容:
21.所述文件信息包括包括文件的id,文件的存储路径,文件的预览地址,文件的md5校验值和sha512校验值,格式,文件名;
22.所述切片文件信息包括切片文件的序号,切片文件的md5校验值和sha512校验值;
23.所述文件上传信息包括上传者信息,上传时间,文件上传路径,删除标记。
24.优选的,所述待上传文件按照如下方式进行切片处理:首先根据待上传文件的大小和切片数据的大小进行切片验证,若待上传文件的大小超过设定阈值,然后对于待上传文件按照切片数据的大小进行切片,余下的文件作为最后一个切片。
25.另一方面,本技术还公开了一种文件断点上传系统,包括如下模块:
26.文件获取模块,用于获取待上传文件信息;
27.判断切片模块,用于判断待上传文件的大小是否超过设定阈值,若超过则将待上传文件进行切片处理得到切片文件;
28.文件上传模块,将切片文件进行顺序上传,并记载切片文件的上传记录;在上传中断后记录上传记录对应的已经完成传输的切片文件;
29.续传模块,用于在需要继续传输时,根据切片文件的上传记录,继续传输已经完成传输的切片文件的下一个切片文件。
30.本技术能够带来如下有益效果:
31.1.本技术通过设置切片上传的方式,使得对于大文件来讲,可以进行逐个切片文件上传的方式进行上传,在发生部分的上传错误或者是因为网络或者其他故障,已经上传的部分不会受到影响,而且采用切片上传,也给部分秒传提供了文件的基础。
32.2.本技术之所以对于切片部分进行校验,是因为本技术针对的文件是较大文件的传输(如1t以上,或者由多个文件组合得到的一种整体文件),在对于服务器当中,有非常多的传输渠道时,则产生相同文件传输的可能性就比较大一些,因此对于切片文件的秒传就有了必要,即便是全部文件都相同,由于采用同一种切片方式,因此,所有文件都采用切片文件的匹配复制,也非常快,还能保证整个文件整体上的准确性,避免产生文件的部分遗失,使得大文件自身产生损坏。
33.3.本技术的切片数据的大小可由系统配置生成,通过对比,发现3m-10m为一个较好的选择;虽然数值越大,准确率越大,但会影响校验效率,在md5和sha512两种校验方式同时使用情况下,数值一直加大准确率实际上并没有明显上升,反而是出现一定波动,需要说明的是,在切片文件和预校验数据的大小确定后,在某一个系统当中需要保持一致性。
附图说明
34.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
35.图1为实施例1的示意图;
36.图2为实施例2的示意图。
具体实施方式
37.为能清楚说明本方案的技术特点,下面通过具体实施方式,对本技术进行详细阐述。
38.在第一个实施例中,如图1所示,一种文件断点上传方法,包括如下步骤:
39.s101.获取待上传文件信息;
40.获取文件是指前端到后端进行传输的过程,可以切片传输,也可不切片传输。后台收到文件以后,根据既定规则对待上传文件进行切片或整体上传到文件服务器。断点续传是基于后台切片实现的,如果文件整体大小未超过切片上传的限制大小,则不支持断点续传。断点续传的前提是已经切片上传过的文件不再传输,只传输未上传的切片。
41.s102.若待上传文件的大小超过设定阈值,则将待上传文件进行切片处理得到切片文件;
42.所述待上传文件按照如下方式进行切片处理:首先根据待上传文件的大小和切片数据的大小进行切片验证,若待上传文件的大小超过设定阈值,然后对于待上传文件按照切片数据的大小进行切片,余下的文件作为最后一个切片。
43.所述设定阈值的大小与切片文件的大小一致。所述切片文件的大小为3m-10m,所述预校验数据的大小为100k-300k。
44.待上传文件按照如下方式进行切片处理得到切片数据:首先根据待上传文件的大小和切片数据的大小进行切片验证,然后对于待上传文件按照切片数据的大小进行切片,余下的文件作为最后一个切片;切片数据的大小为3m-10m;如第一片为该文件的前10m数据,第二片为10m-20m数据,切片的同时进行传输,当第n片传输成功后,再传输第n+1片数据。1001m可以分为100片,最后一片为1m,以此类推。
45.s103.将切片文件进行顺序上传,并记载切片文件的上传记录;
46.切片文件顺序上传包括如下步骤:
47.s1031.首先进行切片文件的一致性校验:
48.在切片文件传输过程中,先获取待上传切片文件中前端的预校验数据;
49.根据预校验数据检测该切片文件是否曾经上传过,如果已经上传过,则将匹配到数据文件作为预匹配文件,并将预匹配文件作为该切片文件,继而完成了该切片文件的上传。
50.按照如下方式进行预校验数据的校验处理:
51.记录已经上传的文件中的已上传切片文件的校验值作为原始校验值;
52.计算切片文件当中的预校验数据对应的预校验值,
53.将预校验值与原始校验值进行比对,若存在匹配,则将匹配对应的已上传切片文件复制到待上传切片文件的存储位置作为待上传切片文件,若不存在匹配,则将待上传切
片文件进行继续上传。
54.所述原始校验值为md5校验值和sha512校验值的共同校验。
55.s1032.若没有找到一致性校验通过的切片文件,则将切片文件进行传输上传。
56.s104.在上传中断后记录上传记录对应的已经完成传输的切片文件,在需要继续传输时,根据切片文件的上传记录,继续传输已经完成传输的切片文件的下一个切片文件。
57.在进行切片上传时,其中某一片传输中断,理解为从后台服务往文件服务器传输过程中断了,那么这个文件切片后再次上传的时候是需要重新上传的。比如说当上传至第三片切片文件,上传中断了,前两个切片文件上传成功会记录到文件记录表中,中断了的第三片不会记录到数据库。当重新上传该文件的时候,第一片切片文件,第二片切片文件不再上传,从第三片切片文件开始上传,上传成功后再记录到文件记录表。
58.需要说明的是,还包括一用于记录文件信息的文件记录表,所述文件记录表包括如下内容:文件信息、切片文件信息、文件上传信息。
59.文件记录表包括如下三个子内容:
60.所述文件信息包括包括文件的id(如果两个用户上传了同一个文件,这张表会存储两条记录,但两条记录此字段值相同,都为文件的id,相当于经过校验过文件同一性之后的文件),文件的存储路径,文件的预览地址,文件的md5校验值和sha512校验值,格式,文件名;
61.所述切片文件信息包括切片文件的序号,切片文件的md5校验值和sha512校验值;按照此种方式,可以在校验通过之后,利用切片文件信息直接得到该切片文件,进行复制替代,避免重复传输;
62.所述文件上传信息包括上传者信息,上传时间,文件上传路径,删除标记。
63.为了验证采用md5校验值和sha512校验值的有效性,申请人曾经做过如下的实验以供参考,在该实验当中,md5校验值和sha512校验值是针对的整体文件:
64.记录服务器文件的md5校验值和sha512校验值作为原始校验值;
65.计算待传输文件传输过来的切片数据的对应校验值,
66.对大小符合一致性校验所需的数据计算md5校验值和sha512校验值作为待校验值;
67.将待校验值与原始校验值进行比对,若存在匹配,则将匹配对应的原始文件作为待传输文件进行标记,若不存在匹配,则将待传输文件进行继续上传。
68.为了验证上述方法的正确性,本技术选择了一个本地文件数据库进行了验证,该数据库为一监控视频数据库,单个视频的大小从200m-2.5g不等,视频的数量一共27800个。
69.(1)选择预校验数据的大小为100k,切片数据的大小为3m,md5校验值和sha512校验值的验证的方式进行进行基础数据的建构,
70.上传1000个视频文件,其中500个不一致,其中500个一致,对于不一致的文件,平均的判断时间为17ms,对于一致的文件,平均的判断时间为22ms,并未出现错误。
71.(2)选择预校验数据的大小为300k,切片数据的大小为10m,md5校验值和sha512校验值的验证的方式进行进行基础数据的建构,
72.上传1000个视频文件,其中500个不一致,其中500个一致,对于不一致的文件,平均的判断时间为52ms,对于一致的文件,平均的判断时间为61ms,并未出现错误。
73.(3)选择预校验数据的大小为300k,切片数据的大小为20m,md5校验值和sha512校验值的验证的方式进行进行基础数据的建构,
74.上传1000个视频文件,其中500个不一致,其中500个一致,对于不一致的文件,平均的判断时间为127ms,对于一致的文件,平均的判断时间为155ms,出现了2个错误。
75.(4)不进行预校验,切片数据的大小为10m,md5校验值和sha512校验值的验证的方式进行进行基础数据的建构,
76.上传1000个视频文件,其中500个不一致,其中500个一致,对于不一致的文件,平均的判断时间为72ms,对于一致的文件,平均的判断时间为61ms,并未出现错误。
77.(5)选择预校验数据的大小为100k,切片数据的大小为2m,md5校验值和sha512校验值的验证的方式进行进行基础数据的建构,
78.上传1000个视频文件,其中500个不一致,其中500个一致,对于不一致的文件,平均的判断时间为15ms,对于一致的文件,平均的判断时间为29ms,出现了2个错误。
79.(6)选择预校验数据的大小为300k,切片数据的大小为12m,md5校验值和sha512校验值的验证的方式进行进行基础数据的建构,
80.上传1000个视频文件,其中500个不一致,其中500个一致,对于不一致的文件,平均的判断时间为59ms,对于一致的文件,平均的判断时间为73ms,出现了3个错误。
81.(7)选择预校验数据的大小为300k,切片数据的大小为10m,md5校验值的验证的方式进行进行基础数据的建构,
82.上传1000个视频文件,其中500个不一致,其中500个一致,对于不一致的文件,平均的判断时间为59ms,对于一致的文件,平均的判断时间为36ms,其中7个判断错误。
83.如图2所示,一种文件断点上传系统,包括如下模块:
84.文件获取模块201,用于获取待上传文件信息;
85.判断切片模块202,用于判断待上传文件的大小是否超过设定阈值,若超过则将待上传文件进行切片处理得到切片文件;
86.文件上传模块203,将切片文件进行顺序上传,并记载切片文件的上传记录;在上传中断后记录上传记录对应的已经完成传输的切片文件;
87.续传模块204,用于在需要继续传输时,根据切片文件的上传记录,继续传输已经完成传输的切片文件的下一个切片文件。
88.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1