CN114172998A - 一种文件传输方法、装置、电子设备、介质及产品 - Google Patents

一种文件传输方法、装置、电子设备、介质及产品 Download PDF

Info

Publication number
CN114172998A
CN114172998A CN202111512127.8A CN202111512127A CN114172998A CN 114172998 A CN114172998 A CN 114172998A CN 202111512127 A CN202111512127 A CN 202111512127A CN 114172998 A CN114172998 A CN 114172998A
Authority
CN
China
Prior art keywords
files
transmitted
group
file
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111512127.8A
Other languages
English (en)
Other versions
CN114172998B (zh
Inventor
姜宝琦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Duyou Information Technology Co ltd
Original Assignee
Beijing Duyou Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Duyou Information Technology Co ltd filed Critical Beijing Duyou Information Technology Co ltd
Priority to CN202111512127.8A priority Critical patent/CN114172998B/zh
Publication of CN114172998A publication Critical patent/CN114172998A/zh
Application granted granted Critical
Publication of CN114172998B publication Critical patent/CN114172998B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/7243User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
    • H04M1/72439User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for image or video messaging

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种文件传输方法、装置、电子设备、介质及产品,涉及计算机技术领域,尤其涉及数据通讯技术领域。具体实现方案为:确定各待传输文件,然后从各待传输文件中筛选预设数量的待传输文件,并与服务器之间传输每个待传输文件。对于其余的待传输文件,确定多个待传输文件为一组,每组待传输文件的数据总量不超过预设数据量。再与服务器之间传输每组待传输文件。从而减少了文件批量传输的耗时。

Description

一种文件传输方法、装置、电子设备、介质及产品
技术领域
本公开涉及计算机技术领域,尤其涉及数据通讯技术领域。
背景技术
终端和服务器之间经常需要文件的批量传输。例如,用户需要对手机中的图片进行备份时,选择多张需要备份的图片,并通过手机向服务器批量上传所有需要备份的图片。或者,用户需要从服务器中获取之前备份的图片时,选择多张需要获取的图片,然后从服务器中批量下载所有需要获取的图片。
发明内容
本公开提供了一种文件传输方法、装置、电子设备、介质及产品。
本公开实施例的第一方面,提供了一种文件传输方法,应用于终端,包括:
确定各待传输文件;
从所述各待传输文件中筛选预设数量的待传输文件,并与服务器之间传输每个待传输文件;
对于其余的待传输文件,确定多个待传输文件为一组,每组待传输文件的数据总量不超过预设数据量;
与所述服务器之间传输每组待传输文件。
本公开实施例的第二方面,提供了一种文件传输装置,应用于终端,包括:
确定模块,用于确定各待传输文件;
传输模块,用于从所述各待传输文件中筛选预设数量的待传输文件,并与服务器之间传输每个待传输文件;
分组模块,用于对于其余的待传输文件,确定多个待传输文件为一组,每组待传输文件的数据总量不超过预设数据量;
所述传输模块,还用于与所述服务器之间传输每组待传输文件。
本公开实施例的第三方面,一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一项所述的文件传输方法。
本公开实施例的第四方面,一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据上述任一项所述的文件传输方法。
本公开实施例的第五方面,一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据上述任一项所述的文件传输方法。
本公开实施例提供的文件传输方法、装置、电子设备、介质及产品,终端可以对预设数量的待传输文件,分别与服务器之间传输;对于其他待传输文件,将多个待传输文件分为一组,并与服务器之间传输每组待传输文件。由于本公开实施例可以将多个待传输文件划分为一组,单次传输一组待传输文件,与单次传输一个文件的方式相比,提高了单次传输数据量,因此减少了批量传输文件的耗时。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例提供的一种文件传输方法的流程图;
图2是本公开实施例提供的一种文件分组方法的流程图;
图3是本公开实施例提供的一种文件分组下载方法的流程图;
图4是本公开实施例提供的一种文件块结构的示例性示意图;
图5是本公开实施例提供的另一种文件分组下载方法的流程图;
图6是本公开实施例提供的一种文件分组上传方法的流程图;
图7是本公开实施例提供的一种文件下载方法的信令图;
图8是本公开实施例提供的一种文件上传方法的信令图;
图9是本公开实施例提供的一种文件传输装置的结构示意图;
图10是用来实现本公开实施例的文件传输方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在文件批量传输时,影响批量传输时间的因素有以下三个:
1.网络带宽。其中,网络带宽越小,批量传输时间越长。
2.控制流时长。其中,控制流时长越长,批量传输时间越长。控制流包括终端从服务器下载文件之前,或者终端向服务器上传文件之前,向服务器发送的用于鉴权的请求。
3.单次传输数据量。其中,单次传输数据量越小,批量传输时间越长。
在批量传输大文件时,每次传输一个大文件,单次传输的数据量大,且控制流时长占比较低,因此批量传输时间主要取决于网络带宽的大小。
在批量传输小文件时,每次传输一个小文件,单次传输的数据量小,且控制流时长占比较高,因此网络带宽对于批量传输时间的影响较小,批量传输时间主要取决于控制流时长和单次传输数据量。
在实际应用中,用户通过手机客户端从网盘中批量下载小文件的情况居多,小文件批量下载时间过长容易影响用户体验,因此减少小文件批量传输耗时十分重要。
相关技术中,采用以下两种方式减少批量传输小文件的耗时:
方式一,终端将鉴权请求和数据请求合并为一个请求,服务器接收到该请求后,对终端进行鉴权,并在鉴权通过时,直接向终端发送请求的小文件,以减少终端和服务器之间的交互次数。但是该方式每次传输一个小文件,使得单次传输数据量较小。
方式二,终端通过高并发的方式,同时向服务器请求多个小文件,该方式可以减少批量传输的时间,但是终端同时处理的任务过多,导致资源消耗过多,影响运行稳定性,可能造成终端发热和卡顿的问题。
为了减少小文件批量传输的耗时,本公开实施例提供了一种文件传输方法,该方法应用于终端,其中终端可以是手机、笔记本电脑或者计算机等具备文件传输能力的设备。如图1所示,该方法包括如下步骤:
S101、确定各待传输文件。
在本公开实施例中,待传输文件可以是待上传文件或者待下载文件。
待传输文件可以是用户选择的文件。例如,终端在检测到用户选择终端本地存储的多个文件时,确定这些文件为待上传文件。或者,终端在检测到用户通过终端中的云端展示界面选择服务器中存储的多个文件时,确定这些文件为待下载文件。
S102、从各待传输文件中筛选预设数量的待传输文件,并与服务器之间传输每个待传输文件。
在筛选预设数量的待传输文件时,可以随机选择,或者可以按照待传输文件的排列顺序筛选。可选的,待传输文件的排列顺序可以是用户选择每个待传输文件的顺序,或者,待传输文件的排列顺序可以是待传输文件在列表中的排列顺序。例如,当检测到用户对列表中的文件选择全选时,可以将文件在列表中的顺序作为待传输文件的排列顺序。
一种实现方式中,终端可以按照各待传输文件的排列顺序,选择排列在前的预设数量个待传输文件,并与服务器之间传输每个待传输文件。在传输时,可以按照各待传输文件的排列顺序依次传输;或者,还可以按照预设的并发量,例如并发量为2,同时传输2个待传输文件。
其中,预设数量可以根据实际需要设置,例如预设数量为100。
S103、对于其余的待传输文件,确定多个待传输文件为一组。
其中,每组待传输文件的数据总量不超过预设数据量。预设数据量可以根据实际需要设置,例如,预设数据量可以为400兆字节(Megabytes,MB)。
一种实现方式中,对于除S102筛选的待传输文件以外的待传输文件,终端可以根据这些待传输文件的大小,对这些待传输文件进行分组。
具体的,在待传输文件为待上传文件时,由于待上传文件存储在终端本地,因此终端能够从本地获得待传输文件的大小,并进行分组。
在待传输文件为待下载文件时,各待传输文件的大小可以从服务器中获取。例如,用户在选择待下载文件之前,终端从服务器获取各文件的文件名和大小等文件信息,并基于此显示云端展示界面,使得用户在云端展示界面中选择待下载文件。因此后续执行S103时,终端可以对于除S102筛选的待传输文件以外待传输文件,基于这些待下载文件的大小,对这些待传输文件进行分组。
可以理解的,S102从所有的待传输文件中筛选出一部分待传输文件,对这部分待传输文件进行分别传输,即与服务器之间单次传输一个待传输文件;S103对其余的待传输文件进行分组传输,即与服务器之间单次传输一组待传输文件。可选的,在S102传输筛选出的每个待传输文件的同时,可以执行S103对其余的待传输文件进行分组。
S104、与服务器之间传输每组待传输文件。
可以理解的,将多个待传输文件划分为一组,与服务器之间单次传输一组待传输文件,可以提高单次传输数据量。同时限制每组待传输文件的数据总量,可以限制单次传输数据量不会过高,减少网络带宽对于单次传输时间的影响。
本公开实施例提供的文件传输方法,终端可以对预设数量的待传输文件,分别与服务器之间传输;对于其他待传输文件,将多个待传输文件分为一组,并与服务器之间传输每组待传输文件。由于本公开实施例可以将多个待传输文件划分为一组,单次传输一组待传输文件,与单次传输一个文件的方式相比,提高了单次传输数据量,因此减少了批量传输文件的耗时。
在本公开的一个实施例中,参见图2,上述S103中终端对其余的待传输文件进行分组的方式包括以下步骤:
S201、对于其余的待传输文件,按照各待传输文件的排列顺序,选择一个待传输文件。
S202、判断将当前选择的待传输文件加入当前分组时,当前分组包括的待传输文件的数据总量是否超过预设数据量。若是,则执行S203;若否,则执行S204。
预设数据量可以根据实际需要设置,例如预设数据量为400MB。
在第一次执行S202时,生成第一个分组,并将该分组作为当前分组。
S203、确定当前分组设置完成,生成下一个分组,将当前选择的待传输文件加入下一个分组,并将下一个分组作为当前分组,返回S201。
一种实现方式中,如果将当前选择的待传输文件加入当前分组,会导致当前分组包括的待传输文件的数据总量超过预设数据量,则确定当前分组设置完毕;并生成下一个分组,将当前选择的待传输文件加入下一个分组,并将该下一个分组作为当前分组,返回S201,以确定当前分组包括的待传输文件。
S204,将当前选择的待传输文件加入当前分组,并返回S201。
结合S201-S204举例,假设其余的待传输文件包括:文件1(大小为100MB)、文件2(大小为300MB)和文件3(大小为200MB)。
按照文件的排列顺序,第一次执行S201时,选择文件1。将文件1加入group1时,group1中文件的数据总量为100MB,未超过400MB,因此将文件1加入group1。然后按照文件排列顺序选择文件2,将文件2加入group1时,group1中文件的数据总量为400MB,未超过400MB,因此将文件2加入group1。然后按照文件排列顺序选择文件3,将文件3加入group1时,group1中文件的数据总量为600MB,超过400MB,因此生成group2,并将文件2加入group2。
采用上述方法,本公开实施例可以对其余的待传输文件进行分组,并使得每组待传输文件的数据总量尽可能接近预设数据量,从而尽量提高单次传输数据量,提高带宽利用率,减少批量传输小文件的耗时,提高批量传输小文件的效率。同时限制每组待传输文件的数据总量不超过预设数据量,可以避免每组待传输文件的数据总量过大,减少网络带宽对于单次传输文件时间的影响。
此外,如果采用文件的数量对文件进行分组,由于每个文件的大小不是固定的,如果文件过大,将一定数量的文件分为一组,可能导致一组文件的数据量过大,单次传输一组文件时,网络带宽对单次传输文件时间的影响较大。如果文件过小,将一定数量的文件分为一组,可能导致一组文件的数据量过小,单次传输一组文件时,单次传输数据量增加效果不明显,不能显著提高批量传输小文件的效率。
而本公开实施例基于文件的大小对文件进行分组,能够有效控制每组文件的数据总量,能够在减少网络带宽对于单次传输文件时间的影响的同时,显著提高批量传输小文件的效率。
在本公开的一个实施例中,在待传输文件包括待下载文件的情况下,参见图3,上述S104中终端与服务器之间传输每组待传输文件时,终端可以执行以下步骤:
S301、针对每组待下载文件,向服务器发送准备下载请求,以使得服务器响应于准备下载请求,基于该组待下载文件生成一个数据块。
一种实现方式中,在S102下载文件时,终端可以异步地针对第一组待下载文件,向服务器发送准备下载请求。其中,准备下载请求包括用户身份证明(User Identification,uid)和fsid,uid为终端的登录用户的id,fsid为一组文件的文件id。服务器接收到准备下载请求后,对uid进行验证。在验证通过时,服务器将fsid对应的各文件及其元数据组成一个数据块,并且异步地向终端返回准备下载响应,以告知终端可以从服务器中获取该组文件对应的数据块。
其中,每个数据块包括一组待下载文件以及待下载文件的元数据。
S302、从服务器中下载该组待下载文件对应的数据块,并从数据块中解析出该组待下载文件。
一种实现方式中,终端可以在执行S102时,针对第一组待下载文件,向服务器发送准备下载请求,并在S102下载完成后,从服务器下载第一组文件对应的数据块。同时在下载第一组文件对应的数据块时,针对第二组待下载文件,向服务器发送准备下载请求,并在第一组文件对应的数据块下载完毕时,从服务器下载第二组文件对应的数据块,以此类推,直至最后一组文件对应的数据块下载完毕,以提高下载效率。
或者,终端还可以按照预设的并发量,例如并发量为2,终端可以在执行S102时,针对第一组和第二组待下载文件,向服务器发送准备下载请求,并在S102下载完成后,从服务器下载第一组文件对应的数据块以及第二组文件对应的数据块。同时在下载第一组和第二组文件对应的数据块时,针对第三组和第四组待下载文件,向服务器发送准备下载请求,并在第一组和第二组文件对应的数据块下载完毕时,从服务器下载第三组文件对应的数据块以及第四组文件对应的数据块,以此类推,直至最后一组文件对应的数据块下载完毕。
在本公开实施例中,如图4所示,每个数据块包括:起始位置(offset)、文件数量(filect)、一组待传输文件(filedata1,filedata2,…,filedatan)以及每个待传输文件的长度(size1,size2,…sizen)和文件标识(fsid1,fsid2,…,fsidn)。其中,起始位置表示数据块中存放待传输文件的起始偏移。文件数量表示数据块中包括的文件数量。一个实施例中,offset为64位整数,filect为32位整数,每个size为32位整数,每个fsid和filedata的位数不固定,可以根据实际情况配置。可以将offset、filect、size和fsid称为元数据(meta),filedata称为文件(data)。
终端从数据块中解析该组待下载文件时,根据offset确定数据块中第一个文件的起始位置,并根据size1确定第一个文件的长度,将offset与offset+size1之间的数据作为filedata1,并确定filedata1的文件名为fsid1。依次类推,从数据块提取各文件,并将提取的文件保存在终端本地。
本公开实施例将一组文件与其元数据组成一个数据块,能够使得数据块的接收方根据元数据提取数据块中的文件,提高解析效率。
采用上述方法,本公开实施例中终端可以针对一组文件,向服务器发送一次准备下载请求,与针对每个文件向服务器发送一次准备下载请求的方式相比,本公开实施例减少了准备下载请求的数量,即减少了控制流,因此减少了终端与服务器之间的交互次数,进而减少了批量下载小文件的耗时,提高批量下载小文件的效率。
在本公开的一个实施例中,参见图5,上述S302中终端从服务器中下载该组待下载文件对应的数据块时,终端可以执行以下步骤:
S501、接收服务器响应于准备下载请求发送的准备下载响应。其中,准备下载响应中包括该组待下载文件的分组标识。
一种实现方式中,服务器将一组待下载文件及其元数据组成一个数据块的过程中,可以获取该组待下载文件的分组标识(group id,gid),并异步地向终端返回携带gid的准备下载响应。终端接收到准备下载响应后,从准备下载响应中提取gid。
S502、针对该组待下载文件,向服务器发送下载请求,以使得服务器响应于下载请求,向终端发送该分组标识对应的数据块。其中,下载请求包括该组待下载文件的分组标识。
一种实现方式中,服务器生成每个数据块时,将数据块与分组标识对应存储。终端可以在接收到服务器发送的准备下载响应时,向服务器发送携带gid的下载请求。以使得服务器查找下载请求中gid对应的数据块,并向终端返回查找的数据块。
在本公开实施例中,接收准备下载请求的服务器和接收下载请求的服务器可以为相同的服务器,或者为不同的服务器,本公开实施例对此不作具体限定。例如,准备下载响应中包括数据块的位置,终端可以向该位置对应的服务器发送下载请求。
S503、接收服务器发送的数据块。
可选的,如果终端在S502发送下载请求后,持续一段时间未接收到服务器发送的数据块,说明服务器可能正在生成该数据块,即没有生成完毕。此时终端可以再次向服务器发送下载请求,直至接收到服务器发送的数据块。
采用上述方法,本公开实施例中服务器可以对每个数据块添加分组标识,并向终端返回分组标识,使得终端在下载每组待下载文件时,可以根据分组标识,从服务器中下载分组标识对应的数据块,减少下载出错的情况。
在本公开的一个实施例中,在上述待传输文件包括待上传文件的情况下,参见图6,上述S104中终端与服务器之间传输每组待传输文件时,终端可以执行以下步骤:
S601、针对每组待上传文件,生成一个数据块。
其中,每个数据块包括一组待上传文件以及待上传文件的元数据。数据块结构如图4所示,可参考上述S302中的相关描述,此处不再赘述。
一种实现方式中,终端可以在S102上传文件的过程中,执行S601,生成各数据块。
S602、向服务器发送准备上传请求,以使得服务器响应于准备上传请求,向终端发送准备上传响应。
其中,准备上传响应包括该组待上传文件的分组标识。
一种实现方式中,终端可以在S102对筛选的待上传文件上传完毕后,针对第一组文件,向服务器发送准备上传请求。并在上传第一组文件时,向服务器发送下一组文件的准备上传请求,提高上传效率。服务器接收到准备上传请求后,为该组数据生成一个gid,并将gid携带在准备上传响应中发送给终端。
S603、向服务器发送上传请求,以使得服务器从上传请求中解析并存储该组待上传文件。其中,上传请求包括该组待上传文件对应的数据块和分组标识。
服务器从数据块中解析文件的方式,与终端中数据块中解析文件的方式相同,可参考上述S302中描述,此处不再赘述。
可选的,服务器还可以向终端发送上传响应,上传响应表示上传成功或者上传失败。在上传响应表示上传失败时,上传响应中可以包括上传失败的分组标识。以使得终端可以分组标识,向服务器重新上传上传失败的数据块。
采用上述方法,本公开实施例中终端可以针对一组文件,向服务器发送一次准备上传请求,与针对每个文件向服务器发送一次准备上传请求的方式相比,本公开实施例减少了准备上传请求的数量,即减少了控制流,因此减少了终端与服务器之间的交互次数,进而减少了批量上传小文件的耗时,提高批量上传小文件的效率。
以下结合实际应用场景,对本公开实施例提供的文件传输方法的整体流程进行说明:
在进行批量小文件下载时,如图7所示,文件传输过程包括以下步骤:
S701、终端确定用户选择的各待下载文件。
S702、终端按照各待下载文件的排列顺序,筛选前100个待下载文件,依次从服务器中下载这100个待下载文件。
S703、终端对于其余的待下载文件,确定多个待下载文件为一组。本实施例假设共分为2组。
S704、终端针对第一组待下载文件,向服务器发送准备下载请求1。
S705、服务器接收到该准备下载请求1后,基于该组待下载文件生成数据块1,并向终端发送携带gid1的准备下载响应1。
S706、终端从准备下载响应1中提取gid1,并在前100个待下载文件下载完毕时,针对第一组待下载文件,向服务器发送下载请求1。
S707、服务器接收下载请求1后,向终端发送数据块1。
S708、终端从数据块1中解析出各待下载文件,并将解析的待下载文件存储在终端本地。
S709、终端在接收数据块1时,针对第二组待下载文件,向服务器发送准备下载请求2。
S710、服务器接收到该准备下载请求2后,基于该组待下载文件生成数据块2,并向终端发送携带的gid2的准备下载响应2。
S711、终端从准备下载响应2中提取gid2,并在数据块1下载完毕时,针对第二组待下载文件,向服务器发送下载请求2。
S712、服务器接收下载请求2后,向终端发送数据块2。
S713、终端从数据块2中解析出各待下载文件,并将解析的待下载文件存储在终端本地。
由于服务器组装数据块需要一定的时长,如果将所有的待下载文件全部分组下载,则终端请求第一组待下载文件对应的数据块1时,服务器需要在数据块1生成完毕后,再向终端发送,导致终端的等待时间过长。
而在本公开实施例中,在下载前100个小文件的过程中,服务器同时组装数据块1,使得终端在等待服务器组装数据块1时,可以同步下载其他文件,提高了文件下载效率。
此外,本公开实施例对文件进行分组下载,由于分组数量显然少于文件总量,有利于控制文件下载的并发数量,减少并发数量过多对终端的性能损耗和资源消耗,保证终端运行的稳定性。
在进行批量小文件上传时,如图8所示,文件传输过程包括以下步骤:
S801、终端确定用户选择的各待上传文件。
S802、终端按照各待上传文件的排列顺序,提取前100个待上传文件,依次向服务器上传这100个待上传文件。
S803、终端对于其余的待上传文件,确定多个待上传文件为一组。本实施例假设共分为2组。
S804、终端针对第一组待上传文件,生成数据块1,并向服务器发送准备上传请求1。
S805、服务器接收到该准备上传请求1后,向终端发送携带gid1的准备上传响应1。
S806、终端从准备上传响应1中提取gid1,并在前100个待上传文件上传完毕时,针对第一组待上传文件,向服务器发送上传请求1。其中上传请求1携带数据块1。
S807、服务器接收上传请求1后,从数据块1中解析出各待上传文件,并将解析的待上传文件存储在服务器本地。
S808、服务器向终端发送上传响应1。其中上传响应1表示上传成功。
S809、终端在上传数据块1时,针对第二组待上传文件,生成数据块2,并向服务器发送准备上传请求2。
S810、服务器接收到该准备上传请求2后,向终端发送携带gid2的准备上传响应2。
S811、终端从准备上传响应2中提取gid2,并在数据块1上传完毕时,针对第二组待上传文件,向服务器发送上传请求2。其中上传请求2携带数据块2。
S812、服务器接收上传请求2后,从数据块2中解析出各待上传文件,并将解析的待上传文件存储在服务器本地。
S813、服务器向终端发送上传响应2。其中上传响应2表示上传成功。
由于终端组装数据块需要一定的时长,如果将所有的待上传文件全部分组上传,则终端上传第一组待上传文件对应的数据块1时,终端需要在数据块1生成完毕后,再向服务器发送,导致服务器的等待时间过长。
而在本公开实施例中,在上传前100个小文件的过程中,终端同时组装数据块1,使得服务器在等待终端组装数据块1时,可以同步接收其他文件,提高了文件上传效率。
此外,本公开实施例对文件进行分组上传,由于分组数量显然少于文件总量,有利于控制文件下载的并发数量,减少并发数量过多对终端的性能损耗和资源消耗,保证终端运行的稳定性。
基于相同的发明构思,对应于上述方法实施例,本公开实施例提供了一种文件传输装置,应用于终端,如图9所示,该装置包括:确定模块901、传输模块902和分组模块903;
确定模块901,用于确定各待传输文件;
传输模块902,用于从各待传输文件中筛选预设数量的待传输文件,并与服务器之间传输每个待传输文件;
分组模块903,用于对于其余的待传输文件,确定多个待传输文件为一组,每组待传输文件的数据总量不超过预设数据量;
传输模块902,还用于与服务器之间传输每组待传输文件。
本公开实施例提供的文件传输装置,终端可以对预设数量的待传输文件,分别与服务器之间传输;对于其他待传输文件,将多个待传输文件分为一组,并与服务器之间传输每组待传输文件。由于本公开实施例可以将多个待传输文件划分为一组,单次传输一组待传输文件,与单次传输一个文件的方式相比,提高了单次传输数据量,因此减少了批量传输文件的耗时。
在本公开的一个实施例中,其中,待传输文件包括待下载文件,传输模块902,具体用于:
针对每组待下载文件,向服务器发送准备下载请求,以使得服务器响应于准备下载请求,基于该组待下载文件生成一个数据块,每个数据块包括一组待下载文件以及待下载文件的元数据;
从服务器中下载该组待下载文件对应的数据块,并从数据块中解析出该组待下载文件。
在本公开的一个实施例中,其中,传输模块902,具体用于:
接收服务器响应于准备下载请求发送的准备下载响应,准备下载响应中包括该组待下载文件的分组标识;
针对该组待下载文件,向服务器发送下载请求,下载请求包括该组待下载文件的分组标识,以使得服务器响应于下载请求,向终端发送分组标识对应的数据块;
接收服务器发送的数据块。
在本公开的一个实施例中,其中,待传输文件包括待上传文件,传输模块902,具体用于:
针对每组待上传文件,生成一个数据块,每个数据块包括一组待上传文件以及待上传文件的元数据;
向服务器发送准备上传请求,以使得服务器响应于准备上传请求,向终端发送准备上传响应,准备上传响应包括该组待上传文件的分组标识;
向服务器发送上传请求,上传请求包括该组待上传文件对应的数据块和分组标识,以使得服务器从上传请求中解析并存储该组待上传文件。
在本公开的一个实施例中,其中,分组模块903,具体用于:
对于其余的待传输文件,按照各待传输文件的排列顺序,选择一个待传输文件;
判断将当前选择的待传输文件加入当前分组时,当前分组包括的待传输文件的数据总量是否超过预设数据量;
若是,则确定当前分组设置完成,生成下一个分组,将当前选择的待传输文件加入下一个分组,并将下一个分组作为当前分组,返回按照各待传输文件的排列顺序,选择一个待传输文件的步骤;
若否,则将当前选择的待传输文件加入当前分组,并返回按照各待传输文件的排列顺序,选择一个待传输文件的步骤。
在本公开的一个实施例中,其中,每个数据块包括:起始位置、文件数量、一组待传输文件以及每个待传输文件的长度和文件标识;起始位置表示数据块中存放待传输文件的起始偏移。
本公开的技术方案中,所涉及的文件的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
需要说明的是,本实施例中传输的文件并不是针对某一特定用户的文件,并不能反映出某一特定用户的个人信息。
需要说明的是,本实施例中传输的文件可以来自于公开数据集。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,电子设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储电子设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
电子设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许电子设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如文件传输方法。例如,在一些实施例中,文件传输方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM1002和/或通信单元1009而被载入和/或安装到电子设备1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文描述的文件传输方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行文件传输方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (15)

1.一种文件传输方法,应用于终端,包括:
确定各待传输文件;
从所述各待传输文件中筛选预设数量的待传输文件,并与服务器之间传输每个待传输文件;
对于其余的待传输文件,确定多个待传输文件为一组,每组待传输文件的数据总量不超过预设数据量;
与所述服务器之间传输每组待传输文件。
2.根据权利要求1所述的方法,其中,所述待传输文件包括待下载文件,所述与所述服务器之间传输每组待传输文件,包括:
针对每组待下载文件,向所述服务器发送准备下载请求,以使得所述服务器响应于所述准备下载请求,基于该组待下载文件生成一个数据块,每个数据块包括一组待下载文件以及待下载文件的元数据;
从所述服务器中下载该组待下载文件对应的数据块,并从数据块中解析出该组待下载文件。
3.根据权利要求2所述的方法,其中,所述从所述服务器中下载该组待下载文件对应的数据块,包括:
接收所述服务器响应于所述准备下载请求发送的准备下载响应,所述准备下载响应中包括该组待下载文件的分组标识;
针对该组待下载文件,向所述服务器发送下载请求,所述下载请求包括该组待下载文件的分组标识,以使得所述服务器响应于下载请求,向所述终端发送所述分组标识对应的数据块;
接收所述服务器发送的数据块。
4.根据权利要求1所述的方法,其中,所述待传输文件包括待上传文件,所述与所述服务器之间传输每组待传输文件,包括:
针对每组待上传文件,生成一个数据块,每个数据块包括一组待上传文件以及待上传文件的元数据;
向所述服务器发送准备上传请求,以使得所述服务器响应于所述准备上传请求,向所述终端发送准备上传响应,所述准备上传响应包括该组待上传文件的分组标识;
向所述服务器发送上传请求,所述上传请求包括该组待上传文件对应的数据块和分组标识,以使得所述服务器从所述上传请求中解析并存储该组待上传文件。
5.根据权利要求1-4任一项所述的方法,其中,所述对于其余的待传输文件,确定多个待传输文件为一组,包括:
对于其余的待传输文件,按照各待传输文件的排列顺序,选择一个待传输文件;
判断将当前选择的待传输文件加入当前分组时,当前分组包括的待传输文件的数据总量是否超过所述预设数据量;
若是,则确定当前分组设置完成,生成下一个分组,将当前选择的待传输文件加入所述下一个分组,并将所述下一个分组作为当前分组,返回所述按照各待传输文件的排列顺序,选择一个待传输文件的步骤;
若否,则将当前选择的待传输文件加入当前分组,并返回所述按照各待传输文件的排列顺序,选择一个待传输文件的步骤。
6.根据权利要求2-4任一项所述的方法,其中,每个数据块包括:起始位置、文件数量、一组待传输文件以及每个待传输文件的长度和文件标识;起始位置表示数据块中存放待传输文件的起始偏移。
7.一种文件传输装置,应用于终端,包括:
确定模块,用于确定各待传输文件;
传输模块,用于从所述各待传输文件中筛选预设数量的待传输文件,并与服务器之间传输每个待传输文件;
分组模块,用于对于其余的待传输文件,确定多个待传输文件为一组,每组待传输文件的数据总量不超过预设数据量;
所述传输模块,还用于与所述服务器之间传输每组待传输文件。
8.根据权利要求7所述的装置,其中,所述待传输文件包括待下载文件,所述传输模块,具体用于:
针对每组待下载文件,向所述服务器发送准备下载请求,以使得所述服务器响应于所述准备下载请求,基于该组待下载文件生成一个数据块,每个数据块包括一组待下载文件以及待下载文件的元数据;
从所述服务器中下载该组待下载文件对应的数据块,并从数据块中解析出该组待下载文件。
9.根据权利要求8所述的装置,其中,所述传输模块,具体用于:
接收所述服务器响应于所述准备下载请求发送的准备下载响应,所述准备下载响应中包括该组待下载文件的分组标识;
针对该组待下载文件,向所述服务器发送下载请求,所述下载请求包括该组待下载文件的分组标识,以使得所述服务器响应于下载请求,向所述终端发送所述分组标识对应的数据块;
接收所述服务器发送的数据块。
10.根据权利要求7所述的装置,其中,所述待传输文件包括待上传文件,所述传输模块,具体用于:
针对每组待上传文件,生成一个数据块,每个数据块包括一组待上传文件以及待上传文件的元数据;
向所述服务器发送准备上传请求,以使得所述服务器响应于所述准备上传请求,向所述终端发送准备上传响应,所述准备上传响应包括该组待上传文件的分组标识;
向所述服务器发送上传请求,所述上传请求包括该组待上传文件对应的数据块和分组标识,以使得所述服务器从所述上传请求中解析并存储该组待上传文件。
11.根据权利要求7-10任一项所述的装置,其中,所述分组模块,具体用于:
对于其余的待传输文件,按照各待传输文件的排列顺序,选择一个待传输文件;
判断将当前选择的待传输文件加入当前分组时,当前分组包括的待传输文件的数据总量是否超过所述预设数据量;
若是,则确定当前分组设置完成,生成下一个分组,将当前选择的待传输文件加入所述下一个分组,并将所述下一个分组作为当前分组,返回所述按照各待传输文件的排列顺序,选择一个待传输文件的步骤;
若否,则将当前选择的待传输文件加入当前分组,并返回所述按照各待传输文件的排列顺序,选择一个待传输文件的步骤。
12.根据权利要求8-10任一项所述的装置,其中,每个数据块包括:起始位置、文件数量、一组待传输文件以及每个待传输文件的长度和文件标识;起始位置表示数据块中存放待传输文件的起始偏移。
13.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-6中任一项所述的方法。
15.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-6中任一项所述的方法。
CN202111512127.8A 2021-12-07 2021-12-07 一种文件传输方法、装置、电子设备及存储介质 Active CN114172998B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111512127.8A CN114172998B (zh) 2021-12-07 2021-12-07 一种文件传输方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111512127.8A CN114172998B (zh) 2021-12-07 2021-12-07 一种文件传输方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN114172998A true CN114172998A (zh) 2022-03-11
CN114172998B CN114172998B (zh) 2023-10-27

Family

ID=80485647

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111512127.8A Active CN114172998B (zh) 2021-12-07 2021-12-07 一种文件传输方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114172998B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116405491A (zh) * 2023-06-09 2023-07-07 北京随信云链科技有限公司 文件批量上传方法、系统、电子设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104539739A (zh) * 2015-01-26 2015-04-22 浙江大学 一种文件上传的系统、方法及装置
CN105872036A (zh) * 2016-03-28 2016-08-17 联想(北京)有限公司 一种数据上传、下载方法、电子设备及服务器
CN106453652A (zh) * 2016-11-30 2017-02-22 努比亚技术有限公司 日志文件上传方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104539739A (zh) * 2015-01-26 2015-04-22 浙江大学 一种文件上传的系统、方法及装置
CN105872036A (zh) * 2016-03-28 2016-08-17 联想(北京)有限公司 一种数据上传、下载方法、电子设备及服务器
CN106453652A (zh) * 2016-11-30 2017-02-22 努比亚技术有限公司 日志文件上传方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116405491A (zh) * 2023-06-09 2023-07-07 北京随信云链科技有限公司 文件批量上传方法、系统、电子设备及计算机可读存储介质
CN116405491B (zh) * 2023-06-09 2023-09-15 北京随信云链科技有限公司 文件批量上传方法、系统、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN114172998B (zh) 2023-10-27

Similar Documents

Publication Publication Date Title
US10613788B2 (en) Data migration between cloud storage systems
CN113568884B (zh) 一种文件管理方法、装置、电子设备及存储介质
US10650016B2 (en) Data ingestion process
US9417811B2 (en) Efficient inline data de-duplication on a storage system
CN109918205B (zh) 一种边缘设备调度方法、系统、装置及计算机存储介质
CN109766082B (zh) 应用程序页面跳转的方法和装置
CN112866391A (zh) 消息推送方法、装置、电子设备及存储介质
CN105302676A (zh) 一种分布式文件系统的主备机制数据传输方法及装置
CN113411404A (zh) 一种文件下载方法、装置、服务器及存储介质
CN107181774B (zh) 分布式数据中心之间的数据移动
CN113139660A (zh) 模型推理方法、装置、电子设备及存储介质
CN114172998B (zh) 一种文件传输方法、装置、电子设备及存储介质
CN110324384B (zh) 数据推送的方法和装置
CN112671892A (zh) 数据传输方法、装置、电子设备、介质和计算机程序产品
CN112732312A (zh) 用于更新应用程序的方法及装置、电子设备和介质
CN108494700B (zh) 跨链路数据传输方法、装置、计算机设备及存储介质
CN112714163B (zh) 数据传输方法、装置、电子设备和介质
CN114880115A (zh) 数据回源的调度方法、装置、电子设备及存储介质
US10148584B2 (en) Adaptive compression
CN114138786A (zh) 一种联机交易消息去重方法、装置、介质、产品和设备
CN113326038A (zh) 用于提供服务的方法、装置、设备、存储介质及程序产品
CN113253938A (zh) 数据处理方法、装置、设备、存储介质及计算机程序产品
CN112732728A (zh) 一种数据同步方法和系统
CN114500501B (zh) 一种套件交付方法、装置、电子设备及存储介质
CN113132324B (zh) 样本鉴定方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant