一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

大文件分片上传到文件服务端的方法及装置与流程

2022-06-11 05:24:38 来源:中国专利 TAG:


1.本发明涉及客户端向文件服务段文件传输技术领域,尤其涉及一种大文件分片上传到文件服务端的方法及装置。


背景技术:

2.当前文件服务在上传比较大的文件时候,容易出现上传超时导致文件上传失败等情况,上传失败又需要重新上传整个文件,效率较低,体验感不好。
3.现有技术中,针对大文件传输失败的问题,如cn109361772a公开的一种分布式对象存储系统中文件上传方法及装置 、申请号201811527148.5,其公开的方法包括:当接收到大文件上传指令时,确定待上传大文件的名称;计算所述待上传大文件的各分片的md5值;根据所述名称获取已上传的同名大文件对应的分片头对象中存储的各分片的md5值;分别判断所述待上传大文件的分片的md5值与所述同名大文件中对应的分片的md5值是否相等;若不相等,则上传所述待上传大文件中不相等的md5值对应的分片;该方法在上传大文件时,仅上传与系统中已有的同名大文件中不同的内容,进而提升存储系统中上传大文件时的效率;其装置包括获取模块,用于当接收到大文件上传指令时,确定待上传大文件的名称;第一计算模块,用于计算所述待上传大文件的各分片的md5值;分片md5值获取模块,用于根据所述名称获取已上传的同名大文件对应的分片头对象中存储的各分片的md5值;第一判断模块,用于分别判断所述待上传大文件的分片的md5值与所述同名大文件中对应的分片的md5值是否相等;第一执行模块,用于若所述待上传大文件与所述同名大文件中对应分片的md5值不相等,则上传所述待上传大文件中不相等的md5值对应的分片。但,现有技术的大文件分片传输,还是存在插损或效率较低、体验感不好等不足。


技术实现要素:

4.针对现有技术存在的上述不足,本发明的目的是提供一种大文件分片上传到文件服务端的方法及装置,将一个大文件分成多个分片文件来上传,这样当其中一些分片文件上传请求失败后,不需要重新上传整个文件,而只需要上传失败的分片文件就可以了,以此来提高上传效率和体验感。
5.本发明的技术方案是这样实现的:大文件分片上传到文件服务端的方法,其特征在于包括如下步骤:1)客户端首先将大文件按照设定的上限值,拆分成若干分片文件,生成该大文件和对应每个分片文件的md5信息,将该大文件和每个分片文件对应的md5信息发送文件服务端,并请求文件服务端校验大文件和各分片文件是否已存在;2)文件服务端接收客户端校验大文件和各分片文件的md5信息的请求,然后校验整个大文件以及各分片文件是否已经存在;如果整个大文件已经存在,则响应客户端大文件已存在,结束上传步骤;如果整个大文件不存在,则再分别校验每个分片是否存在,只要有分片文件不存在,则将对应的分片文件是否存在信息响应客户端;
3)客户端请求文件服务端的分片文件上传接口,将步骤2)中不存在的所有分片文件上传至文件服务端;4)当客户端将所有分片文件成功上传至文件服务端后,可请求文件服务端进行分片文件的合并;5)客户端轮询请求文件服务端分片文件合并的结果;当文件服务端响应客户端合并成功时,则表示分片文件正确合并,将整个大文件从客户端传输到文件服务端,完成整个大文件的上传流程。
6.这样,本发明通过将一个大文件分成多个分片文件来上传,这样当其中一些分片文件上传请求失败后,不需要重新上传整个文件,而只需要上传失败的分片文件就可以了,以此来提高上传效率和体验感。
7.进一步地:在客户端将大文件和对应每个分片文件的md5信息参数进行拼接处理,再向文件服务端发送校验请求。
8.进一步地:所述分片文件合并的结果有如下状态:a、合并成功,b正在合并中,c、某一分块文件不存在,d、没有该合并任务,e、文件完整性校验失败。
9.进一步地:在客户端设置redis缓存装置,存储各分片文件的md5信息。本发明引入redis缓存来存储上传的分片文件信息,所以二次上传很容易恢复,且redis具有分布式、高扩展、实时性、速度快等优点,故本方法关键步骤检索文件是否已经存在比其他方法来得快,提高检索文件的效率。
10.进一步地:在文件服务端设置有支持文件存储以及文件操作的相关接口,包括文件md5校验接口,分片文件上传接口,分片文件合并接口,获取分片文件合并状态接口。
11.进一步地:所述设定的上限值为100m,超过100m的文件为大文件,每个分片的大小也设定为100mb。
12.一种大文件分片上传到文件服务端的装置,其特征在于:包括客户端和文件服务端,客户端与文件服务端电连接;客户端包含文件分片组件和生成文件md5信息组件,支持按照预先的设定值分片大小切分文件,生成完整文件的md5信息以及各分片文件包含的文件的md5信息;所述文件服务端,用于接收客户端上传的文件,并进行存储;设置有支持文件存储以及文件操作的相关接口,包括文件md5校验接口,分片文件上传接口,分片文件合并接口,获取分片文件合并状态接口。本发明通过将一个大文件分成多个分片文件来上传,这样当其中一些分片文件上传请求失败后,不需要重新上传整个文件,而只需要上传失败的分片文件就可以了,以此来提高上传效率和体验感。
13.进一步地:在客户端设置redis缓存装置,存储各分片文件md5信息。
14.进一步地:所述文件md5校验接口,用于判断对应文件是否已经存在文件服务端;所述分片文件上传接口,用于分片文件的上传;所述分片合并接口,用于分片文件全部上传成功后,合并所有分片文件为完整大文件;所述分片文件合并状态获取接口,用于客户端获取文件合并的状态信息。
15.总之,本发明一种大文件分片上传到文件服务端的方法及装置,具有如下有益效果:1、本发明的装置,将一个大文件分成多个分片文件来上传,这样当其中一些分片文件上传请求失败后,不需要重新上传整个文件,而只需要上传失败的分片文件就可以了,
以此来提高上传效率和体验感。
16.2、本发明方法引入redis缓存来存储上传的分片文件信息,所以二次上传很容易恢复,且redis具有分布式、高扩展、实时性、速度快等优点,故本方法关键步骤检索文件是否已经存在比其他方法来得快,提高检索文件的效率。
附图说明
17.图1为本发明的文件分片示意图;图2为本发明的客户端组件和文件服务端各个功能接口示意图;图3为本发明分片文件校验、上传、合并流程图。
具体实施方式
18.下面接合附图对本发明做进一步的详细说明:如图1所示,本发明的一种大文件分片上传到文件服务端的方法,包括如下步骤:1、客户端首先将大文件按照设定的上限值,拆分成若干分片文件,即每个分片文件的大小都小于该设定上限值,同时生成该大文件和对应每个分片文件的md5信息,假设100m为设定的上限值,超过100m的文件定义为大文件,每个分片的大小也设定为100mb;将该大文件和每个分片文件对应的md5信息发送文件服务端,并请求文件服务端校验大文件和各分片文件是否已存在。如图3所示。为了准确发送,在客户端将大文件和对应每个分片文件的md5信息参数进行拼接处理,即将各个分片文件的md5信息以逗号隔开拼接成一个字符串,用于服务器校验文件是否存在,再向文件服务端发送校验请求;2、文件服务端接收客户端校验大文件和各分片文件的md5信息的请求,然后校验整个大文件以及各分片文件是否已经存在。如果整个大文件已经存在,则响应客户端大文件已存在,客户端无需再上传,结束上传步骤。如果整个大文件不存在,则再分别校验每个分片是否存在,只要有分片文件不存在,则将对应的分片文件是否存在信息响应客户端。
19.3、客户端请求文件服务端的分片文件上传接口,将步骤2中不存在的所有分片文件上传至文件服务端。一次上传请求可以包含多个分片文件(每次请求最优上传多少个分片文件,可根据实际的网络带宽,分片大小,上传能力等做综合测试评估定义),当客户端接收到文件服务端所有分片上传成功的响应信息后,则向文件服务端发起合并文件请求。如果其中一些分片文件上传失败,可返回重新走步骤2的流程,此时客户端只是需要上传失败的分片文件即可。
20.4、当客户端将所有分片文件成功上传至文件服务端后,可请求文件服务端进行分片文件的合并。文件服务端合并分片是一个耗时的操作,所以是异步执行合并。客户端通过轮询的方式,来接收文件服务端最终的合并大文件结果的响应数据。
21.5、客户端轮询请求文件服务端分片文件合并的结果;轮询是指固定时间间隔请求分片文件合并的结果,分片文件合并的结果有如下状态:a、合并成功,b正在合并中,c、某一分块文件不存在,d、没有该合并任务,e、文件完整性校验失败等;当文件服务端响应客户端合并成功时,则表示分片文件正确合并,将整个大文件从客户端传输到文件服务端,完成整个大文件的上传流程。
22.本发明所述大文件,假设大于设定值100mb为大文件,当文件定义为大文件时,可
使用分片上传,提高效率。小于100mb的文件则可直接上传。大文件的大小定义,可根据实际的网络带宽,文件上传性能等做测试评估预设定义。所述分片文件,满足大文件的前提下,按照预定的分片大小将大文件拆分为若干个分片文件,分片文件大小定义可根据实际的网络带宽,文件上传性能等做测试评估预设定义,一般建议和大文件界定值相等,假设100mb为一个分片文件。
23.如图2、3所示,本发明的一种大文件分片上传到文件服务端的装置,包括客户端和文件服务端,客户端与文件服务端电连接,用于上传文件到文件服务端。客户端包含文件分片组件和生成文件md5信息组件,支持按照预先的设定值分片大小切分文件,生成完整文件的md5信息以及各分片文件包含的文件的md5信息;在客户端还设置redis缓存,支持高效的存储各分片文件的md5信息;本发明引入redis缓存来存储上传的分片文件信息,所以二次上传很容易恢复,且redis具有分布式、高扩展、实时性、速度快等优点,故本方法关键步骤检索文件是否已经存在比其他方法来得快,提高检索文件的效率。
24.所述文件服务端,用于接收客户端上传的文件,并进行存储;设置有支持文件存储以及文件操作的相关接口(api),其包括文件md5校验接口(api),分片文件上传接口(api),分片文件合并接口(api),获取分片文件合并状态接口(api),通过这几种接口使其具有相关功能。所述文件md5校验接口(api),用于判断对应文件是否已经存在文件服务端;所述分片文件上传接口(api),用于分片文件的上传;所述分片合并接口(api),用于分片文件全部上传成功后,合并所有分片文件为完整大文件;所述分片文件合并状态获取接口(api),用于客户端获取文件合并的状态信息。
25.最后需要说明的是,本发明的上述实例仅仅是为说明本发明所作的举例,而并非是对本发明的实施方式的限定。尽管申请人参照较佳实施例对本发明进行了详细说明,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其他不同形式的变化和变动。这里无法对所有的实施方式予以穷举。凡是属于本发明的技术方案所引申出的显而易见的变化或变动仍处于本发明的保护范围之列。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献