1.本发明创造属于数据存储的技术领域,具体涉及了一种文件的处理方法、处理装置、存储介质及其电子设备。
背景技术:2.随着互联网技术的发展,对于文件的存储方式以及从本地存储变为云端存储。随着通信带宽的提高,基于http协议的客户端与服务器端交互通信越来越普遍。但是使用http协议的客户端与服务器端交互通信时,对于单体大文件传输时,依然存在很多问题。尤其在使用者方面,由于文件过大,会出现上传时间长、且发生中断后,需要重新上传的情况。
技术实现要素:3.本发明要解决的技术问题是:使用客户端与服务器端交互通信时,对于单体大文件传输时,由于文件过大,会出现上传时间长、且发生中断后,需要重新上传的情况。
4.针对上述技术问题,本发明创造提出了一种文件的处理方法、处理装置、存储介质及其电子设备。本技术改变了以往基于http协议上传文件时采用整体上传的方式,将其对文件进行数据分块形成数据块,然后再上传数据块,如此设置的解决了在发生中断后继续上传,而不需要全部重新上传的问题。
5.为解决上述技术问题,本发明所采用的技术方案包含四个方面。
6.第一方面,提供了一种文件的处理方法,应用于客户端,包括:向服务器发送待上传文件的文件信息;获取所述服务器根据所述文件信息返回的第一批次数据块参数;根据所述第一批次数据块参数对所述待上传文件进行数据分块形成第一批次数据块组,并将所述第一批次数据块组上传至所述服务器,以使所述服务器存储所述待上传文件。
7.在一些实施例中,所述第一批次数据块参数包括:第一批次数据块序号、第一批次数据块个数、每个数据块大小,所述根据第一批次数据块参数对所述待上传文件进行数据分块形成第一批次数据块组,并将所述第一批次数据块组和所述第一批次数据块参数上传至所述服务器,包括:根据所述第一批次数据块序号和所述第一批次数据块个数计算所述第一批次数据块组中每个数据块对应的开始字节位置;基于所述开始字节位置和所述每个数据块大小截取所述待上传文件,形成第一批次数据块组;将所述第一批次数据块序号和所述第一批次数据块上传到服务器。
8.在一些实施例中,所述待上传能够分成k个批次数据块组,每个批次数据块组对应一个批次数据块参数,所述方法还包括:获取第n+1批次数据块参数,其中,所述第n+1批次数据块参数是所述服务器基于第n批次数据块序号确定的;根据所述第n+1批次数据块参数对所述待上传文件进行数据分块形成第n+1批次数据块组,并将所述第n+1批次数据块和所述第n+1批次数据块参数中的第n+1批次数据块序号上传至所述服务器,以使所述服务器存储所述待上传文件;所述n为小于或等于k的正整数。
9.在一些实施例中,所述方法还包括:向所述服务器发送待下载文件的下载请求;从
服务器获取所述待下载文件的文件描述信息;根据所述文件描述信息从服务器下载所述待下载文件。
10.在一些实施例中,所述文件描述信息包括数据块序号和文件md5值,所述根据所述文件描述信息从服务器下载所述待下载文件,包括:发送所述数据块序号和文件md5值至所述服务器,以使所述服务器返回所述文件md5值和所述数据块序号对应的数据块,以下载所述待下载文件。
11.第二方面,本技术提供了一种文件的处理方法,应用于服务器,包括:获取客户端发送待上传文件的文件信息;根据所述文件信息确定数据块参数;根据所述数据块参数确定第一批次数据块参数,并将所述数据块参数中第一批次数据块参数发送至所述客户端,以使所述客户端基于所述第一批次数据块参数对所述待上传文件进行数据分块形成第一批次数据块组;接收所述客户端上传的第一批次数据块组,以存储所述待上传文件。
12.在一些实施例中,接收所述客户端上传的第一批次数据块组,以存储所述待上传文件,包括:将所述第一批次数据块组进行多副本复制并存储到不同的存储节点中;所述方法还包括:基于所述存储节点的存储节点id和数据块序号写入文件描述信息。
13.在一些实施例中,所述方法还包括:获取客户端发送的待下载文件的下载请求;基于所述下载请求,确定所述待下载文件的文件描述信息;发送所述文件描述信息至所述客户端,以使所述客户端基于所述文件描述信息下载所述待下载文件。
14.在一些实施例中,所述文件描述信息包括:数据块序号、文件md5值和存储节点id,所述方法还包括:接收所述客户端发送的数据块序号和文件md5值;根据所述数据块序号和所述文件md5值在所述文件描述信息中查找存储节点id;根据存储节点id找到存储节点,并获取存储在存储节点中的与所述数据块序号和所述文件md5值对应的数据块;将所述数据块发送至所述客户端。
15.在一些实施例中,所述文件信息包括:文件md5值和文件大小,所述根据所述文件信息确定数据块参数,包括:获取所述文件信息中的文件大小;根据所述文件大小确定数据块总数量、每个数据块的大小以及数据块的序号区间。
16.在一些实施例中,所述待上传能够分成k个批次进行上传,每个上传批次对应一个批次数据块参数,所述方法还包括:根据客户端上传的第n批次数据块参数和所述数据块参数确定第n+1批次数据块参数;所述n为小于或等于k的正整数。
17.第三方面提供了一种文件的处理装置,应用于客户端,包括:文件信息发送模块,用于向服务器发送待上传文件的文件信息;信息接收模块,用于获取所述服务器根据所述文件信息返回的第一批次数据块参数;数据块分块模块,用于根据服务器返回的所述第一批次数据块参数对文件进行数据分块形成第一批次数据块组;数据块上传模块,用于将所述第一批次数据块组上传服务器。
18.第四方面提供了一种文件的处理装置,应用于服务器,包括:文件信息接收模块,用于获取客户端发送待上传文件的文件信息;第一确定模块,用于根据所述文件信息确定数据块参数;第二确定模块,用于根据所述数据块参数确定第一批次数据块参数;发送模块,用于将所述数据块参数中第一批次数据块参数发送至所述客户端;数据块接收模块,用于接收所述客户端上传的第一批次数据块组以及与所述第一批次数据块组对应的第一批次数据块参数,以存储所述待上传文件。
19.第五方面提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面以及第二方面中任一项所述一种文件的处理方法的步骤。
20.第六方面提供了一种电子设备,包括存储器和处理器,所述储存器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面以及第二方面中任一项所述一种文件的处理方法的步骤。
21.本发明创造的有益效果:本技术改变了以往基于http协议上传文件时采用整体上传的方式。改为文件进行分块上传,可以提高上传速度。同时在发生中断时,可以接在已经完成传输的数据块继续上传,不需要全部重新上传,节省了大量的时间。而且将数据进行分块上传保证了每一次数据上传请求的处理仅需花费较小的时间,有利于服务器安全,可以防止大文件的攻击,起到延迟攻击的作用的。
附图说明
22.通过结合附图阅读下文示例性实施例的详细描述可更好地理解本公开的范围。其中所包括的附图是:
23.图1为本技术实施例提供的一种应用于客户端的文件上传方法流程图;
24.图2为本技术实施例提供的一种应用于客户端的文件下载方法流程图;
25.图3为本技术实施例提供的一种应用于服务器的文件上传方法流程图;
26.图4为本技术实施例提供的一种应用于服务器的文件下载方法流程图;
27.图5为本技术实施例提供的一种应用于客户端的文件处理装置的结构框图;
28.图6为本技术实施例提供的一种应用于服务器的文件处理装置的结构框图;
29.图7为本技术实施例提供的一种服务器的结构框体。
具体实施方式
30.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
31.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
32.如果申请文件中出现“第一\第二\第三”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
33.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
34.实施例1:
35.针对背景技术中存在的问题,如图1所示,在第一方面本技术提供了一种文件的处理方法,所述方法应用于电子设备,所述电子设备可以服务器、移动终端、计算机、云平台
等。本技术实施例提供的设备数据处理所实现的功能可以通过电子设备的处理器调用程序代码来实现,其中,程序代码可以保存在计算机存储介质中,所述文件的处理方法包括:
36.步骤s010:向服务器发送待上传文件的文件信息。
37.客户端获取待上传文件的文件信息。该文件信息包括待上传文件的md5值和待上传文件的大小。其中客户端与服务器之间基于http协议进行通信的。
38.步骤s020:获取所述服务器根据所述文件信息返回的第一批次数据块参数。
39.服务器在接收到客户端上传的待上传文件的文件信息,根据待上传文件的文件信息调用服务器的预处理接口100。预处理接口100根据文件大小确定数据块参数。该数据块参数为数据块总数量、每个数据块的大小、数据块的序号区间以及文件的md5值。
40.服务器获取已经上传的数据块序号,根据已经上传的数据块序号确定第一批次数据块参数,并将确定的第一批次数据块参数发送给客户端。所述当第一批次数据块参数包括有第一批次数据块个数、每个数据块大小和第一批次数据块序号。
41.步骤s030:根据第一批次数据块参数对所述待上传文件进行数据分块形成第一批次数据块组。
42.客户端获得了服务器返回的第一批次数据块参数后,根据第一批次数据块参数中的第一批次数据块个数、第一批次数据块序号和每个数据块的大小对待上传文件进行数据分块,进行数据块。
43.在一些实施例中,在步骤s030“根据第一批次数据块参数对所述待上传文件进行数据分块形成第一批次数据块组”中,包括:
44.步骤s031:根据所述第一批次数据块序号和第一批次数据块个数计算所述第一批次数据块组中每个数据块对应的开始字节位置。
45.由于得知了第一批次数据块的序号和第一批次数据块的个数,所以可以通过第一批次数据块序号确定是第几个数据块,所以可以轻易确定了数据块的开始字节位置。
46.步骤s032:基于所述开始字节位置和所述每个数据块大小截取所述待上传文件,形成第一批次数据块组。
47.从数据块的开始字节位置在待上传文件上进行数据块截取。所截取数据块的大小符合第一批次中每个数据块的大小。
48.步骤s040:并将所述第一批次数据块组上传至所述服务器,以使所述服务器存储所述待上传文件。
49.由于服务器需要得知那些数据块序号对应的数据块已经上传,所以在上传时,需要将对应的数据块参数中的对应的数据块序号一起上传。
50.由于文件需要分为多个数据块进行多次上传,所以在上传的时候,需要进行循环的操作。所以在一些实施例中,步骤s040后,所述待上传能够分成k个批次数据块组,每个批次数据块组对应一个批次数据块参数,所述方法还包括:
51.s050:获取第n+1批次数据块参数,其中,所述第n+1批次数据块参数是所述服务器基于第n批次数据块序号确定的。
52.服务器在获取到第n批次数据块和第n批次数据块序号后,根据第n批次数据块序号确定第n+1批次数据块序号,并将第n+1批次数据块序号发送给客户端。
53.s060:根据所述第n+1批次数据块参数对所述待上传文件进行数据分块形成第n+1
批次数据块组。
54.客户端在接收到服务器发送的第n+1批次数据块参数后,根据第n+1批次数据块参数中的第n+1批次数据块序号、第n+1批次数据块个数和每个数据块的大小对待上传文件进行文件数据分块,形成第n+1批次数据块组。
55.s070:将所述第n+1批次数据块和所述第n+1批次数据块参数中的第n+1批次数据块序号上传至所述服务器,以使所述服务器存储所述待上传文件。所述n为小于或等于k的正整数。
56.服务器接收到客户端上传的第n+1批次数据块参数,根据第n+1批次数据块参数中的第n+1批次数据块序号确定用于下一次上传数据块的第n+2批次数据块参数,直到待上传文件的全部数据块上传完成。n为小于或等于k的正整数。
57.在一些实施例中,在步骤040“并将所述第一批次数据块组上传至所述服务器,以使所述服务器存储所述待上传文件”中,包括:
58.步骤s034:将所述第一批次数据块序号和所述第一批次数据块组上传到服务器。
59.服务器接收到客户端上传的第一批次数据块组后,对第一批次数据块组进行存储。
60.上述的文件处理方法,在上传文件时,改变了以往对文件进行整体上传的形式。而采用了对文件进行分块上传的形式。由于上传的是数据块,且每个数据块都存在有对应的序号,在上传的同时会将数据块和对应的数据块序号上传,所以服务器可以清楚明确的得知那些数据块已经上传,那些数据块没有上传,所以在发生断点续传时,就可以接着上一次上传的数据块序号进行上传。由于每一个的批次的数据块参数都是通过客户端上传的上一批次数据块序号确定的。所以每一次数据块上传都等于是一次断点续传。进而解决了常规上传方式的中,当出现中断时,需要重新对整个文件进行上传的问题。
61.由于本技术的每一次数据块上传都等于是一次断点续传,所以在通过本技术的文件处理办法进行上传文件时,不需要占用大块的时间对文件进行上传,可以实现大文件的上传时间碎片化。
62.由于本技术采用的上传方式为分块上传,所以处理每一次上传请求所花费的时间都较小。也正是如此,当服务器遭遇大文件攻击时,该文件处理方法,可以有效的延长大文件攻击的生效时间,在一定程度上起到防大文件攻击的作用。
63.在一些实施例中,本技术的文件处理方法,除了包括有文件上传时的文件处理方法,如图2所示,还包括有文件下载时的文件处理方法。所述方法还包括:
64.步骤s110:向所述服务器发送待下载文件的下载请求。
65.在客户端需要下载文件时,客户端向服务器发送待下载文件的下载请求。
66.步骤s120:从服务器获取所述待下载文件的文件描述信息。
67.服务器接收到客户端发送的待下载文件的下载请求后。调用服务器的文件描述信息接口300,所述文件描述信息接口300获取下载请求中的待下载文件md5值。根据md5值在文件描述信息中查询符合待下载文件md5值的文件描述信息。并将查询到的文件描述信息发送给客户端。
68.步骤s130:根据所述文件描述信息从服务器下载所述待下载文件。
69.由于所述文件描述信息包括数据块序号、文件md5值和存储节点id。
70.在一些实施例中,在步骤s130“所述根据所述文件描述信息从服务器下载所述待下载文件”中,包括:
71.步骤s131:发送所述数据块序号和文件md5值至所述服务器,以使所述服务器返回所述文件md5值和所述数据块序号对应的数据块,以下载所述待下载文件。
72.客户端将文件描述信息中文件md5值和数据块序号发送给服务器。服务器调用下载接口400。下载接口400根据文件md5值和数据块序号在文件描述信息中查找对应的存储节点id,并通过存储节点id找到对应的数据块,将数据块从存储节点中提出来,并发送给客户端,使得客户端完成下载。
73.关于本技术的文件处理方法,本技术分别从客户端角度和服务器角度对其进行保护。前述内容为从客户端的角度对本技术方法进行的说明,下面从服务器角度对本技术的文件处理方法进行说明。
74.第二方面,本技术从服务器的角度对一种文件处理方法进行了说明。如图3所示,一种文件的处理方法,应用于服务器,包括:
75.步骤s210:获取客户端发送待上传文件的文件信息。
76.客户端将待上传文件的md5值和待上传文件的文件大小发送给服务器。其中客户端与服务器之间基于http协议进行通信的。
77.步骤s220:根据所述文件信息确定数据块参数。
78.在一些实施例中,所述文件信息包括:文件md5值和文件大小。
79.所以在步骤s220“所述所述根据所述文件信息确定数据块参数”中,包括:
80.步骤s221:获取所述文件信息中的文件大小。
81.步骤s222:根据所述文件大小确定数据块总数量、每个数据块的大小以及数据块的序号区间。
82.服务器在所述根据所述文件信息确定数据块参数时,需要调用预处理接口100,预处理接口100根据文件大小来确定上传该待上传文件的数据块参数。
83.步骤s230:根据所述数据块参数确定第一批次数据块参数。
84.数据块参数为上传该待上传文件所需的数据块参数。但是有由于本技术是对数据块分块分批上传的。所以还需要确定每一批上传时的数据块参数,即第一批次数据块块参数。
85.步骤s240:并将所述第一批次数据块参数发送至所述客户端,以使所述客户端基于第一批次数据块参数对所述待上传文件进行数据分块形成第一批次数据块组。
86.通过客户端上传的数据块序号所确定的第一批次数据块参数会发送至客户端作。使得客户端可以根据第一批次数据块参数对文件进行数据分块并上传。
87.步骤s250:接收所述客户端上传的第一批次数据块组,以存储所述待上传文件。
88.服务器在接收到客户端上传的第一批次数据块组后,需要对数据块进行存储。
89.在一些实施例中,在步骤s50“接收所述客户端上传的第一批次数据块组,以存储所述待上传文件”中,包括:
90.步骤s251:将所述第一批次数据块组进行多副本复制并存储到不同的存储节点中。
91.现有的服务器面对文件存储时,一般都是直接进行分布式存储,即将文件存储到
不同的存储节点中。但是这种方式当面临服务器存储节点瘫痪时,会导致用户数据丢失,所以需要对文件进行备份,但是备份这些文件都是有工作人员手动进行或者是当文件存储完成后再进行部分工作,浪费了很多的资源。
92.而本技术,在数据库存储阶段直接进行复制备份,且把不同的备份分别存储到不同的数据节点中,尽最大的能力对用户的数据进行保全。同时,在存储时直接对数据块进行多副本复制可以节省很多的资源,节省了成本。
93.在一些实施例中,在步骤s250后,所述方法还包括:
94.步骤s260:基于所述存储节点的存储节点id和数据块序号写入文件描述信息。
95.为了文件的下载,所以在对文件存储完成后,需要将文件中各个数据块的序号、所述存储的存储节点id以及文件的md5值写入到文件描述信息中,以方便下载文件时,可以快速的完成下载。
96.在一些实施例中,在步骤s230之后,所述待上传能够分成k个批次进行上传,每个上传批次对应一个批次数据块参数,所述方法还包括:
97.步骤s270:根据客户端上传的第n批次数据块参数和所述数据块参数确定第n+1批次数据块参数。根据客户端上传的第n批次数据块参数和所述数据块参数确定第n+1批次数据块参数。
98.客户端在上传数据块时,会将数据块序号与数据块一起上传。服务器接收到数据块和数据块序号后,便可以得知哪些数据块序号对应的数据块已经上传。所以在确定第n+1批次数据块参数时,会根据客户端上传的第n批次数据块序号来确定。
99.在进行下载文件时,从服务器角度的说明如下:
100.如图4所示,在一些实施例中所述方法还包括:
101.步骤s310:获取客户端发送的待下载文件的下载请求。
102.客户端向服务器发送待下载文件的下载请求,该下载请求中包括有待下载文件的md5值。
103.步骤s320:基于所述下载请求,确定所述待下载文件的文件描述信息。
104.服务器调用文件描述信息接口300,文件描述信息接口300根据待下载文件的md5值在文件描述信息中查找相对应的文件描述信息。
105.步骤s330:发送所述文件描述信息至所述客户端,以使所述客户端基于所述文件描述信息下载所述待下载文件。
106.将查询到的文件描述信息发送给客户端。所述文件描述信息包括:数据块序号、文件md5值和存储节点id。
107.在一些实施例中,在步骤s330后,所述方法还包括:
108.步骤s340:接收所述客户端发送的数据块序号和文件md5值。
109.客户端接收服务器发送到文件描述信息,并将文件描述信息中的md5值和数据块序号发送给服务器。
110.步骤s350:根据所述数据块序号和所述文件md5值在所述文件描述信息中查找存储节点id。
111.服务器根据接收到的md5值和数据块序号,在文件描述信息中查找对应数据块的存储节点id。
112.步骤s360:根据存储节点id找到存储节点,并获取存储在存储节点中的与所述数据块序号和所述文件md5值对应的数据块。
113.步骤s370:将所述数据块发送至所述客户端。
114.客户端接收到服务器发送的数据块,将接收到数据块存储到本地磁盘,以免发生内存溢出的问题,并在本地磁盘中完成数据块合并。当最后一个数据块下载完成后,客户端和服务器都将该下载任务标记为下载完毕。
115.常见的下载模式下,当出现下载中断时,不得不对待下载文件进行重新下载,浪费了大量的时间。得利于本技术的存储方式,所以在下载时,也可以在下载发生断点时,继续下载,而不需要进行全部重新下载。由于其按照数据块下载,在一定程度上就可以等于是断点下载,所以在下载过程中不需要占用大块的时间进行集中下载,同样也可以实现下载时间碎片化。
116.实施例2:
117.基于前述的实施例,本技术实施例提供一种文件的处理装置,该装置包括的各模块、以及各模块包括的各单元,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(cpu,central processing unit)、微处理器(mpu,microprocessor unit)、数字信号处理器(dsp,digital signal processing)或现场可编程门阵列(fpga,field programmable gate array)等。
118.如图5所示,第三方面本技术基于客户端的角度,提供了一种文件的处理装置,应用于客户端,包括:文件信息发送模块101、信息接收模块102、数据块分块模块103和数据块上传模块104。
119.文件信息发送模块101用于向服务器发送待上传文件的文件信息。信息接收模块102用于获取所述服务器根据所述文件信息返回的第一批次数据块参数。数据块分块模块103用于根据服务器返回的所述第一批次数据块参数对文件进行数据分块形成第一批次数据块组。数据块上传模块104用于将所述第一批次数据块组上传服务器。
120.在一些实施例中,数据块分块模块103包括:开始位置计算模块和截取模块。开始位置计算模块用于根据所述第一批次数据块序号和第一批次数据块个数计算每个数据块对应的开始字节位置。截取模块用于基于所述开始字节位置和所述每个数据块大小截取所述待上传文件,形成第一数据块组。
121.在一些实施例中,信息接口模块102还可以用于获取所述服务器根据所述文件信息返回的第n+1批次数据块参数。数据块分块模块103还可以用于根据服务器返回的所述第n+1批次数据块参数对文件进行数据分块形成第n+1批次数据块组。数据块上传模块104还可以用于将所述第n+1批次数据块组上传服务器。
122.在一些实施例中,应用于客户端的文件处理装置,还包括:下载请求发送模块、文件描述信息获取模块和下载模块。
123.下载请求发送模块用于向所述服务器发送待下载文件的下载请求。文件描述信息获取模块用于从服务器获取所述待下载文件的文件描述信息。下载模块用于根据所述文件描述信息从服务器下载所述待下载文件。
124.如图6所示,第四方面本技术还基于服务器的角度,提供了一种文件的处理装置,应用于服务器,包括:文件信息接收模块201、第一确定模块202、第二确定模块203、数据块
接收模块204和参数发送模块205。
125.文件信息接收模块201用于获取客户端发送待上传文件的文件信息。第一确定模块202用于根据所述文件信息确定数据块参数。第二确定模块203用于根据所述数据块参数确定第一批次数据块参数。参数发送模块205用于将所述第一批次数据块参数发送至所述客户端。数据块接收模块204用于接收所述客户端上传的第一批次数据块组,以存储所述待上传文件。
126.在一些实施例中,数据块接收模块204包括有:存储模块和写入模块。
127.存储模块用于将所述第一批次数据块组进行多副本复制并存储到不同的存储节点中。写入模块用于基于所述存储节点的存储节点id和数据块序号写入文件描述信。
128.在一些实施例中,第二确定模块203还可以用于根据所述数据块参数和客户端上传的第n批次数据块参数确定第n+1批次数据块参数。参数发送模块205还可以用于将所述第n+1批次数据块参数发送到客户端。数据块接收模块204还可以用于接收所述客户端上传的第n+1批次数据块组和第n+1批次数据块参数,以存储所述待上传文件。存储模块还可以用于将所述第n+1批次数据块组进行多副本复制并存储到不同的存储节点。
129.在一些实施例中,应用户服务器的处理装置,还包括:下载请求获取模块、第三确定模块、文件描述信息发送模块和下载接口400。
130.下载请求获取模块用于获取客户端发送的待下载文件的下载请求。文件描述第三确定模块用于基于所述下载请求,确定所述待下载文件的文件描述信息。文件描述信息发送模块用于发送所述文件描述信息至所述客户端,以使所述客户端基于所述文件描述信息下载所述待下载文件。
131.下载接口400用于接收所述客户端发送的数据块序号和文件md5值,根据存储节点id找到存储节点,并获取存储在存储节点中的与所述数据块序号和所述文件md5值对应的数据块,将所述数据块发送至所述客户端。
132.本技术的文件处理装置,可以实现对文件的分块上传和下载。与现有的上传和下载方式相比。可以避免发生断点后全部重新上传或下载。且在上传或下载时不需要占用大块时间进行,可以实现上传或下载的时间碎片化。
133.且在上传时,由于分块上传,可以在延迟大文件攻击的生效时间,在一定程度上起到防大文件攻击的效果。
134.实施例3:
135.第五方面提供了一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现第一方面或第二方面中任一项所述一种文件的处理方法的步骤。
136.实施例4:
137.第六方面,本技术提供了一种电子设备,包括存储器和处理器,所述储存器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现第一方面或第二方面中任一项所述一种文件的处理方法的步骤。
138.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
139.实施例5:
140.当然,本技术还公开了第五方面。该第五方面提供了一种文件处理的服务器,如图7所示,包括:预处理接口100、存储接口200、文件描述信息接口300和下载接口400。
141.预处理接口100为基于http1.1协议使用springboot框架开发的服务器端网络接口。预处理接口100用于获取客户端发送待上传文件的文件信息,根据所述文件信息确定数据块参数,根据所述数据块参数确定第一批次数据块参数或第二批次数据块参数,并将所述第一批次数据块参数或第二批次数据块参数发送至所述客户端。
142.预处理接口100的输入参数为文件名、文件md5值和文件字节数。预处理接口100的输出参数为文件md5值、每个数据块大小、数据块个数和数据块序号区间。
143.存储接口200用于将客户端发送的数据块组进行多副本复制并存储到不同的存储节点中,基于所述存储节点的存储节点id和数据块序号写入文件描述信息。存储接口在对数据块组进行存储多副本复制时,至少复制两份,并和原数据块组一起分别存储到三个不同的存储节点。
144.文件描述信息接口300用于获取客户端发送的待下载文件的下载请求,基于所述下载请求,确定所述待下载文件的文件描述信息,发送所述文件描述信息至所述客户端。
145.下载接口400用于接收所述客户端发送的数据块序号和文件md5值,根据所述数据块序号和所述文件md5值在所述文件描述信息中查找存储节点id,根据存储节点id找到存储节点,并获取存储在存储节点中的与所述数据块序号和所述文件md5值对应的数据块,将所述数据块发送至所述客户端。
146.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
147.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
148.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或
可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
149.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
150.另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
151.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read only memory)、磁碟或者光盘等各种可以存储程序代码的介质。
152.或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台控制器执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
153.以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。