CN114629895B - 一种文件分片断点续传方法、装置、终端设备及介质 - Google Patents
一种文件分片断点续传方法、装置、终端设备及介质 Download PDFInfo
- Publication number
- CN114629895B CN114629895B CN202210282754.5A CN202210282754A CN114629895B CN 114629895 B CN114629895 B CN 114629895B CN 202210282754 A CN202210282754 A CN 202210282754A CN 114629895 B CN114629895 B CN 114629895B
- Authority
- CN
- China
- Prior art keywords
- file
- uploading
- uploaded
- files
- terminal equipment
- 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.)
- Active
Links
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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种文件分片断点续传方法、装置、终端设备和介质,该方法通过获取待上传文件的大小、终端设备的线程总数、单个线程的上传速度和网络上传速度,综合计算待上传文件所需要分片的个数,若网络上传速度所对应上传速度能够满足终端设备所能达到的最大上传速度,则根据终端设备线程数均分待上传文件,使终端设备的上传速度达到最大,若网络上传速度所对应上传速度不能满足终端设备所能达到的最大上传速度,则根据网络上传速度计算分片文件个数,分片文件个数为网络上传速度和单个线程的上传速度的比值,本方法能够保证最大上传速度的同时,合理利用终端设备的处理器线程资源。
Description
技术领域
本发明涉及文件传输技术领域,特别涉及一种文件分片断点续传方法、装置、终端设备及介质。
背景技术
随着网络技术的不断发展,网络在人们日常生活中的应用也日益广泛,利用网络实现资源共享也得到普遍应用。用户终端可以将需要共享或保存的文件传送到网络服务器中。
目前,提高文件的上传速度的主要方式是对文件进行分片,通过设备的多线程任务同时上传分片文件,对文件分片的常规方法是根据终端设备线程数均分文件,使终端设备的所有处理器线程同时执行文件上传任务,此方法会占用终端设备处理器的所有线程,而无法有效处理其它任务,导致终端设备运行效率降低,出现卡顿、运行不畅的情况,反而会影响文件的上传速度。
发明内容
现有的文件分片方法只考虑终端设备线程数,而不考虑终端设备接入的网络上传速度,这样在网络上传速度不足以满足所有线程同时上传文件所需要的网络上传速度时,终端设备所有线程同时执行上传文件任务,由于接入的网络上传速度的限制,导致即占用了终端设备的处理器资源又不能有效提高上传速度。基于此,有必要针对上述技术问题,提供一种文件分片断点续传方法、装置、终端设备及介质,以解决现有技术中对大文件分片不合理,导致不能够有效提高文件上传速度的问题。
第一方面,本发明实施例提供一种文件分片断点续传方法,文件分片断点续传方法包括:
获取待上传文件的大小、用于上传文件的终端设备的线程总数、单个线程的上传速度和终端设备的网络上传速度;
当所述网络上传速度能够满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对所述待上传文件进行分片,分片的文件个数为所述终端设备的线程总数,得到至少两个分片文件;
当所述网络上传速度不能满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对所述待上传文件进行分片,分片的文件个数为所述网络上传速度与所述单个线程的上传速度的比值,得到至少两个分片文件;
将各个所述分片文件上传。
第二方面,本发明实施例提供一种文件分片断点续传装置,所述文件分片断点续传装置包括:
参数获取模块,用于获取待上传文件的大小、用于上传文件的终端设备的线程总数、单个线程的上传速度和终端设备的网络上传速度;
文件分片模块,用于计算待上传文件分片的文件个数,当所述网络上传速度能够满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对所述待上传文件进行分片,分片的文件个数为所述终端设备的线程总数,得到至少两个分片文件;
当所述网络上传速度不能满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对所述待上传文件进行分片,分片的文件个数为所述网络上传速度与所述单个线程的上传速度的比值,得到至少两个分片文件;
上传模块,用于将各个所述分片文件上传。
第三方面,本发明实施例提供一种终端设备,所述终端设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的文件分片断点续传方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的文件分片断点续传方法。
第五方面,本发明实施例提供一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面所述的文件断点续传方法。
本发明实施例与现有技术相比存在的有益效果是:本发明不但考虑终端设备的线程数,还考虑终端设备接入的网络上传速度,根据待上传文件的大小、终端设备的线程总数、单个线程的上传速度和网络上传速度,综合计算待上传文件所需要分片的个数,若网络上传速度所对应上传速度能够满足终端设备所能达到的最大上传速度,则根据终端设备线程数均分待上传文件,使终端设备的上传速度达到最大,若网络上传速度所对应上传速度不能满足终端设备所能达到的最大上传速度,则根据网络上传速度计算分片文件个数,分片文件个数为网络上传速度和单个线程的上传速度的比值,本方法能够保证最大上传速度的同时,合理利用终端设备的处理器线程资源。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种文件分片断点续传方法的一应用环境示意图;
图2是本发明实施例一提供的一种文件分片断点续传方法的流程示意图;
图3是本发明实施例二提供的一种文件分片断点续传方法的流程示意图;
图4是本发明实施例三提供的一种文件分片断点续传方法的流程示意图;
图5是本发明实施例四提供的一种文件分片断点续传装置的结构示意图;
图6是本发明实施例五提供的一种终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
应当理解,当在本发明说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本发明说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本发明说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本发明说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本发明的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
应理解,以下实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
为了说明本发明的技术方案,下面通过具体实施例来进行说明。
本发明实施例一提供的一种文件分片断点续传方法,可应用在如图1的应用环境中,其中,客户端与服务端进行通信。其中,客户端包括但不限于掌上电脑、桌上型计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、云端终端设备、个人数字助理(personal digital assistant,PDA)等终端设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
参见图2,是本发明实施例一提供的一种文件分片断点续传方法的流程示意图,上述文件分片断点续传方法可以应用于图1中的客户端,对应的客户端通过网络连接服务器。在客户端对文件进行分片,上传至服务器。如图2所示,该文件分片断点续传方法可以包括以下步骤:
步骤S101,获取待上传文件的大小、用于上传文件的终端设备的线程总数、单个线程的上传速度和终端设备的网络上传速度。
其中,线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。例如,一台电脑的一个线程在执行视频播放任务,另一个线程在执行文件下载任务。
同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本地存储(thread-local storage)。
单个线程的上传速度是指终端设备的中央处理器(CPU)的单个线程在单独执行文件上传任务的时候,所能达到的最大上传速度。
终端设备的网络上传速度是指终端设备向网络发送信息时的数据传输速度,上传速度越大,上传同一固定大小文件所需要的时间越短,相反,上传速度越小,所能上传同一固定大小文件所需要的时间越长。
本发明中,也可以获取终端设备接入的网络带宽,根据网路带宽计算得到该网络带宽下对应的网络上传速速,网络上传速度为网络上传带宽与8的比值。例如,网络上传带宽为80兆,那么对应的网络上传速度为10兆每秒。
本发明中,通过程序指令获取待上传文件的大小、用于上传文件的终端设备的线程总数、单个线程的上传速度和终端设备的网络上传速度。
步骤S102,当网络上传速度能够满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对待上传文件进行分片,分片的文件个数为终端设备的线程总数,得到至少两个分片文件;当网络上传速度不能满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对待上传文件进行分片,分片的文件个数为网络上传速度与单个线程的上传速度的比值,得到至少两个分片文件。
本发明中,在执行分片任务之前,对待上传文件添加文字介绍和自定义主题,文字介绍为待上传文件内容的详细描述,自定义主题包括用户自定义的文件类别、所属领域,文字介绍和自定义主题内容在终端设备生成相应的文件信息文档,由终端设备上传至服务器。
例如,用户准备上传一部电影文件,上传该电影文件之前对该电影的内容添加文字描述,介绍该电影讲述的故事情节,并对该电影添加自定义主题,即该电影属于哪个类别或者领域,以方便以后检索。
本发明中,在对文件进行分片之前,对待上传文件是否需要分片进行判断,用户首先设定文件大小阈值,确定出阈值后,则进行以下判断:当待上传文件的大小小于文件大小阈值时,不执行分片任务;当待上传文件的大小大于或等于文件大小阈值时,执行分片任务。
例如,用户设定文件大小阈值为100兆,待上传文件大小为50兆,带上传文件小于100兆,终端设备不执行分片任务,直接上传该文件至服务器;待上传文件大小为150兆,待上传文件大于100兆,终端设备执行分片任务,将待上传文件分片之后上传至服务器。
对于执行分片任务的待上传文件,按照以下规则对待上传文件进行分片,当网络上传速度能够满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对待上传文件进行分片,分片的文件个数为终端设备的线程总数,得到至少两个分片文件。
例如,待上传文件大小为1000兆,终端设备线程总数为8,单个线程最大上传速度为2兆每秒(M/S),网络上传速度为20兆每秒(M/S),可知,终端设备所有线程同时执行上传任务所需要的总网络上传速度为16兆每秒,终端设备接入的网络上传速度大于终端设备所有线程同时执行上传任务所需要的总网络上传速度,那么分片文件的分片个数为终端设备的总线程个数,即8个分片文件。
此方法能够在网络上传速度允许的情况下,利用终端设备的所有线程资源进行文件上传任务,已达到终端设备能够执行的最大上传速度,尽可能的提高文件上传速度。
当网络上传速度不能满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对待上传文件进行分片,分片的文件个数为网络上传速度与单个线程的上传速度的比值,得到至少两个分片文件。
例如,待上传文件大小为1000兆,终端设备线程总数为8,单个线程最大上传速度为2兆每秒(M/S),网络上传速度为10兆每秒(M/S),可知,终端设备所有线程同时执行上传任务所需要的总网络上传速度为16兆每秒,终端设备接入的网络上传速度小于终端设备所有线程同时执行上传任务所需要的总网络上传速度,那么分片文件的分片个数为终端设备接入的网络上传速度与单个线程最大上传速度的比值,即10/2=5,即,将待上传文件分为5个分片文件。
此方法能够最大化利用网络上传速度情况下,减小终端设备的线程负载,能够使终端设备在有限的网络上传速度下,以该网络上传速度进行文件上传,未用于执行文件上传任务的其它线程能够处理终端设备的其它任务,能够合理、有效的利用终端设备硬件资源。
步骤S103,将分片文件上传。
本发明中,将分片后的各个分片文件上传至服务器,如上传过程中发生断网的情况,终端设备自动暂停上传,保持当前上传任务的上传节点,当网络恢复的时候,点击继续上传按钮,继续上传文件。
本发明中,将分片后的各个分片文件上传至服务器,如上传过程中误点击浏览器关闭按钮,在点击时,弹出提示框,询问用户是否保存该上传任务,若不保存,则由终端设备向服务器发送删除指令,由服务器删除已上传的分片文件和文件上传记录。
本发明中,服务器通过非阻塞输入流和输出流(NIO)模型的方式,使用多部件文件(MultipartFile)接口接收分片文件,将接收到的分片文件追加到已有分片文件的后面,完成拼接文件,根据循环冗余校验(CRC)进行计算,校验拼接文件的完整程度,当校验拼接文件的完整程度为百分之百时,对拼接后的文件添加文字介绍和自定义主题,并生成完文件。
其中,非阻塞输入流和输出流(NIO)模型是一种同步非阻塞输入流和输出流模型,主要有三大核心部分:通道(Channel),缓冲区(Buffer),多路复用器(Selector),非阻塞输入流和输出流(NIO)模型是面向缓冲区的,读取到的数据放入缓冲区,缓冲区的数据可根据需要在缓冲区中前后移动,增加了处理过程中的灵活性。例如,一个线程从某通道发送读取数据的请求,它仅能得到目前可用的数据,如果目前没有数据可用时,则不获取任何数据,而不是保持线程阻塞,因此,在数据可以读取之前,该线程可以处理其它任务。
其中,循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。校验码的具体生成过程为:假设发送信息用信息多项式C(x)表示,将C(x)左移R位,则可表示成C(x)*x的R次方,这样C(x)的右边就会空出R位,这就是校验码的位置。通过C(x)*x的R次方除以生成的多项式G(x)得到的余数就是校验码。
举例说明:
给定信息位为1010001,预先商定的多项式为X4+X2+X+1求循环冗余码,计算过程为:生成多项式最高阶数是4,所以冗余位的位数是4,信息位后补0,所以信息位变成了1010001 0000,用信息位除生成多项式,即10100010000除10111,得到余数1101,即为所求的冗余位,将信息位后面补的4个0换成余数,信息位变成1010001 1101,即得到循环冗余校验码(CRC)。
本发明中,拼接完成的文件通过二进制的方式生成数据码,通过循环冗余校验码(CRC)对数据码进行校验,若校验通过,则拼接文件为完整文件。
本发明中,服务器通过循环冗余校验码(CRC)的方式检验拼接文件的完整度,若拼接文件完整度为百分之百,则对拼接完成的文件添加文字介绍和用户自定义主题信息,生成完整文件。
本发明实施例终端设备获取待上传文件的大小、用于上传文件的终端设备的线程总数、单个线程的上传速度和终端设备的网络上传速度,通过上述参数综合计算待上传文件所需要分片的个数,当网络上传速度能够满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,终端设备所有线程同时执行上传任务,分片文件个数为终端设备的线程总数,当网络上传速度不能满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,部分线程执行文件上传任务,分片文件个数为网络上传速度和单个线程的上传速度的比值,本方法能够保证最大上传速度的同时,合理利用终端设备的处理器线程资源。
参见图3是本发明提供的是本发明实施例二提供的一种文件分片断点续传方法的流程示意图,上述文件分片断点续传方法可以应用于图1中的客户端,对应的终端设备通过网络连接服务器。在客户端对文件进行分片,上传至服务器。如图3所示,该文件分片断点续传方法可以包括以下步骤:
步骤S201,获取待上传文件的大小、用于上传文件的终端设备的线程总数、单个线程的上传速度和终端设备的网络上传速度。
步骤S202,当网络上传速度能够满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对待上传文件进行分片,分片的文件个数为终端设备的线程总数,得到至少两个分片文件;当网络上传速度不能满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对待上传文件进行分片,分片的文件个数为网络上传速度与单个线程的上传速度的比值,得到至少两个分片文件。
其中,步骤S201和步骤S202与上述步骤S101和步骤S102的内容型相同,可参考步骤S101和步骤S102的描述,在此不再赘述。
步骤S203,对每个分片文件添加唯一标识,将各个添加唯一标识后的分片文件进行上传,以使文件接收端根据各个分片文件的唯一标识依次对各个分片文件进行拼接。
本发明中,在终端设备通过通用唯一识别码(Universally Unique Identifier,UUID)的规则对每个分片文件添加唯一标识,将各个添加唯一标识后的分片文件进行上传,以使服务器端根据各个分片文件的唯一标识依次对各个分片文件进行拼接。
其中,通用唯一识别码(Universally Unique Identifier,UUID)用来识别属性类型,在所有空间和时间上被视为唯一标识,可以保证这个值是真正唯一的,任何地方产生的任意一个通用唯一识别码都不会有相同的值。
例如,基于名字的通用唯一识别码通过计算名字和名字空间的信息摘要加密(MD5)散列值得到。这个版本的通用唯一识别码保证了相同名字空间中不同名字生成的通用唯一识别码的唯一性,不同名字空间中的通用唯一识别码的唯一性,相同名字空间中相同名字的通用唯一识别码重复生成是相同的。
步骤S204,将分片文件上传。
其中,步骤S204与上述步骤S103的内容相同,可参考步骤S103的描述,在此不在赘述。
本发明的实施例相较于实施例一,增加了对每个分片文件添加唯一标识,将各个添加唯一标识后的分片文件进行上传,以使文件接收端根据各个分片文件的唯一标识依次对各个分片文件进行拼接的步骤,服务器可根据分片文件的唯一标识对分片文件进行拼接,由于,唯一标识是不重复的且能够区分分片文件的先后顺序,从而保证分片文件拼接的完整性。
参见图4是本发明提供的是本发明实施例三提供的一种文件分片断点续传方法的流程示意图,上述文件分片断点续传方法可以应用于图1中的客户端,对应的终端设备通过网络连接服务器。在客户端对文件进行分片,上传至服务器。如图4所示,该文件分片断点续传方法可以包括以下步骤:
步骤S301,获取待上传文件的大小、用于上传文件的终端设备的线程总数、单个线程的上传速度和终端设备的网络上传速度。
步骤S302,当网络上传速度能够满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对待上传文件进行分片,分片的文件个数为终端设备的线程总数,得到至少两个分片文件;当网络上传速度不能满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对待上传文件进行分片,分片的文件个数为网络上传速度与单个线程的上传速度的比值,得到至少两个分片文件。
其中,步骤S301和步骤S302与上述步骤S101和步骤S102的内容型相同,可参考步骤S101和步骤S102的描述,在此不再赘述。
步骤S303,对每个分片文件添加唯一标识,并生成分片文件标识信息表,将分片文件标识信息表和各个添加唯一标识后的分片文件进行上传,以使文件接收端根据分片文件标识信息表依次对各个分片文件进行拼接。
本发明中,在终端设备通过通用唯一识别码(Universally Unique Identifier,UUID)的规则对每个分片文件添加唯一标识,将各个添加唯一标识后的分片文件进行上传,以使服务器端根据各个分片文件的唯一标识依次对各个分片文件进行拼接。
其中,通用唯一识别码(Universally Unique Identifier,UUID)用来识别属性类型,在所有空间和时间上被视为唯一标识,可以保证这个值是真正唯一的,任何地方产生的任意一个通用唯一识别码都不会有相同的值。
例如,基于名字的通用唯一识别码通过计算名字和名字空间的信息摘要加密(MD5)散列值得到。这个版本的通用唯一识别码保证了相同名字空间中不同名字生成的通用唯一识别码的唯一性,不同名字空间中的通用唯一识别码的唯一性,相同名字空间中相同名字的通用唯一识别码重复生成是相同的。
本发明中,通用唯一识别码(Universally Unique Identifier,UUID)的规则对每个分片文件生成唯一标识,并将所有分片文件的唯一标识存入同一个文档中,生成分片文件标识信息表,将分片文件标识信息表和各个添加唯一标识后的分片文件进行上传,服务器端根据分片文件标识信息表依次对各个分片文件进行拼接。
步骤S304,将分片文件上传。
其中,步骤S304与上述步骤S103的内容相同,可参考步骤S103的描述,在此不在赘述。
本发明的实施例相较于实施例一,增加了对每个分片文件添加唯一标识,并生成分片文件标识信息表,将分片文件标识信息表和各个添加唯一标识后的分片文件进行上传,以使文件接收端根据分片文件标识信息表依次对各个分片文件进行拼接的步骤,服务器可根据分片文件标识信息表对分片文件进行拼接,分片文件信息表记录各个分片文件的唯一标识,从而保证分片文件拼接的完整性。
对应于上文实施例的文件分片断点续传方法,图5示出了本发明实施例四提供的文件分片断点续传装置的结构框图,上述文件分片断点续传装置应用于终端设备,对应的终端设备通过网络连接服务器,在终端设备对文件进行分片,上传至服务器。为了便于说明,仅示出了与本发明实施例相关的部分。
参见图5,该文件分片断点续传装置包括:
参数获取模块41,用于获取待上传文件的大小、用于上传文件的终端设备的线程总数、单个线程的上传速度和终端设备的网络上传速度;
文件分片模块42,用于计算待上传文件分片的文件个数,当网络上传速度能够满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对待上传文件进行分片,分片的文件个数为终端设备的线程总数,得到至少两个分片文件;
当所述网络上传速度不能满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对待上传文件进行分片,分片的文件个数为网络上传速度与单个线程的上传速度的比值,得到至少两个分片文件;
上传模块43,用于将各个分片文件上传。
可选的是,上述文件分片断点续传装置还包括:
信息添加模块,用于对待上传文件添加文字介绍和自定义主题,文字介绍为待上传文件内容的详细描述,自定义主题包括用户自定义的文件类别、所属领域;
可选的是,上述文件分片断点续传装置还包括:
分片判断模块,用于根据用户设定的文件大小阈值判断是否执行文件分片任务;
可选的是,上述文件分片断点续传装置还包括:
分片文件续传模块,用于当分片文件的上传过程中检测到上传任务被终止,且未保存已上传分片文件,向文件接收端发送删除指令,以使已上传的分片文件和文件上传记录从文件接收端中删除;
可选的是,上述文件分片断点续传装置还包括:
文件标识添加模块,用于对每个分片文件添加唯一标识,将各个添加唯一标识后的分片文件进行上传,以使文件接收端根据各个分片文件的唯一标识依次对各个分片文件进行拼接,还用于对每个分片文件添加唯一标识,并生成分片文件标识信息表,将分片文件标识信息表和各个添加唯一标识后的分片文件进行上传,以使文件接收端根据分片文件标识信息表依次对各个分片文件进行拼接。
可选的是,上述参数获取模块41包括:
文件大小参数获取模块,用于获取待上传文件的大小;
终端设备参数获取模块,用于获取终端设备的线程总数、单个线程的上传速度和终端设备的网络上传速度。
可选的是,上述文件分片模块42包括:
文件计算模块,用于计算待上传文件分片的个数;
分片执行模块,用于根据计算好的分片文件个数对待上传文件进行分片。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
图6为本发明实施例五提供的一种终端设备的结构示意图。如图6所示,该实施例的终端设备包括:至少一个处理器(图6中仅示出一个)、存储器以及存储在存储器中并可在至少一个处理器上运行的计算机程序,处理器执行计算机程序时实现上述任意各个文件分片断点续传方法实施例中的步骤。
该终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图6仅仅是终端设备的举例,并不构成对终端设备的限定,终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括网络接口、显示屏和输入装置等。
所称处理器可以是CPU,该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器包括可读存储介质、内存储器等,其中,内存储器可以是终端设备的内存,内存储器为可读存储介质中的操作系统和计算机可读指令的运行提供环境。可读存储介质可以是终端设备的硬盘,在另一些实施例中也可以是终端设备的外部存储设备,例如,终端设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器还可以既包括终端设备的内部存储单元也包括外部存储设备。存储器用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,该其他程序如计算机程序的程序代码等。存储器还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述方法实施例的步骤。
其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
本发明实现上述实施例方法中的全部或部分流程,也可以通过一种计算机程序产品来完成,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述方法实施例中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种文件分片断点续传方法,所述方法包括:
获取待上传文件的大小、用于上传文件的终端设备的线程总数、单个线程的上传速度和终端设备的网络上传速度;
当所述网络上传速度能够满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对所述待上传文件进行分片,分片的文件个数为所述终端设备的线程总数,得到至少两个分片文件;
当所述网络上传速度不能满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对所述待上传文件进行分片,分片的文件个数为所述网络上传速度与所述单个线程的上传速度的比值,得到至少两个分片文件;
将各个所述分片文件上传。
2.根据权利要求1所述的文件分片断点续传方法,其特征在于,对所述待上传文件进行分片之前,所述方法还包括:对待上传文件添加文字介绍和自定义主题,所述文字介绍为所述待上传文件内容的详细描述,所述自定义主题包括用户自定义的文件类别、所属领域。
3.根据权利要求1所述的文件分片断点续传方法,其特征在于,所述待上传文件进行分片之前,所述方法还包括:根据用户设定的文件大小阈值判断是否执行文件分片任务;
当所述待上传文件的大小小于所述文件大小阈值时,不执行分片任务;
当待上传文件的大小大于或等于所述文件大小阈值时,执行分片任务。
4.根据权利要求1所述的文件分片断点续传方法,其特征在于,所述将各个所述分片文件上传包括:
当分片文件的上传过程中检测到上传任务被终止,且未保存已上传分片文件,向文件接收端发送删除指令,以使已上传的分片文件和文件上传记录从所述文件接收端中删除。
5.根据权利要求1所述的文件分片断点续传方法,其特征在于,所述方法还包括:对每个分片文件添加唯一标识,将各个添加唯一标识后的分片文件进行上传,以使文件接收端根据各个所述分片文件的唯一标识依次对各个所述分片文件进行拼接。
6.根据权利要求1所述的文件分片断点续传方法,其特征在于,所述方法还包括:对每个分片文件添加唯一标识,并生成分片文件标识信息表,将所述分片文件标识信息表和各个添加唯一标识后的所述分片文件进行上传,以使文件接收端根据所述分片文件标识信息表依次对各个所述分片文件进行拼接。
7.根据权利要求2所述的文件分片断点续传方法,其特征在于,所述将所述分片文件上传包括:
将各个所述分片文件上传至文件接收端,所述文件接收端用于接收各个所述分片文件,并对各个所述分片文件进行拼接,检测拼接后的文件完整程度,当检测到所述文件完整程度为百分之百时,则对所述拼接后的文件添加所述文字介绍和所述自定义主题,并生成完整文件。
8.一种文件分片断点续传装置,其特征在于,所述文件分片断点续传装置包括:
参数获取模块,用于获取待上传文件的大小、用于上传文件的终端设备的线程总数、单个线程的上传速度和终端设备的网络上传速度;
文件分片模块,用于计算待上传文件分片的文件个数,当所述网络上传速度能够满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对所述待上传文件进行分片,分片的文件个数为所述终端设备的线程总数,得到至少两个分片文件;
当所述网络上传速度不能满足终端设备所有线程同时执行上传任务所需要的网络上传速度时,对所述待上传文件进行分片,分片的文件个数为所述网络上传速度与所述单个线程的上传速度的比值,得到至少两个分片文件;
上传模块,用于将各个所述分片文件上传。
9.一种终端设备,其特征在于,所述终端设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的文件分片断点续传方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述文件分片断点续传方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210282754.5A CN114629895B (zh) | 2022-03-22 | 2022-03-22 | 一种文件分片断点续传方法、装置、终端设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210282754.5A CN114629895B (zh) | 2022-03-22 | 2022-03-22 | 一种文件分片断点续传方法、装置、终端设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114629895A CN114629895A (zh) | 2022-06-14 |
CN114629895B true CN114629895B (zh) | 2023-10-13 |
Family
ID=81904837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210282754.5A Active CN114629895B (zh) | 2022-03-22 | 2022-03-22 | 一种文件分片断点续传方法、装置、终端设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114629895B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9081611B1 (en) * | 2012-05-23 | 2015-07-14 | Emc Corporation | System for iteratively identifying available next higher priority tracks when identified track matching the task's native track priority is unavailable |
CN107786583A (zh) * | 2016-08-24 | 2018-03-09 | 中兴通讯股份有限公司 | 一种文件下载方法及装置 |
CN109040230A (zh) * | 2018-07-31 | 2018-12-18 | 优视科技新加坡有限公司 | 文件的下载方法、装置、设备/终端/服务器及存储介质 |
-
2022
- 2022-03-22 CN CN202210282754.5A patent/CN114629895B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9081611B1 (en) * | 2012-05-23 | 2015-07-14 | Emc Corporation | System for iteratively identifying available next higher priority tracks when identified track matching the task's native track priority is unavailable |
CN107786583A (zh) * | 2016-08-24 | 2018-03-09 | 中兴通讯股份有限公司 | 一种文件下载方法及装置 |
CN109040230A (zh) * | 2018-07-31 | 2018-12-18 | 优视科技新加坡有限公司 | 文件的下载方法、装置、设备/终端/服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114629895A (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254733B (zh) | 用于存储数据的方法、装置和系统 | |
US9552382B2 (en) | Reference counter integrity checking | |
CN111414334A (zh) | 基于云技术的文件分片上传方法、装置、设备及存储介质 | |
CN110493342B (zh) | 文件传输方法、装置、电子设备及可读存储介质 | |
CN111935227A (zh) | 通过浏览器上传文件的方法、浏览器和电子设备 | |
CN109885577B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN111611622A (zh) | 基于区块链的文件存储方法和电子设备 | |
CN105204964A (zh) | 基于云盘的数据备份方法及装置 | |
CN112738249B (zh) | 基于量化交易的文件上传方法、装置、设备及存储介质 | |
CN111694703A (zh) | 缓存区管理方法、装置和计算机设备 | |
CN112436943B (zh) | 基于大数据的请求去重方法、装置、设备及存储介质 | |
CN114629895B (zh) | 一种文件分片断点续传方法、装置、终端设备及介质 | |
CN112182112A (zh) | 基于区块链的分布式数据动态存储方法和电子设备 | |
EP3598738A1 (en) | Video synthesis method, apparatus and device, and video playing method, apparatus and device | |
CN112416875B (zh) | 日志管理方法、装置、计算机设备及存储介质 | |
CN112597119A (zh) | 一种处理日志的生成方法、装置及存储介质 | |
CN113791735A (zh) | 视频数据存储方法、装置、计算机设备及存储介质 | |
CN110413800B (zh) | 一种提供小说信息的方法与设备 | |
CN110795408A (zh) | 基于对象存储的数据处理方法、装置、服务器和存储介质 | |
CN112068925A (zh) | 一种基于WebUploader组件的文件上传方法、装置、电子设备和可读存储介质 | |
CN109547864B (zh) | 媒体数据处理方法和装置 | |
CN111858497A (zh) | 一种存储类型转换方法、装置及设备 | |
CN113032820A (zh) | 文件存储方法、访问方法、装置、设备及存储介质 | |
CN111124365A (zh) | Rpa需求收集的方法和装置 | |
CN103699666A (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 |