文件传输方法、装置、计算机设备和存储介质转让专利
申请号 : CN202010116955.9
文献号 : CN111355791B
文献日 : 2021-12-03
发明人 : 陈云云 , 李斌 , 曾楚伟
申请人 : 腾讯科技(深圳)有限公司
摘要 :
权利要求 :
1.一种文件传输方法,所述方法包括:终端获取携带文件标识的文件下载请求;
所述终端确定存储有所述文件标识对应的第一文件的第一文件服务器,以及所述第一文件服务器所在的第一网络;
所述终端在自身处于所述第一网络时,将所述文件下载请求发送至所处的第一网络的第一文件服务器,并接收第一文件服务器根据文件下载请求中的文件标识查询并反馈的第一文件;
所述终端在自身不处于所述第一网络时,将所述文件下载请求发送至所处的第二网络的第二文件服务器,所述文件下载请求用于指示所述第二文件服务器从所述第一文件服务器下载所述第一文件,并缓存在本地;
所述终端接收所述第二文件服务器反馈的所述第一文件。
2.根据权利要求1所述的方法,其特征在于,所述确定存储有所述文件标识对应的第一文件的第一文件服务器,以及所述第一文件服务器所在的第一网络,包括:根据所述文件标识从元数据集群获取相应第一文件的存储信息元数据;
根据所述存储信息元数据确定存储有所述第一文件的第一文件服务器,以及所述第一文件服务器所在的第一网络;
所述文件下载请求还用于指示所述第二文件服务器,根据所述第二文件服务器的网络信息,更新所述元数据集群中所述第一文件的存储信息元数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述终端获取携带待上传的第二文件的文件上传请求;
所述终端从所处的网络的文件服务器集群中选取用于存储的目标文件服务器;
所述终端将所述第二文件上传至所述目标文件服务器;上传的所述第二文件用于指示所述目标文件服务器在本地存储所述第二文件,并将所述第二文件的存储信息元数据更新至元数据集群;所述存储信息元数据携带有所述目标文件服务器的网络信息。
4.根据权利要求3所述的方法,其特征在于,上传的所述第二文件,还用于指示所述目标文件服务器,在将所述第二文件写入数据文件后,对应更新内存中的索引文件,并在数据文件发生切换时,将相应索引文件固化到磁盘中,并在所述目标文件服务器或所述目标文件服务器中用于存储索引文件的程序重启后,基于每个文件类型下文件编号最大的数据文件中已存储的文件重建该数据文件对应的索引文件,其中,在所述数据文件的总文件大小大于或等于文件存储阈值时,进行数据文件的切换。
5.根据权利要求3所述的方法,其特征在于,所述将所述第二文件上传至所述目标文件服务器,包括:
确定所述第二文件的文件大小;
当所述文件大小大于文件上传阈值时,按照所述文件上传阈值将所述第二文件切分成多个文件块;
将所述多个文件块依次上传至所述目标文件服务器;依次上传的文件块,用于指示所述目标文件服务器在接收到所述多个文件块后,将由所述多个文件块组合成的第二文件存储在本地,并将所述第二文件的存储信息元数据更新至元数据集群;所述存储信息元数据携带有所述目标文件服务器的网络信息。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:所述终端在自身处于所述第一网络时,将所述文件下载请求发送至所述第一文件服务器;发送的所述文件下载请求用于指示所述第一文件服务器,按照所述文件标识对应的索引信息读取相应第一文件;
所述终端接收所述第一文件服务器反馈的所述第一文件。
7.根据权利要求3所述的方法,其特征在于,上传的所述第二文件,还用于指示所述目标文件服务器,将所述第二文件同步至所述文件服务器集群中的至少一个文件服务器,并根据所述至少一个文件服务器的网络信息更新所述元数据集群中所述第二文件的存储信息元数据。
8.一种文件传输方法,所述方法包括:文件服务器接收携带文件标识的文件下载请求;
所述文件服务器在自身不处于存储有所述文件标识对应的第一文件的第一网络、且所述文件下载请求由自身所处的第二网络的终端发送时,从所述第一网络中存储有所述第一文件的第一文件服务器下载所述第一文件;
所述文件服务器将所述第一文件缓存在本地;缓存的第一文件用于在再次接收到携带所述文件标识的文件下载请求时,直接进行反馈;所述再次接收的文件下载请求由处于所述第二网络的终端发送;
所述文件服务器将所述第一文件对应于接收的所述文件下载请求反馈至相应终端。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:所述文件服务器接收终端上传的第二文件;
所述文件服务器将所述第二文件按照文件类型写入本地的相应数据文件中;
所述文件服务器生成所述第二文件对应的索引信息;所述索引信息用于确定存储有所述第二文件的数据文件,并从所述数据文件中定位所述第二文件。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:所述文件服务器,在将所述第二文件写入本地的响应数据文件后,对应更新内存中的索引文件,并在数据文件发生切换时,将相应索引文件固化到磁盘中;其中,在所述数据文件的总文件大小大于或等于文件存储阈值时,进行数据文件的切换,并在所述文件服务器或所述文件服务器中用于存储索引文件的程序重启后,基于每个文件类型下文件编号最大的数据文件中已存储的文件重建该数据文件对应的索引文件。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:所述文件服务器检测所述文件类型下文件编号最大的目标数据文件的总文件大小;
所述文件服务器在所述总文件大小大于或等于文件存储阈值时,将所述目标数据文件同步至从所处的网络的文件服务器集群中选取的至少一个文件服务器;
所述文件服务器根据所述至少一个文件服务器的网络信息,批量更新所述目标数据文件中的文件在元数据集群中的存储信息元数据。
12.根据权利要求9所述的方法,其特征在于,所述将所述第二文件按照文件类型写入本地的相应数据文件中之后,所述方法还包括:根据自身的网络信息生成所述第二文件的存储信息元数据;所述存储信息元数据用于确定存储有所述第二文件的文件服务器,以及所述文件服务器所在的网络;
将所述第二文件的存储信息元数据更新至元数据集群。
13.根据权利要求9所述的方法,其特征在于,所述方法还包括:检测所述文件类型下文件编号最大的目标数据文件的总文件大小;
当所述总文件大小大于或等于文件存储阈值时,将所述目标数据文件同步至从所处的网络的文件服务器集群中选取的至少一个文件服务器;
根据所述至少一个文件服务器的网络信息,批量更新所述目标数据文件中的文件在元数据集群中的存储信息元数据。
14.根据权利要求13所述的方法,其特征在于,所述将所述目标数据文件同步至从所处的网络的文件服务器集群中选取的至少一个文件服务器,包括:从所处的网络的文件服务器集群中选取的至少一个文件服务器;
通过所述文件类型对应的同步线程,将所述目标数据文件中的文件依次同步至所述至少一个文件服务器;
将所述目标数据文件中已同步文件的文件偏移,记录至所述同步线程对应的同步记录文件中;所述同步记录文件用于在同步过程中断时,基于最近记录的文件偏移继续进行文件同步。
15.一种文件传输装置,其特征在于,所述装置包括:获取模块,用于获取携带文件标识的文件下载请求;
确定模块,用于确定存储有所述文件标识对应的第一文件的第一文件服务器,以及所述第一文件服务器所在的第一网络;
下载模块,用于在自身所在终端处于所述第一网络时,将所述文件下载请求发送至所处的第一网络的第一文件服务器,并接收第一文件服务器根据文件下载请求中的文件标识查询并反馈的第一文件;并在自身所在终端不处于所述第一网络时,将所述文件下载请求发送至所处的第二网络的第二文件服务器,所述文件下载请求用于指示所述第二文件服务器从所述第一文件服务器下载所述第一文件,并缓存在本地;
接收模块,用于接收所述第二文件服务器反馈的所述第一文件,还用于接收第一文件服务器反馈的第一文件。
16.根据权利要求15所述的装置,其特征在于:所述确定模块,还用于根据文件标识从元数据集群获取相应第一文件的存储信息元数据;根据存储信息元数据确定存储有第一文件的第一文件服务器,以及第一文件服务器所在的第一网络;文件下载请求还用于指示第二文件服务器,根据第二文件服务器的网络信息,更新元数据集群中第一文件的存储信息元数据。
17.根据权利要求15所述的装置,其特征在于,所述装置还包括:上传模块,用于获取携带待上传的第二文件的文件上传请求;从所处的网络的文件服务器集群中选取用于存储的目标文件服务器;将第二文件上传至目标文件服务器;上传的第二文件用于指示目标文件服务器在本地存储第二文件,并将第二文件的存储信息元数据更新至元数据集群;存储信息元数据携带有目标文件服务器的网络信息。
18.根据权利要求17所述的装置,其特征在于,上传的所述第二文件,还用于指示所述目标文件服务器,在将所述第二文件写入数据文件后,对应更新内存中的索引文件,并在数据文件发生切换时,将相应索引文件固化到磁盘中,并在所述目标文件服务器或所述目标文件服务器中用于存储索引文件的程序重启后,基于每个文件类型下文件编号最大的数据文件中已存储的文件重建该数据文件对应的索引文件,其中,在所述数据文件的总文件大小大于或等于文件存储阈值时,进行数据文件的切换。
19.根据权利要求17所述的装置,其特征在于:所述上传模块,还用于确定第二文件的文件大小;当文件大小大于文件上传阈值时,按照文件上传阈值将第二文件切分成多个文件块;将多个文件块依次上传至目标文件服务器;依次上传的文件块,用于指示目标文件服务器在接收到多个文件块后,将由多个文件块组合成的第二文件存储在本地,并将第二文件的存储信息元数据更新至元数据集群;存储信息元数据携带有目标文件服务器的网络信息。
20.根据权利要求15所述的装置,其特征在于:所述下载模块,还用于当处于第一网络时,将文件下载请求发送至第一文件服务器;发送的文件下载请求用于指示第一文件服务器,按照文件标识对应的索引信息读取相应第一文件。
21.一种文件传输装置,其特征在于,所述装置包括:接收模块,用于接收携带文件标识的文件下载请求;
下载模块,用于在自身所在服务器不处于存储有所述文件标识对应的第一文件的第一网络、且所述文件下载请求由所处的第二网络的终端发送时,从所述第一网络中存储有所述第一文件的第一文件服务器下载所述第一文件;
缓存模块,用于将所述第一文件缓存在本地;缓存的第一文件用于在再次接收到携带所述文件标识的文件下载请求时,直接进行反馈;所述再次接收的文件下载请求由处于所述第二网络的终端发送;
反馈模块,用于将所述第一文件对应于接收的所述文件下载请求反馈至相应终端。
22.根据权利要求21所述的装置,其特征在于,所述装置还包括:写入模块,用于接收终端上传的第二文件;将第二文件按照文件类型写入本地的相应数据文件中;生成第二文件对应的索引信息;索引信息用于确定存储有第二文件的数据文件,并从数据文件中定位第二文件。
23.根据权利要求22所述的装置,其特征在于:所述写入模块,还用于在将所述第二文件写入本地的响应数据文件后,对应更新内存中的索引文件,并在数据文件发生切换时,将相应索引文件固化到磁盘中;其中,在所述数据文件的总文件大小大于或等于文件存储阈值时,进行数据文件的切换,并在所述文件服务器或所述文件服务器中用于存储索引文件的程序重启后,基于每个文件类型下文件编号最大的数据文件中已存储的文件重建该数据文件对应的索引文件。
24.根据权利要求22所述的装置,其特征在于,所述装置还包括:同步模块,用于检测文件类型下文件编号最大的目标数据文件的总文件大小;当总文件大小大于或等于文件存储阈值时,将目标数据文件同步至从所处的网络的文件服务器集群中选取的至少一个文件服务器;根据至少一个文件服务器的网络信息,批量更新目标数据文件中的文件在元数据集群中的存储信息元数据。
25.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至14中任一项所述方法的步骤。
26.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至14中任一项所述的方法的步骤。
说明书 :
文件传输方法、装置、计算机设备和存储介质
技术领域
背景技术
题。目前的分布式文件存储方式仅适用于同一网络中心内的数据存储。随着企业的数字化
转型,多中心协同办公的需求越来越多,企业的多中心之间通过专线互联。而通过专线互联
的多中心间的网络带宽资源有限,目前的分布式文件存储方式无法满足企业内部多中心文
件传输的需求,存在文件传输效率低的问题。
发明内容
述第一文件,并缓存在本地;
数据集群;所述存储信息元数据携带有所述目标文件服务器的网络信息。
文件服务器的网络信息更新所述元数据集群中所述第二文件的存储信息元数据。
件服务器下载所述第一文件,并缓存在本地;
器下载所述第一文件;
的终端发送;
行文件同步。
的第一文件服务器下载所述第一文件;
于所述第二网络的终端发送;
所处的网络,而当终端不处于该第一网络时,表明与终端处于同一网络的文件服务器中未
存储第一文件,则将文件下载请求发送至所处的第二网络中的第二文件服务器,以通过第
二文件服务器从第一网络下的第一文件服务器中获取第一文件,以保证第一文件的有效下
载。进一步地,第二文件服务器将根据文件下载请求下载的第一文件缓存在本地,这样,由
与第二文件服务器处于同一网络的终端再次发起携带该文件标识的文件下载请求时,该网
络的文件服务器已缓存有第一文件,即请求终端与文件服务器处于同一网络,一方面无需
再从其他网络获取该第一文件,能够避免因再次跨网络获取第一文件而占用的网络带宽资
源,另一方面,同一网络下载,能够提高文件传输效率。
附图说明
具体实施方式
用于限定本申请。
络110包括至少一个存储有文件下载请求所指定的第一文件的第一文件服务器112。第二网
络120包括终端122,以及至少一个用于从第一文件服务器112下载第一文件的第二文件服
务器124。第二文件服务器124与终端122通过内网进行通信,第二文件服务器124与终端122
分别通过专线与第一文件服务器112进行通信。终端122在获取到携带文件标识的文件下载
请求后,确定存储有该文件标识对应的第一文件的第一文件服务器,以及第一文件服务器
所处的第一网络,并当终端122不处于第一网络110时,终端122将所获取到的文件下载请求
发送至第二网络120中的第二文件服务器124;第二文件服务器124根据文件下载请求从第
一文件服务器112下载第一文件,将第一文件缓存在本地,并将第一文件反馈至终端122。
与“第二”并不用于具体限定,只是用于区分对象;比如“第一网络”与“第二网络”,只是为了
区分第一文件服务器112所处的网络,与终端122所处的网络是不同的网络;还比如,“第一
文件服务器”与“第二文件服务器”,只是为了区分存储有第一文件的文件服务器,与用于从
其他网络下载第一文件的文件服务器是不同的文件服务器。
132。图1所示的网络以及每个网络内的文件服务器数量仅作为示例,并不用于具体限定。其
中,终端122可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可
穿戴设备,各个网络中的文件服务器可以用独立的服务器或者是多个服务器组成的服务器
集群来实现。
于一个网络,同一个网络内的计算机设备通过内网进行通信,处于不同网络的计算机设备
之间通过专线进行通信。在本实施例中,计算机设备包括但不限于是终端与服务器。可以理
解,图1所示的第一网络110为一个或多个,当终端122请求下载第一文件时,该第一文件存
储在一个中心的文件服务器上的同时,还可能以缓存的方式存储在其他一个或多个中心的
文件服务器上。若存储有第一文件的文件服务器分处于多个中心,则该多个中心各自对应
的网络均作为第一网络110。若存储有第一文件的文件服务器同处于一个中心,则该中心作
为第一网络110。
带有待下载的第一文件的文件标识。
载请求。
络的终端与服务器具有相同的网络地址。
件,存储有该文件的文件服务器均可理解为该文件相应的第一文件服务器,各个待下载的
文件对应的第一文件服务器相互独立。
络。
的第一网络。
器,以及每个第一文件服务器所在的第一网络。
传,并在该多个第一文件服务器上进行多副本存储。若该多个第一文件服务器分处于不同
的网络,则第一文件由处于其中一个网络的终端上传,并存储在该终端所处网络的一个或
多个第一文件服务器上,而处于其他网络中的第一文件服务器以缓存方式存储有该第一文
件。
在本地。
第一网络。当判定终端不处于第一网络时,终端从自身所处的第二网络中的文件服务器中
选取第二文件服务器,并将携带文件标识的文件下载请求发送至所选取出的第二文件服务
器。第二文件服务器在接收到携带文件标识的文件下载请求后,确定存储有该文件标识对
应的第一文件的第一文件服务器,根据该文件标识从所确定的第一文件服务器中下载相应
的第一文件,并将所下载的第一文件缓存在本地。
器。终端也可通过查询文件服务器列表的形式,确定与自身同处于第二网络的文件服务器。
数是基于第二网络中可能下载文件的终端数动态确定的,比如一个中心需要下载同一文件
的终端或用户较多,则会在多个第二文件服务器上缓存该文件,以便于提高文件下载效率。
收到的存储信息元数据,能够快速定位存储有第一文件的第一文件服务器。第二文件服务
器也可根据文件下载请求中的文件标识,主动从元数据集群中获取相应第一文件的存储信
息元数据。
件标识查询并反馈的第一文件。
文件服务器反馈的第一文件。
所处的网络,而当终端不处于该第一网络时,表明与终端处于同一网络的文件服务器中未
存储第一文件,则将文件下载请求发送至所处的第二网络中的第二文件服务器,以通过第
二文件服务器从第一网络下的第一文件服务器中获取第一文件,以保证第一文件的有效下
载。进一步地,第二文件服务器将根据文件下载请求下载的第一文件缓存在本地,这样,由
与第二文件服务器处于同一网络的终端再次发起携带该文件标识的文件下载请求时,该网
络的文件服务器已缓存有第一文件,即请求终端与文件服务器处于同一网络,一方面无需
再从其他网络获取该第一文件,能够避免因再次跨网络获取第一文件而占用的网络带宽资
源,另一方面,同一网络下载,能够提高文件传输效率。
一文件服务器所在的第一网络;文件下载请求还用于指示第二文件服务器,根据第二文件
服务器的网络信息,更新元数据集群中第一文件的存储信息元数据。
息的元数据信息,能够用于确定文件及其副本的分布情况。存储信息元数据包括文件标识
与存储有文件的每个文件服务器的网络信息等。网络信息能够用于唯一确定一个文件服务
器,以及该文件服务器所处的网络。
Protocol,网际互连协议)地址。
服务器标识与网络标识,即可快速确定存储有第一文件的第一文件服务器,以及每个第一
文件服务器所处的第一网络。
出的网络信息确定存储有第一文件的第一文件服务器,以及每个第一文件服务器所处的第
一网络,以便于直接或间接的从所确定的第一文件服务器中下载第一文件。终端通过自身
所处的第二网络的第二文件服务器,从存储有第一文件的第一文件服务器下载该第一文件
后,该第二文件服务器会将自身的网络信息更新至元数据集群中该第一文件的存储信息元
数据中。
服务器,并将元数据获取请求发送至所选取的元数据服务器。终端还可将元数据获取请求
直接发送至元数据集群,由元数据集群分配用于响应该元数据获取请求的元数据服务器。
元数据集群根据每个元数据服务器的当前负载,或者,文件标识的哈希值等选取用于响应
的元数据服务器。
心均部署有至少一个文件服务器,由此实现了文件服务器的多中心分布式部署。每个中心
内部通过内网互联,各个中心之间通过专线互联。元数据集群部署在其中一个中心,如图3
所示的总部,处于总部的终端通过内网能够直接从元数据集群获取文件的存储信息元数
据,处于分中心的终端则需通过所处中心与总部之间的专线来获取存储信息元数据。图3所
示的中心及其数量,及每个中心部署的文件服务器数量仅作为示例,并不用于具体限定,比
如图示的文件服务器可理解为由多个文件服务器组成的文件服务器集群。
以网络信息为文件服务器的IP地址为例。文件副本是相对概念,当文件在多个文件服务器
上进行存储时,该多个文件服务器上存储的文件互为文件副本,以实现文件的多副本存储,
该多个文件服务器的网络信息均作为副本IP地址存储于存储信息元数据中,如图4所示的
副本IP1,副本IP2与副本IP3。当文件存储在单个文件服务器上时,则将该单个文件服务器
的网络信息作为副本IP地址存储于存储信息元数据中。存储信息元数据中还可包括文件对
应的一个或多个缓存副本IP列表,如图4所示的缓存副本1‑IP列表与缓存副本2‑IP列表。每
个缓存副本列表对应一个网络或中心,且缓存副本列表是由处于相应网络的文件服务器从
其他网络下载相应文件并缓存在本地后生成或更新的。可以理解,每个缓存副本IP列表中
可包括当前缓存有相应文件的一个或多个文件服务器的IP地址。如图4所示,每个文件的存
储信息元数据还可包括文件的创建时间,以及用于标识文件是否持久性存储的文件类型标
识。
络,以便于基于所定位的第一文件服务器与第一网络快速下载第一文件。第二文件服务器
将根据终端发送的文件下载请求,从处于第一网络的第一文件服务器下载的第一文件缓存
在本地后,将自身的网络信息更新至元数据集群中该第一文件的存储信息元数据中,以便
于处于第二网络的终端针对该第一文件再次发起文件下载请求时,基于更新后的存储信息
元数据能够确定第二网络已缓存有该第一文件,由此能够直接从所处的第二网络下载第一
文件,从而能够提高文件传输效率。
件上传至目标文件服务器;上传的第二文件用于指示目标文件服务器在本地存储第二文
件,并将第二文件的存储信息元数据更新至元数据集群;存储信息元数据携带有目标文件
服务器的网络信息。
标识,还可携带文件的创建时间与文件类型标识等。
网络的文件服务器集群中选取用于存储第二文件的目标文件服务器,并将所获取到的第二
文件上传至所选取的目标文件服务器。目标文件服务器将所接收到的第二文件存储在本
地,生成携带有自身的网络信息、且与第二文件对应的存储信息元数据,并将该存储信息元
数据更新至元数据集群。
的文件相关信息,生成第二文件的存储信息元数据。
目标文件服务器根据第二文件的文件类型标识,从本地确定相应文件类型所对应的数据文
件,将第二文件写入该数据文件中。数据文件可理解为目标文件服务器上用于合并存储相
同文件类型的文件的物理文件,每个数据文件预配置有相应的文件存储阈值。在当前数据
文件中已存储文件的总文件大小大于或等于文件存储阈值时,切换至下一个数据文件执行
文件写入操作。在当前数据文件对应的总文件大小小于文件存储阈值时,继续当前数据文
件中执行文件写入操作。文件存储阈值比如2G(吉兆,一种字节计量单位)。
元数据集群中第二文件的存储信息元数据。
一个文件服务器的网络信息,更新至该第二文件在元数据集群中的存储信息元数据中。用
于同步存储第二文件的至少一个文件服务器可由终端确定。终端根据所处的网络中的每个
文件服务器的性能参数与预配置的副本数,从所处网络的文件服务器集群中选取副本数的
目标文件服务器。终端可将第二文件发送至所选取的目标文件服务器中的任一个,并通过
该目标文件服务器将第二文件同步至其他每个目标文件服务器。终端也可将第二文件分别
发送至所选取的每个目标文件服务器。终端还可将第二文件发送至从文件服务器集群中选
取的单个目标文件服务器,以指示该目标文件服务器根据该文件服务器集群中每个文件服
务器的性能参数,从该文件服务器集群中选取相应数量的文件服务器,并将第二文件同步
至所选取的文件服务器。其中,性能参数包括文件服务器的磁盘容量与负载等。
时所需占用的网络带宽资源,能够提高文件的传输效率。进一步地,用于接收并存储第二文
件的目标文件服务器,将携带自身的网络信息的存储信息元数据更新至元数据集群,以便
于请求下载该第二文件的终端基于存储信息元数据,能够快速定位该第二文件的存储分布
情况,从而进一步提高文件传输效率。
将多个文件块依次上传至目标文件服务器;依次上传的文件块,用于指示目标文件服务器
在接收到多个文件块后,将由多个文件块组合成的第二文件存储在本地,并将第二文件的
存储信息元数据更新至元数据集群;存储信息元数据携带有目标文件服务器的网络信息。
数据块。
阈值时,终端按照该文件上传阈值对第二文件进行切分处理,得到相应的多个文件块。将第
二文件切分得到的多个文件块中,除最后一个文件块之外的每个文件块的文件块大小均与
文件上传阈值一致。终端将第二文件对应的多个文件块依次上传至所选取的目标文件服务
器。目标文件服务器将终端依次上传的文件块缓存在本地,并在第二文件对应的多个文件
块均上传完毕时,根据该多个文件块进行批量刷盘,以将该有该多个文件块组合成的第二
文件存储在本地。目标文件服务器生成携带有自身的网络信息的、且与第二文件对应的存
储信息元数据,并将该存储信息元数据更新至元数据集群。
件中,将持久性文件写入持久性文件目录下的数据文件中。
问题,能够提高文件传输效率。
应的索引信息读取相应第一文件;接收第一文件服务器反馈的第一文件。
件编号、文件在数据文件中的文件偏移与文件长度等。索引信息还可包括文件类型标识,文
件类型标识比如持久性文本、同步副本、临时文本与缓存副本。
服务器解析文件下载请求得到文件标识,获取文件标识对应的索引信息,根据索引信息确
定存储有该第一文件的数据文件,并根据索引信息从该数据文件中读取第一文件,进而将
读取的第一文件反馈至相应终端。
号从本地确定相应的数据文件,根据文件偏移在该数据文件中定位第一文件的起始位置,
并根据起始位置与文件长度从数据文件中定位该第一文件,并从数据文件中读取所定位出
的第一文件。
件。
第二网络的第二文件服务器从第一文件服务器下载第一文件。当终端处于该多个第一网络
中的任一个时,终端从与自身处于同一个第一网络的第一文件服务器中下载第一文件,以
实现文件的就近下载,这样,终端通过内网从自身所处的第一网络的第一文件服务器下载
第一文件,而不必跨网络从其他网络下载第一文件,能够提高文件传输效率。
偏移与文件在数据文件中的文件长度,还可包括持久性文本、同步副本、临时文本或缓存副
本等文件类型标识。其中,索引信息可按照键值对的形式存储,具体可通过Leveldb(一个kv
(键值对)数据库)进行存储。
输效率。进一步地,第一文件服务器基于文件标识对应的索引信息快速从本地定位第一文
件,能够进一步提高文件传输效率。
步骤S616‑S624。
缓存在本地,以及根据第二文件服务器的网络信息,更新元数据集群中第一文件的存储信
息元数据。
地,并将第二文件的存储信息元数据更新至元数据集群;存储信息元数据携带有目标文件
服务器的网络信息。
优先带宽资源的问题,能够提高文件上传过程中的文件传输效率。终端优先从自身所处的
网络中下载待下载的第一文件,当自身所处的网络未存储该第一文件时,通过自身所处网
络的第二文件服务器从存储有第一文件的第一文件服务器下载该第一文件,并缓存在第二
文件服务器,以便于该网络内的终端再次请求下载该第一文件时,能够直接从所处网络的
第二文件服务器下载缓存的第一文件,而不必再跨网络下载该第一文件,能够提高文件下
载过程中的文件传输效率,由此能够提高整个文件传输过程中的文件传输效率。可以理解,
上述实施例中待上传的第二文件与待下载的第一文件可以是同一个文件,由此,也能够实
现同一终端对同一文件的上传与下载。
现文件共享与文件群发等。基于文件上传与文件下载优先访问就近中心的文件服务器,以
及中心内部自连接、中心之间缓存文件的文件传输方式,尽量避免跨中心的文件传输,以降
低中心之间专线的网络流量,并提高文件传输效率。
服务器下载该第一文件。
件。第二文件服务器还可接收与自身处于不同网络的文件服务器发送的文件下载请求,并
根据文件下载请求从本地获取并反馈相应第一文件。
文件。
一网络,并确定该终端所处的网络,以及自身所处的网络。当判定第二文件服务器不处于第
一网络,且第二文件服务器与发送文件下载请求的终端同处于第二网络时,表明第二文件
服务器尚未存储第一文件,第二文件服务器根据文件标识,从存储有第一文件的第一文件
服务器下载该第一文件。
器根据存储信息元数据确定存储有相应第一文件的第一文件服务器,以及第一文件服务器
所在的第一网络。第二文件服务器从存储信息元数据中提取文件标识对应的网络信息,解
析网络信息得到网络地址与主机地址,根据主机地址确定存储有第一文件的第一文件服务
器,并根据网络地址确定相应第一文件服务器所在的第一网络。
储有待下载的第一文件,第二文件服务器则从本地获取第一文件并反馈至相应终端。
从第一网络中存储有第一文件的第一文件服务器获取。第二文件服务器可通过查询文件标
识对应的索引信息,来判断本地是否存储有第一文件。
在再次接收到自身所处的网络的终端发送的、且携带有已缓存的第一文件的文件标识的文
件下载请求时,由于第二文件服务器已缓存有该第一文件,第二文件服务器直接从本地获
取缓存的第一文件,并反馈至相应终端。
器需通过能够同时与第一文件服务器及第二文件服务器进行通信的文件服务器,从第一文
件服务器下载第一文件,并将第一文件缓存在本地,以便于所处的网络的终端再次请求该
第一文件时,则无需再通过上述复杂流程来从第一文件服务器下载,而是直接将本地缓存
的第一文件反馈至相应终端。由此,本申请中通过就近中心上传与下载文件,每个中心内部
通过内网自连接,中心之间缓存文件等方式,在多中心与异构网络等复杂网络环境下,仍然
能够有效进行文件的上传、存储与下载,从而能够提高文件传输效率。
该第一网络时,表明与终端处于同一网络的文件服务器中未存储第一文件,则将文件下载
请求发送至所处的第二网络中的第二文件服务器,以通过第二文件服务器从第一网络下的
第一文件服务器中获取第一文件,以保证第一文件的有效下载。进一步地,第二文件服务器
将根据文件下载请求下载的第一文件缓存在本地,这样,由与第二文件服务器处于同一网
络的终端再次发起携带该文件标识的文件下载请求时,该网络的文件服务器已缓存有第一
文件,即请求终端与文件服务器处于同一网络,一方面无需再从其他网络获取该第一文件,
能够避免因再次跨网络获取第一文件而占用的网络带宽资源,另一方面,同一网络下载,能
够提高文件传输效率。
于确定存储有第二文件的数据文件,并从数据文件中定位第二文件。
件,将多个数据量较小的文件合并写入一个数据文件,以将随机写入的文件转化为顺序写
入。文件类型用于标识文件的存储类型,具体可包括持久性文本、同步副本、临时文本与缓
存副本。持久性文本是需持久性存储的文本,临时文本是临时性存储的文本,同步副本是由
一个文件服务器同步至同处于一个网络的一个或多个文件服务器的文件,缓存副本是由一
个文件服务器从其他网络中的文件服务器下载并缓存在本地的文件。
二文件在数据文件中的文件偏移与文件长度,以及数据文件的文件编号生成相应的索引信
息,以便于基于索引信息中的文件编号,能够从第二文件服务器中确定存储有该第二文件
的数据文件,以及基于索引信息中的文件偏移与文件长度,能够从数据文件中定位该第二
文件。文件偏移是指第二文件在数据文件中相对于参考位置的偏移量,参考位置比如数据
文件的起始字符处。文件长度是指第二文件写入数据文件时所占用的字符长度或数量。
定该目标数据文件的总文件大小。当总文件大小小于文件存储阈值时,第二文件服务器将
第二文件写入该目标数据文件。当总文件大小大于或等于文件存储阈值时,第二文件服务
器则将第二文件写入下一数据文件中。
并以结束标识结束。当数据文件部分损坏后,根据起始标识与相应结束标识能够恢复出数
据文件中未损坏的文件。在每个文件对应的起始标识与结束标识之间还会存储该文件的文
件长度,当记忆起始标识与结束标识确定的文件长度与所存储的文件长度一致时,则能够
基于该起始标识与结束标识恢复出未损坏的相应文件。每个文件的起始标识与结束标识之
间还会存储相应的文件校验码,比如CRC(Cyclic Redundancy Check,循环冗余校验)校验
码。文件服务器从本地的数据文件中读取文件时,会基于相应的文件校验码对读取的文件
进行校验,以防止因磁盘损坏而读取到错误的数据。文件基于读取的文件动态确定相应的
文件校验码,并将动态确定的文件校验码与数据文件中相应存储的文件校验码进行比对,
若不一致则表明读取的文件存在错误。
标识开始,以结束标识结束,并在起始标识与结束标识之间存储有文件标识长度、文件长
度、文件标识、文件内容与文件校验码等。数据文件对应的索引文件中存储有数据文件对应
的文件编号,以及已写入数据文件的文件对应的文件标识与相应的文件标识长度。索引文
件中还可包括基于索引文件中的内容确定的文件校验码。
件目录下的数据文件中。如图9所示,文件类型包括持久性文件、同步副本、临时文件与缓存
副本,每个文件类型对应一个文件目录,该文件目录下存储有多个数据文件,每个数据文件
配置有相应的文件存储阈值,如图9所示的2G。值得说明的是,图9所示的文件存储阈值为2G
仅作为示例,并不用于具体限定。而且,由于文件的顺序写入,以及每个文件的文件大小不
一致,每个数据文件对应的总文件大小通常不会与文件存储阈值相等,故图9所示的2G仅用
于表征每个数据文件对应的文件存储阈值,而不是实际存储的总文件大小。
会产生大量随机IO。通过将数据量较小的文件合并写入数据文件,并针对每个数据文件生
成相应的索引文件,由此每个索引文件对应一个索引节点,能够减少索引节点的数量,而合
并存储方式能够减少随机IO,从而提高文件写入性能。为了保证文件存储与同步的可靠性,
每个数据文件预配置有文件存储阈值,当判定数据文件的总文件大小大于或等于文件存储
阈值时,则会进行数据文件的切换,并将待存储的文件写入下一数据文件中。
数据文件发生切换时,将相应索引文件固化到磁盘中。由此,当文件服务器或用于存储索引
文件的程序重启后,需要基于每个文件类型下文件编号最大的数据文件中已存储的文件重
建该数据文件对应的索引文件。
元数据用于确定存储有第二文件的文件服务器,以及文件服务器所在的网络;将第二文件
的存储信息元数据更新至元数据集群。
储信息元数据,并将该存储信息元数据更新至元数据集群,以便于终端在请求下载该第二
文件时,能够基于该存储信息元数据确定存储有该第二文件的文件服务器,以及该文件服
务器所在的网络。其中,第二文件的存储信息元数据包括第二文件的文件标识,存储有第二
文件的文件服务器的网络信息,还可包括第二文件的文件类别标识。
为顺序写入方式,以减少文件写入时由于磁盘写入特征所产生的随机IO(随机读写)的数
量,能够提高文件写入效率。
步至从所处的网络的文件服务器集群中选取的至少一个文件服务器;根据至少一个文件服
务器的网络信息,批量更新目标数据文件中的文件在元数据集群中的存储信息元数据。
置的文件存储阈值进行比较。当判定总文件大小大于或等于文件存储阈值时,第二文件服
务器从自身所处的网络的文件服务器集群中选取至少一个文件服务器,将总文件大小大于
或等于文件存储阈值的目标数据文件同步至所选取的至少一个文件服务器,并在同步成功
后,根据该至少一个文件服务器的网络信息,批量更新该目标数据文件中的每个文件在元
数据集群中对应的存储信息元数据。
务器;通过文件类型对应的同步线程,将目标数据文件中的文件依次同步至至少一个文件
服务器;将目标数据文件中已同步文件的文件偏移,记录至同步线程对应的同步记录文件
中;同步记录文件用于在同步过程中断时,基于最近记录的文件偏移继续进行文件同步。
持久性文件与临时文件的两个同步线程。每个同步线程对应配置有用于记录当前同步的目
标数据文件的同步进度的同步记录文件,同步记录文件中可记录有已同步文件在目标数据
文件中的文件偏移,还可记录已同步文件的文件标识。在当前同步的目标数据文件同步完
成后,文件服务器会更新同步记录文件中记录的文件偏移,并在下一次同步过程中将已同
步文件的文件偏移动态记录至该同步记录文件中。
这样,将第二文件及时同步至其他文件服务器进行多副本存储,能够避免因第二文件服务
器宕机而导致第二文件丢失的问题,从而能够保证文件的存储与传输的可靠性。
据文件同步完成后,批量更新目标数据文件中每个文件的存储信息元数据,在跨网络更新
存储信息元数据时,通过批量更新能够避免频繁更新所需占用的网络带宽资源,从而能够
提高存储信息元数据的更新效率。
些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图6与
图7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是
在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必
然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或
者交替地执行。
块1002、确定模块1004、下载模块1006和接收模块1008,其中:
文件,并缓存在本地;
以及第一文件服务器所在的第一网络;文件下载请求还用于指示第二文件服务器,根据第
二文件服务器的网络信息,更新元数据集群中第一文件的存储信息元数据。
传的第二文件用于指示目标文件服务器在本地存储第二文件,并将第二文件的存储信息元
数据更新至元数据集群;存储信息元数据携带有目标文件服务器的网络信息。
至目标文件服务器;依次上传的文件块,用于指示目标文件服务器在接收到多个文件块后,
将由多个文件块组合成的第二文件存储在本地,并将第二文件的存储信息元数据更新至元
数据集群;存储信息元数据携带有目标文件服务器的网络信息。
索引信息读取相应第一文件;接收模块1008,还用于接收第一文件服务器反馈的第一文件。
块1102、下载模块1104、缓存模块1106与反馈模块1108,其中:
务器下载第一文件;
络的终端发送;
据文件,并从数据文件中定位第二文件。
器集群中选取的至少一个文件服务器;根据至少一个文件服务器的网络信息,批量更新目
标数据文件中的文件在元数据集群中的存储信息元数据。
述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储
于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器
包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数
据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计
算机设备的数据库用于存储文件。该计算机设备的网络接口用于与外部的终端通过网络连
接通信。该计算机程序被处理器执行时以实现一种文件传输方法。
示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的
存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机
程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计
算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过
WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现
一种文件传输方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计
算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按
键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部
件布置。
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read‑
Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器
(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种
形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存
储器(Dynamic Random Access Memory,DRAM)等。
盾,都应当认为是本说明书记载的范围。
说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护
范围。因此,本申请专利的保护范围应以所附权利要求为准。