CN114095493A - 一种基于断点重传的文件上传方法和系统 - Google Patents
一种基于断点重传的文件上传方法和系统 Download PDFInfo
- Publication number
- CN114095493A CN114095493A CN202111363310.6A CN202111363310A CN114095493A CN 114095493 A CN114095493 A CN 114095493A CN 202111363310 A CN202111363310 A CN 202111363310A CN 114095493 A CN114095493 A CN 114095493A
- Authority
- CN
- China
- Prior art keywords
- file
- uploading
- blocks
- module
- information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000003993 interaction Effects 0.000 claims abstract description 29
- 230000000903 blocking effect Effects 0.000 claims description 27
- 230000005540 biological transmission Effects 0.000 claims description 17
- 230000015572 biosynthetic process Effects 0.000 claims description 8
- 238000003786 synthesis reaction Methods 0.000 claims description 8
- 230000002194 synthesizing effect Effects 0.000 claims description 7
- 238000002360 preparation method Methods 0.000 claims description 4
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种基于断点重传的文件上传方法和系统,用以解决现有技术中大文件上传时出现中断故障后的重新上传问题。所述文件上传方法在客户端读取待上传文件后,分别通过不同的API接口与服务器进行文件信息及上传状态的交互和文件上传;其中文件上传前进行文件分块,基于分块进行逐步上传,每个文件块的上传完成后进行文件完整度判断,最终完成所有文件块的上传;当出现中断时,从中断的当前文件块开始进行重新上传,对之前上传过的文件块不需再重复上传。本发明解决了在一次性上传大文件过程中发送或接收过慢的问题,节省了带宽;同时避免了相同文件多次上传,节约服务器存储空间,节约用户操作时间,提高了用户体验。
Description
技术领域
本发明属于通讯数据传输领域,具体涉及一种基于断点重传的文件上传方法和系统。
背景技术
随着通讯技术的发展,需要进行传输的数据量越来越庞大,单个文件的大小也在不断增长,占有越来越大的存储空间,同时对传输过程提出了更高的要求。对于大文件的传输,当在传输过程中出现硬件故障或程序bug时,例如,终端关机或者浏览器刷新等,会导致上传失败;此时,需要解决传输失败的问题。
现有技术中,通常采用重新从头上传的方式对传输失败的文件进行重新传输。现有的文件上传方法,对于文件的处理,无论是用户端还是服务端,都是一次性进行读取、发送、接收;在上传过程中由于硬件或程序问题,例如网络的不稳定或浏览器的异常关闭等,很容易导致上传失败,失败之后需要从头开始上传。尤其对于大文件来说,需要传输时间较长,这种传输方式效率低,用户体验差。
发明内容
鉴于现有技术中的上述缺陷或不足,本发明旨在提供一种基于断点重传的文件上传方法,尤其适用于大文件传输,在文件传输过程中先将所传输的文件进行切割,对切割后的文件块进行相应的标识后,进行文件块的传输;当出现上传失败后,从中断处重传文件块,并继续传输后续尚未传输完成的文件块,避免相同文件多次上传,节约服务器存储空间,节约用户操作时间,提高用户体验。
为了实现上述目的,本发明实施例采用如下技术方案:
第一方面,本发明实施例提供了一种基于断点重传的文件上传方法,所述文件上传方法包括如下步骤:
步骤S101,客户端读取待上传文件,获取文件信息;
步骤S102,客户端将文件信息上传至服务器;
步骤S103,服务器根据所接收到的文件信息,在服务器端搜索是否存在相同文件;若存在,则向客户端返回“停止上传”命令;若不存在,则向客户端返回“准备分块”命令;
步骤S104,客户端接收到“停止上传”命令后,返回步骤S101;客户端接收到“准备分块”命令后,对文件分块,记录总分块数,并将总分块数上传至服务器;
步骤S105,客户端向服务器上传当前MD5值下的当前文件块;若出现上传中断,则重复执行步骤S105;
步骤S106,服务器接收当前文件块并存储在相应的MD5值下,实时更新已接收到且存储在服务器内的当前MD5值下的所有文件块,统计并更新已接收文件块数;若出现信息更新中断,则返回步骤S105;
步骤S107,服务器向客户端返回已接收文件块数,请求客户端判断已上传文件块是否已达总数;若文件块数量未达总数,则进入步骤S108;若文件块数量已达总数,则进入步骤S109;若出现信息传输中断,则返回步骤S105;
步骤S108,客户端将下一个待上传的文件块更新为当前文件块,进入步骤S105;若出现信息更新中断,则直接返回步骤S105;
步骤S109,客户端上传结束,并将结束的消息上传至服务器;
步骤S110,服务器接收到上传结束的消息后,合并所接收的当前MD5值下的所有文件块,获得完整文件,完成文件上传。
上述方案中,所述方法还包括:
浏览器与服务器约定两个应用程序接口API,第一API接口用于上传文件信息,第二API用于上传文件块;其中,
步骤S102的文件信息上传和步骤S104总分块数上传通过第一API实现,步骤S105的文件块上传,通过第二API实现。
上述方案中,所述步骤S102中的文件信息包括:
文件名称、文件大小、文件MD5值和/或鉴权。
上述方案中,步骤S104对文件分块后生成list.shift,且list.length为总分块数;其中list.shift记录每一个分块的编号;并将list.length通过第一API接口上传给服务器。
上述方案中,步骤S105中通过list.shift取当前文件块并调用第二API接口,进行所取文件块的上传。
上述方案中,步骤S106统计并更新已接收文件块数时,在list.length中减去已接收文件块数。
上述方案中,步骤S107客户端判断已上传文件块是否已达总数,客户端通过第一API接口请求返回list.length;当list.length为0,则判定为文件块数量已达总数;若list.length不为0,则判定为文件块数量未达总数。
第二方面,本发明实施例还提供了一种基于断点重传的文件上传系统,所述文件上传系统包括设置在客户端的文件读取模块、第一交互模块、分块模块、第二交互模块、总数判定模块及更新模块,和设置在服务器端的第一API接口、文件信息存储模块、第二API接口、文件块存储模块、文件块合成模块及文件存储模块;其中,
所述文件读取模块用于读取待上传文件,获取文件信息;
第一交互模块用于将文件信息上传至第一API接口,还用于接收到第一API接口的“停止上传”命令后,启动文件读取模块,接收到“准备分块”命令后,将命令转发给分块模块;
分块模块用于接收到“准备分块”命令后,对文件分块,记录总分块数,并将总分块数上传至第一交互模块;
第二交互模块用于向第二API接口上传当前MD5值下的当前文件块;还用于当出现上传中断时,重复上传当前MD5值下的当前文件块;
所述总数判定模块用于判断已上传文件块是否已达总数;若文件块数量未达总数,则启动更新模块;若文件块数量已达总数,则启动文件合成模块;若出现信息传输中断,则直接启动第二交互模块;
更新模块用于将下一个待上传的文件块更新为当前文件块;
所述第一API接口用于根据所接收到的文件信息,在文件存储模块中搜索是否存在相同文件;若存在,则向第一交互模块返回“停止上传”命令;若不存在,则向第一交互模块返回“准备分块”命令;还用于接收到文件块存储模块的反馈信息时统计并更新已接收文件块数,且当出现信息更新中断时,直接启动第二交互模块;
文件信息存储模块用于存储接收到的文件信息、分块信息及总分块数,并在文件合成模块启动后将文件信息发送给文件存储模块,接收到文件存储模块的反馈信息后进行信息重置;
第二API接口用于接收当前上传的文件块并发送给文件块存储模块;
所述文件块存储模块用于将接收的文件块存储在相应的MD5值下,实时更新已接收到且存储在服务器内的当前MD5值下的所有文件块,并及时反馈给第一API接口;
所述文件块合成模块用于对文件块存储模块中的所有文件块进行合成,并将合成后的完整文件发送给文件存储模块;
所述文件存储模块用于存储已上传的文件及相对应的文件信息。
本发明实施例所提供的技术方案具有如下有益效果:
所述文件上传方法所述文件上传方法在客户端读取待上传文件后,分别通过不同的API接口与服务器进行文件信息及上传状态的交互和文件上传;其中文件上传前进行文件分块,基于分块进行逐步上传,每个文件块的上传完成后进行文件完整度判断,最终完成所有文件块的上传;当出现中断时,从中断的当前文件块开始进行重新上传,对之前上传过的文件块不需再重复上传。通过在文件上传中从客户端块读取文件,并将读取的文件内容添加到sparkMD5的hash计算中,直到文件读取完毕;分块后进行分块上传,再从服务器端合并分块,进行读写操作,将排序好的分块列表遍历写入到合并文件。本发明解决了在一次性上传大文件过程中发送或接收过慢的问题,节省了带宽;同时避免了相同文件多次上传,节约服务器存储空间,节约用户操作时间,提高了用户体验。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1是本发明实施例基于断点重传的文件上传方法流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明实施例提供了一种基于断点重传的文件上传方法,当用户将文件由客户端的浏览器传输至服务器时,经过对大文件的切割每次只上传一小片;从而解决在一次性上传大文件过程中发送或接收过慢,因网络问题导致上传失败,再次上传可以从上次中断处开始上传,节省带宽和上传时间。由于断点续传需要根据MD5标识验证文件上传的切片数量,可以避免相同文件多次上传,节约服务器存储空间,节约用户操作时间,加上友好提示,可以提高用户的体验度。
如图1所示,所述基于断点重传的文件上传方法包括如下步骤:
浏览器与服务器约定两个应用程序接口API,第一API接口用于上传文件信息,第二API用于上传文件块。
步骤S101,客户端读取待上传文件,获取文件信息。
本步骤中,所述对待上传文件的读取,除将所有数据读取外,还会单独读取文件的文件名、MD5值、文件大小及文件鉴权Token值
步骤S102,客户端将文件信息上传至服务器。
本步骤中,信息上传通过第一API接口实现。
步骤S103,服务器根据所接收到的文件信息,在服务器端搜索是否存在相同文件;若存在,则向客户端返回“停止上传”命令;若不存在,则向客户端返回“准备分块”命令。
本步骤中搜索是否存在相同文件,是查重步骤,以避免重复上传,浪费资源和时间。通过与服务器端约定的第一API接口来实现,这里的文件信息记录文件的状态,同时第一API接口也用于获取当前文件的上传状态。
例如,当进行查重时,客户端浏览器输入:{文件名称(fi leName),文件大小(fileSize),文件MD5值(md5),鉴权(token)};
服务器端返回并输出:{文件已存在}或{文件不存在}。
步骤S104,客户端接收到“停止上传”命令后,返回步骤S101;客户端接收到“准备分块”命令后,对文件分块,记录总分块数,并将总分块数上传至服务器。
本步骤中,对文件分块后还可以生成list.shift,且list.length为总分块数;其中list.shift记录每一个分块的编号;并将list.length通过第一API接口上传给服务器。
步骤S105,客户端向服务器上传当前MD5值下的当前文件块;若出现上传中断,则重复执行步骤S105。
本步骤中,从本步骤开始,正式进入文件上传阶段,此时,若出现故障而发生上传中断,则从步骤S105开始重新执行。优选地,客户端通过list.shift取当前文件块并调用第二API接口,进行所取文件块的上传。每一次上传一个分块,且上传完成后对相应的分块编号进行记录。
步骤S106,服务器接收当前文件块并存储在相应的MD5值下,实时更新已接收到且存储在服务器内的当前MD5值下的所有文件块,统计并更新已接收文件块数;若出现信息更新中断,则返回步骤S105。
本步骤中,统计并更新已接收文件块数时,在list.length中减去已接收文件块数,服务端将这一数值作为未上传文件块的统计数值。当所有文件块全部被接收时,list.length为0。本步骤考虑了中断情况下重新上传的过程;若出现中断重新上传,则直接搜索服务器内已经储存的文件块,对这些已经储存的文件块不需要再进行上传,而只需要继续上传尚未完成上传的文件块即可。
步骤S107,服务器向客户端返回已接收文件块数,请求客户端判断已上传文件块是否已达总数;若文件块数量未达总数,则进入步骤S108;若文件块数量已达总数,则进入步骤S109;若出现信息传输中断,则返回步骤S105。
本步骤中,客户端判断已上传文件块是否已达总数,可以通过对客户端内存储的list.shift是否遍历的情况进行判断,当遍历list.shift时,则上传文件块数量已达总数;否则相反。客户端还可以通过第一API接口请求返回list.length进行判断;当list.length为0,则判定为文件块数量已达总数;若list.length不为0,则判定为文件块数量未达总数。
例如,通过list.shift进行判断时,可以在客户端执行如下步骤:
输入:{文件名称(fileName),文件大小(fileSize),文件MD5值(md5),鉴权(token)};
输出:{数组,未上传块的编号等信息(list),分片大小(size),分片的总次数(count)}。
步骤S108,客户端将下一个待上传的文件块更新为当前文件块,进入步骤S105;若出现信息更新中断,则直接返回步骤S105。
步骤S109,客户端上传结束,并将结束的消息上传至服务器。
步骤S110,服务器接收到上传结束的消息后,合并所接收的当前MD5值下的所有文件块,获得完整文件,完成文件上传。
基于同样的思想,本发明实施例还提供了一种基于断点重传的文件上传系统,所述文件上传系统包括设置在客户端的文件读取模块、第一交互模块、分块模块、第二交互模块、总数判定模块及更新模块,和设置在服务器端的第一API接口、文件信息存储模块、第二API接口、文件块存储模块、文件块合成模块及文件存储模块。
其中,所述文件读取模块用于读取待上传文件,获取文件信息;
第一交互模块用于将文件信息上传至第一API接口,还用于接收到第一API接口的“停止上传”命令后,启动文件读取模块,接收到“准备分块”命令后,将命令转发给分块模块;
分块模块用于接收到“准备分块”命令后,对文件分块,记录总分块数,并将总分块数上传至第一交互模块;
第二交互模块用于向第二API接口上传当前MD5值下的当前文件块;还用于当出现上传中断时,重复上传当前MD5值下的当前文件块;
所述总数判定模块用于判断已上传文件块是否已达总数;若文件块数量未达总数,则启动更新模块;若文件块数量已达总数,则启动文件合成模块;若出现信息传输中断,则直接启动第二交互模块;
更新模块用于将下一个待上传的文件块更新为当前文件块;
所述第一API接口用于根据所接收到的文件信息,在文件存储模块中搜索是否存在相同文件;若存在,则向第一交互模块返回“停止上传”命令;若不存在,则向第一交互模块返回“准备分块”命令;还用于接收到文件块存储模块的反馈信息时统计并更新已接收文件块数,且当出现信息更新中断时,直接启动第二交互模块;
文件信息存储模块用于存储接收到的文件信息、分块信息及总分块数,并在文件合成模块启动后将文件信息发送给文件存储模块,接收到文件存储模块的反馈信息后进行信息重置;
第二API接口用于接收当前上传的文件块并发送给文件块存储模块;
所述文件块存储模块用于将接收的文件块存储在相应的MD5值下,实时更新已接收到且存储在服务器内的当前MD5值下的所有文件块,并及时反馈给第一API接口;
所述文件块合成模块用于对文件块存储模块中的所有文件块进行合成,并将合成后的完整文件发送给文件存储模块;
所述文件存储模块用于存储已上传的文件及相对应的文件信息。
本实施例中所述各模块可以通过处理器或存储器实现,必要时同时包含处理器和存储器。其中,所述处理器可以是但不限于微处理器MPU、中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、其他可编程逻辑器件、分立门、晶体管逻辑器件、分立硬件组件等。所述存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),实现方式包括磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘SSD)等。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。
由以上技术方案可以看出,本发明实施例所提供的一种基于断点重传的文件上传方法及系统,在文件上传中基于客户端对文件的分块,进行分块读取和上传,并将读取的文件内容添加到sparkMD5的hash计算中,直到文件读取完毕;从服务器端合并分块,进行读写操作,将排序好的分块列表遍历写入到合并文件;解决了在一次性上传大文件过程中发送或接收过慢的问题,节省了带宽;同时避免了相同文件多次上传,节约服务器存储空间,节约用户操作时间,提高了用户体验。
以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (8)
1.一种基于断点重传的文件上传方法,其特征在于,所述文件上传方法包括如下步骤:
步骤S101,客户端读取待上传文件,获取文件信息;
步骤S102,客户端将文件信息上传至服务器;
步骤S103,服务器根据所接收到的文件信息,在服务器端搜索是否存在相同文件;若存在,则向客户端返回“停止上传”命令;若不存在,则向客户端返回“准备分块”命令;
步骤S104,客户端接收到“停止上传”命令后,返回步骤S101;客户端接收到“准备分块”命令后,对文件分块,记录总分块数,并将总分块数上传至服务器;
步骤S105,客户端向服务器上传当前MD5值下的当前文件块;若出现上传中断,则重复执行步骤S105;
步骤S106,服务器接收当前文件块并存储在相应的MD5值下,实时更新已接收到且存储在服务器内的当前MD5值下的所有文件块,统计并更新已接收文件块数;若出现信息更新中断,则返回步骤S105;
步骤S107,服务器向客户端返回已接收文件块数,请求客户端判断已上传文件块是否已达总数;若文件块数量未达总数,则进入步骤S108;若文件块数量已达总数,则进入步骤S109;若出现信息传输中断,则返回步骤S105;
步骤S108,客户端将下一个待上传的文件块更新为当前文件块,进入步骤S105;若出现信息更新中断,则直接返回步骤S105;
步骤S109,客户端上传结束,并将结束的消息上传至服务器;
步骤S110,服务器接收到上传结束的消息后,合并所接收的当前MD5值下的所有文件块,获得完整文件,完成文件上传。
2.根据权利要求1所述的基于断点重点的文件上传方法,其特征在于,所述方法还包括:
浏览器与服务器约定两个应用程序接口API,第一API接口用于上传文件信息,第二API用于上传文件块;其中,
步骤S102的文件信息上传和步骤S104总分块数上传通过第一API实现,步骤S105的文件块上传,通过第二API实现。
3.根据权利要求2所述的基于断点重点的文件上传方法,其特征在于,所述步骤S102中的文件信息包括:
文件名称、文件大小、文件MD5值和/或鉴权。
4.根据权利要求2所述的基于断点重点的文件上传方法,其特征在于,步骤S104对文件分块后生成list.shift,且list.length为总分块数;其中list.shift记录每一个分块的编号;并将list.length通过第一API接口上传给服务器。
5.根据权利要求4所述的基于断点重点的文件上传方法,其特征在于,步骤S105中通过list.shift取当前文件块并调用第二API接口,进行所取文件块的上传。
6.根据权利要求4所述的基于断点重点的文件上传方法,其特征在于,步骤S106统计并更新已接收文件块数时,在list.length中减去已接收文件块数。
7.根据权利要求6所述的基于断点重点的文件上传方法,其特征在于,步骤S107客户端判断已上传文件块是否已达总数,客户端通过第一API接口请求返回list.length;当list.length为0,则判定为文件块数量已达总数;若list.length不为0,则判定为文件块数量未达总数。
8.一种基于断点重传的文件上传系统,其特征在于,所述文件上传系统包括设置在客户端的文件读取模块、第一交互模块、分块模块、第二交互模块、总数判定模块及更新模块,和设置在服务器端的第一API接口、文件信息存储模块、第二API接口、文件块存储模块、文件块合成模块及文件存储模块;其中,
所述文件读取模块用于读取待上传文件,获取文件信息;
第一交互模块用于将文件信息上传至第一API接口,还用于接收到第一API接口的“停止上传”命令后,启动文件读取模块,接收到“准备分块”命令后,将命令转发给分块模块;
分块模块用于接收到“准备分块”命令后,对文件分块,记录总分块数,并将总分块数上传至第一交互模块;
第二交互模块用于向第二API接口上传当前MD5值下的当前文件块;还用于当出现上传中断时,重复上传当前MD5值下的当前文件块;
所述总数判定模块用于判断已上传文件块是否已达总数;若文件块数量未达总数,则启动更新模块;若文件块数量已达总数,则启动文件合成模块;若出现信息传输中断,则直接启动第二交互模块;
更新模块用于将下一个待上传的文件块更新为当前文件块;
所述第一API接口用于根据所接收到的文件信息,在文件存储模块中搜索是否存在相同文件;若存在,则向第一交互模块返回“停止上传”命令;若不存在,则向第一交互模块返回“准备分块”命令;还用于接收到文件块存储模块的反馈信息时统计并更新已接收文件块数,且当出现信息更新中断时,直接启动第二交互模块;
文件信息存储模块用于存储接收到的文件信息、分块信息及总分块数,并在文件合成模块启动后将文件信息发送给文件存储模块,接收到文件存储模块的反馈信息后进行信息重置;
第二API接口用于接收当前上传的文件块并发送给文件块存储模块;
所述文件块存储模块用于将接收的文件块存储在相应的MD5值下,实时更新已接收到且存储在服务器内的当前MD5值下的所有文件块,并及时反馈给第一API接口;
所述文件块合成模块用于对文件块存储模块中的所有文件块进行合成,并将合成后的完整文件发送给文件存储模块;
所述文件存储模块用于存储已上传的文件及相对应的文件信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111363310.6A CN114095493A (zh) | 2021-11-17 | 2021-11-17 | 一种基于断点重传的文件上传方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111363310.6A CN114095493A (zh) | 2021-11-17 | 2021-11-17 | 一种基于断点重传的文件上传方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114095493A true CN114095493A (zh) | 2022-02-25 |
Family
ID=80301363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111363310.6A Pending CN114095493A (zh) | 2021-11-17 | 2021-11-17 | 一种基于断点重传的文件上传方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114095493A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115617760A (zh) * | 2022-12-20 | 2023-01-17 | 中化现代农业有限公司 | 一种大批量文件快速上传的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067505A (zh) * | 2012-12-30 | 2013-04-24 | 乐视网信息技术(北京)股份有限公司 | 一种上传文件到服务器的方法 |
CN104253816A (zh) * | 2014-09-25 | 2014-12-31 | 武汉传神信息技术有限公司 | 基于http协议的大文件页面断点续传的方法 |
CN105338090A (zh) * | 2015-11-12 | 2016-02-17 | 浪潮软件集团有限公司 | 一种基于WebSocket的断点续传方法及装置 |
WO2017215646A1 (zh) * | 2016-06-17 | 2017-12-21 | 中兴通讯股份有限公司 | 数据传输方法和装置 |
CN109257405A (zh) * | 2017-07-14 | 2019-01-22 | 中兴通讯股份有限公司 | 文件上传的处理方法、装置和服务器 |
WO2020233082A1 (zh) * | 2019-05-22 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 数据文件上传方法、系统、存储介质和服务器 |
-
2021
- 2021-11-17 CN CN202111363310.6A patent/CN114095493A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067505A (zh) * | 2012-12-30 | 2013-04-24 | 乐视网信息技术(北京)股份有限公司 | 一种上传文件到服务器的方法 |
CN104253816A (zh) * | 2014-09-25 | 2014-12-31 | 武汉传神信息技术有限公司 | 基于http协议的大文件页面断点续传的方法 |
CN105338090A (zh) * | 2015-11-12 | 2016-02-17 | 浪潮软件集团有限公司 | 一种基于WebSocket的断点续传方法及装置 |
WO2017215646A1 (zh) * | 2016-06-17 | 2017-12-21 | 中兴通讯股份有限公司 | 数据传输方法和装置 |
CN109257405A (zh) * | 2017-07-14 | 2019-01-22 | 中兴通讯股份有限公司 | 文件上传的处理方法、装置和服务器 |
WO2020233082A1 (zh) * | 2019-05-22 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 数据文件上传方法、系统、存储介质和服务器 |
Non-Patent Citations (1)
Title |
---|
王莉敏;梁正和;段全锋;: "基于HTML5大文件断点续传的实现方案", 计算机与现代化, no. 03 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115617760A (zh) * | 2022-12-20 | 2023-01-17 | 中化现代农业有限公司 | 一种大批量文件快速上传的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11036591B2 (en) | Restoring partitioned database tables from backup | |
US11687488B2 (en) | Directory deletion method and apparatus, and storage server | |
US9830101B2 (en) | Managing data storage in a set of storage systems using usage counters | |
US9805056B2 (en) | Synchronizing file updates between two cloud controllers of a distributed filesystem | |
US9646022B2 (en) | Distributed change notifications for a distributed filesystem | |
US9792294B2 (en) | Using byte-range locks to manage multiple concurrent accesses to a file in a distributed filesystem | |
US9715507B2 (en) | Techniques for reconciling metadata and data in a cloud storage system without service interruption | |
US11385830B2 (en) | Data storage method, apparatus and system, and server, control node and medium | |
US10169367B2 (en) | Managing opportunistic locks in a distributed file system | |
US8769138B2 (en) | Method for data retrieval from a distributed data storage system | |
CN111049928B (zh) | 数据同步方法、系统、电子设备及计算机可读存储介质 | |
US20110138079A1 (en) | Information processing apparatus, information processing method, data management server and data synchronization system | |
US9870414B2 (en) | Secure deletion operations in a wide area network | |
WO2022179363A1 (zh) | 一种应用程序接口api测试方法以及装置 | |
CN110958300B (zh) | 一种数据的上传方法、系统、装置、电子设备和计算机可读介质 | |
US20220066644A1 (en) | Implicit leader election in a distributed storage network | |
CN113626416A (zh) | 数据校验的方法、装置、计算设备和存储介质 | |
CN101216794A (zh) | 改进的Server-Less备份方法、存储设备及备份服务器 | |
CN114095493A (zh) | 一种基于断点重传的文件上传方法和系统 | |
CN112835885A (zh) | 一种分布式表格存储的处理方法、装置及系统 | |
CN113656384A (zh) | 数据处理方法、分布式数据库系统、电子设备及存储介质 | |
CN111078643B (zh) | 一种批量删除文件的方法、装置及电子设备 | |
CN117033311A (zh) | 一种基于切片上传的文件合并方法及系统 | |
CN117376364A (zh) | 一种数据处理方法及相关设备 | |
CN111966845B (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 |