CN113992651B - 一种基于文件传输协议ftp的下载方法和相关产品 - Google Patents
一种基于文件传输协议ftp的下载方法和相关产品 Download PDFInfo
- Publication number
- CN113992651B CN113992651B CN202111122921.1A CN202111122921A CN113992651B CN 113992651 B CN113992651 B CN 113992651B CN 202111122921 A CN202111122921 A CN 202111122921A CN 113992651 B CN113992651 B CN 113992651B
- Authority
- CN
- China
- Prior art keywords
- data
- buffer
- downloaded
- data amount
- downloading
- 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
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000012546 transfer Methods 0.000 title claims abstract description 31
- 239000000872 buffer Substances 0.000 claims description 151
- 230000005540 biological transmission Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 230000003993 interaction Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种基于文件传输协议FTP的下载方法和相关产品,该方法通过确定待下载的目标数据的数据量,上述目标数据的数据量大于上述终端的第一缓存区的缓存大小;下载上述目标数据,在下载上述目标数据的过程中确定未下载的数据的数据量是否小于或等于第一阈值;在上述未下载的数据的数据量小于或等于第一阈值的情况下,将上述未下载的数据缓存至上述第一缓存区,在保证数据链路不掉线的情况下,保证了下载数据的完整性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种文件传输协议(file transferprotocol,FTP)的下载方法和相关产品。
背景技术
随着物联网和云服务的发展,FTP越来越多的集成到移动设备上。FTP是传输控制协议(transmission control protocol,TCP)/互联网协议(internet protocol,IP)协议组中的协议之一,FTP包括FTP客户端和FTP服务器。其中FTP服务器用于存储文件,用户可以通过使用FTP客户端的FTP协议,访问位于FTP服务器上的资源。
FTP服务器传输效率高,一般用于传输大文件。但是大多移动设备内存较小,无法一次性传输全部文件,因此需要采取一种慢速长连接的下载方式,边传输边处理文件。
然而FTP服务器在文件传输到末尾时,传输速度过慢,会导致FTP服务器主动断开数据链路,终端上的客户端无法读取剩余数据,造成数据丢失。
发明内容
本申请实施例公开了一种基于文件传输协议FTP的下载方法和相关产品,能够保证下载整个文件数据链路不掉线,保证下载数据的完整性。
第一方面,本申请实施例提供了一种基于文件传输协议FTP的下载方法,该方法包括:确定待下载的目标数据的数据量,上述目标数据的数据量大于上述终端的第一缓存区的缓存大小;下载上述目标数据,在下载上述目标数据的过程中确定未下载的数据的数据量是否小于或等于第一阈值;在上述未下载的数据的数据量小于或等于第一阈值的情况下,将上述未下载的数据缓存至上述第一缓存区。
本申请实施例中,根据目标数据的数据量以及第一缓存区的缓存大小可以有效确定出终端未下载的数据的数据量。由于FTP服务器发送数据的速度和终端处理数据的速度不匹配,当FTP服务器将数据发送完成后,会与位于上述终端上的客户端断开链路连接,此时若上述终端未将全部数据下载完成,数据链路层的数据将会丢失。在上述未下载的数据的数据量小于或等于第一阈值情况下,说明上述未下载的数据为文件的末尾数据。文件的末尾数据缓存在第一缓存区中,需要处理时从第一缓存区读取,可以防止文件传输到末尾时,传输速度过慢,导致服务器主动断开数据链路,终端上的客户端无法读取数据链路上的剩余数据,造成数据丢失,可以保证数据的完整性。
在第一方面的一个可能的实施方式中,在上述未下载的数据的数据量大于上述第一阈值的情况下,将上述未下载的部分数据缓存至第二缓存区。
在上述实施方式中,示例性的,上述将上述未下载的部分缓存至第二缓存区之前,通过判断第二缓存区的缓存大小与第二缓存区中的数据的数据量的关系判断第二缓存区是否有剩余空间,在第二缓存区有剩余空间的情况下,将上述未下载的部分数据缓存至第二缓存区。在终端资源不紧张的情况下,增加上述第二缓存用于存储上述未下载的部分数据,使得终端在处理数据时,可以先判断数据是否在缓存区中,提高了下载数据的速度,可以有效控制数据下载,提高下载效率。
本申请实施例中,在未下载的数据的数据量还较大时,通过将部分未下载的数据缓存至第二缓存区,可以有效的控制上述终端下载数据的速度;由此,可以提高下载速率。
在第一方面的一个可能的实施方式中,在上述第二缓存区有可用缓存的情况下,将缓存在上述第一缓存区中的上述未下载的数据中的部分数据或全部数据拷贝至上述第二缓存区;删除缓存在上述第一缓存区中的上述未下载的数据中的部分或全部。
在第一方面的一个可能的实施方式中,根据第一数据量,第二数据量与第二阈值确定上述第一缓存区的缓存大小,上述第一数据量为上述终端可用于保存数据的数据量,上述第二数据量为上述终端单次处理的数据的数据量,上述第二阈值为传输控制协议TCP默认阈值。
本申请实施例中,上述终端通过第一数据量,第二数据量与第二阈值确定上述第一缓存区的缓存大小,向系统申请内存,可以根据数据传输的情况计算缓存,有效的节省系统资源。
在第一方面的一个可能的实施方式中,在上述第一数据量减去第二数据量大于或等于上述第二阈值的情况下,确定上述第一缓存区的缓存大小为上述第一阈值;或者,在上述第一数据量减去上述第二数据量小于上述第二阈值的情况下,确实能够上述第一缓存区的缓存大小为上述第一数据量减去上述第二数据量。
在上述实施方式中,上述第一阈值控制上述终端数据传输的传输量,根据终端处理数据的不同情况对第一缓存区的缓存大小进行调整,可以避免资源浪费,节省系统资源。
在第一方面的一个可能的实施方式中,确定上述第二缓存区的缓存大小为上述第二数据量。
第二方面,本申请实时例提供了一种基于文件传输协议FTP的下载装置,包括:
第一确定单元,用于确定待下载的目标数据的数据量;下载单元,用于下载上述目标数据;第二确定单元,用于确定未下载的数据的数据量是否小于或等于第一阈值;缓存单元,用于将上述未下载的数据缓存至上述第一缓存区。
在第二方面的一种可能的实施方式中,上述第二确定单元还用于将上述未下载的部分数据缓存至第二缓存区。
在第二方面的一种可能的实施方式中,上述缓存单元还用于将缓存在上述第一缓存区中的上述未下载的数据中的部分或全部拷贝至上述第二缓存区;删除上述在上述第一缓存区中的上述未下载的数据中的部分或全部。
在第二方面的一种可能的实施方式中,上述第一确定单元,具体用于根据第一数据量,第二数据量与第二阈值确定第一缓存区的缓存大小。
应理解,上述第一数据量为上述终端可用于保存数据的数据量,上述第二数据量为上述终端单次处理的数据的数据量,上述第二阈值为传输控制协议TCP默认阈值。
在第二方面的一种可能的实施方式中,上述第一确定单元,具体用于确定第一缓存区的缓存大小为上述第一阈值;或者,确定上述第一缓存区的缓存大小为上述第一数据量减去上述第二数据量。
在第二方面的一种可能的实施方式中,上述第一确定单元还用于确定上述第二缓存区的缓存大小为上述第二阈值。
第三方面,本申请实施例提供了一种终端,包括:存储器,用于存储计算机程序或指令;处理器,用于执行上述存储器存储的上述计算机程序或指令,上述计算机程序或指令被执行时如第一方面或者第一方面的任意一种可能的实施方式中的方法被执行。
第四方面,本申请实施例提供了一种计算机可读存储介质,上述计算机存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令被执行时如第一方面或者第一方面的任意一种可能的实施方式中的方法被执行。
第五方面,本申请实施例提供了一种包含指令的计算机程序,当上述计算机程序在计算机上运行时,使得该计算机执行如第一方面或者第一方面的任意一种可能的实施方式中的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图作简单的介绍。
图1为一种基于文件传输协议FTP的下载方法示意图;
图2为本申请实施例提供的基于文件传输协议FTP的下载方法的流程图;
图3为本申请实施例提供的另一种基于文件传输协议FTP的下载方法的流程图;
图4为本申请实施例提供的另一种基于文件传输协议FTP的下载方法的流程图;
图5a为本申请实施例提供的一种情况下的下载方式;
图5b为本申请实施例提供的另一种情况下的下载方式;
图6为本申请实施例提供的一种基于文件传输协议FTP的下载装置示意图;
图7为本申请实施例提供的一种终端的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地描述。
本申请的说明书、权利要求书及附图中的术语“第一”和“第二”等仅用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备等,没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元等,或可选地还包括对于这些过程、方法、产品或设备等固有的其它步骤或单元。
在本文中提及的“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”。
本申请实施例提供了一种基于文件传输协议FTP的下载方法和相关产品,为了更清楚地描述本申请的方案,下面先介绍一些与本方案有关的知识。
FTP:文件传输协议FTP是TCP/IP协议组中的协议之一,用于因特网上的控制文件的双向传输。同时,它也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,但这些应用程序都遵守同一种协议传输文件。FTP协议包括FTP客户端与FTP服务器,FTP客户端可以用来访问位于FTP服务器上的资源,FTP服务器用来存储文件。由于FTP传输效率非常高,在网上一般用来传输大的文件。在FTP协议中,有两个经常用到的概念,“下载”和“上传”。下载文件是指将位于FTP服务器上的文件拷贝至客户端的主机里,上传文件是指将位于客户端主机的文件通过FTP协议拷贝至FTP服务器的主机里。
一般的,FTP客户端是运行在终端上的,因此,本申请提供的方法适用于终端,也适用于FTP客户端。为便于描述,下文将以终端为例说明本申请实施例提供的方法。
下面结合本申请实例中的附图对本申请实施例进行描述。
首先参阅图1,图1为一种基于文件传输协议FTP的下载方法示意图。如图1所示,FTP客户端申请一个缓存,用来缓存所有下载的数据,每次FTP数据链路下载的数据先保存到缓存区,缓存区满了之后就暂停从数据链路读取数据,当缓存区有空间后,再继续读取数据。基于上述图1提供的基于文件传输协议FTP的下载方法,由于文件下载过程中,终端处理数据的速度与FTP服务器发送数据的速度不匹配,在文件下载到末尾时,速度下载过慢,导致FTP服务器主动断开数据链路,数据链路上的数据丢失,客户端无法读取剩余的数据。
针对上述基于文件传输协议FTP的下载方法存在的问题,本申请根据终端的下载情况,申请一个缓存区,用于缓存文件末尾的数据,保证文件传输到末尾时,FTP服务器不会由于下载速度慢断开连接,保证了下载速度的完整性,接下来请参阅图2。
图2为本申请实施例提供的基于文件传输协议FTP的下载方法的流程图,如图2所示,该方法包括但不限于以下步骤:
201、确定待下载的目标数据的数据量,上述目标数据的数据量大于上述终端的第一缓存区的缓存大小。
示例性的,确定待下载的目标数据的数据量可以有如下方法:
方法1、从FTP服务器获取指令,该指令用于指示目标数据的数据量;根据指令确定。
方法2、根据终端的内存大小,数据传输的情况,预先设置目标数据的数据量。
上述终端可以是电脑、手机、平板、可穿戴设备等具备存储功能和通讯功能的终端。应理解,上述第一缓存区的缓存大小可以根据终端处理数据的能力及可分配的内存进行计算,并由位于上述终端的FTP客户端向系统进行申请。一般的,上述第一缓存区的缓存大小大于或等于上述终端单次可以处理的数据的数据量。
202、下载上述目标数据,在下载上述目标数据的过程中确定未下载的数据的数据量是否小于或等于第一阈值。
上述第一阈值用于表示数据链路TCP窗口的大小,主要用于控制下载过程中的数据流量。应理解上述第一阈值等于上述第一缓存区的大小,在上述第一缓存区的缓存大小发生变化时,上述第一阈值也随之发生变化。应理解,上述数据量小于或等于第一阈值的数据为上述目标数据的末尾数据。通过确定未下载的数据的数据量是否小于或等于第一阈值,可以获得上述目标数据的末尾数据,对上述目标数据的末尾数据进行特殊处理。
203、在上述未下载的数据的数据量小于或等于上述第一阈值的情况下,将上述未下载的数据缓存至上述第一缓存区。
应理解,在上述未下载的数据的数据量小于或等于上述第一阈值的情况下,将上述未下载的数据缓存至上述第一缓存区,在上述未下载的数据的数据量大于上述第一阈值的情况下,可以直接等待终端进行处理,也可以将上述未下载的数据缓存到其他缓存区,再等待终端进行处理,对此,本申请不作限制。将上述目标数据的末尾数据缓存至上述第一缓存区,可以避免末尾数据在下载过程中,由于服务器断开连接,造成数据丢失。
本申请实施例提供的方法,增加了一个缓存区用于缓存目标数据的末尾数据,避免在文件下载到末尾时,由于终端处理数据的速度小于FTP发送数据的速度,导致下载速度过慢,FTP服务器在将数据发送完成后,与客户端断开链路连接,出现客户端未下载完全部数据的问题。将上述目标数据的末尾数据缓存在缓存区中,终端从缓存区中读取数据,防止末尾数据的丢失,在有效节省系统资源的情况下,保证了数据的完整性。
图3为本申请实施例提供的另一种基于文件传输协议FTP的下载方法的流程图,如图3所示,该方法包括但不限于:
在一种可能的实现方式中,图3所示的方法包括步骤301和步骤302。
301、确定第二缓存区的缓存大小为上述第二数据量。
应理解,上述第二数据量为上述终端单次处理的数据的数据量,根据不同终端的性能参数有所变化。示例性的,本申请实施方式中第二缓存区的缓存对齐方式可以为四字对齐,本申请对此不作限制。
302、根据第一数据量,第二数据量与第二阈值确定第一缓存区大小。
上述第一数据量为终端可用于保存数据的数据量,上述第二阈值为传输控制协议TCP默认阈值。上述根据第一数据量,第二数据量与第二阈值确定上述第一缓存区的缓存大小,可以包括根据第一数据量与第二数据量的差值与第二阈值的关系,确定第一缓存区可以申请的缓存大小。
在第一数据量减去上述第二数据量大于或等于上述第二阈值的情况下,确定上述第一缓存区的缓存大小为上述第二阈值。
应理解,上述第二阈值表示数据链路层的默认窗口大小,用于控制在下载过程中数据链路层的数据流量。上述第一数据量减去上述第二数据量,用于表示上述终端可提供的除去分配给第二缓存区的内存,所剩的内存大小。上述所剩的内存大小大于FTP默认窗口大小说明上述终端可提供的内存较大,为了避免资源浪费,可以将第一缓存区的缓存大小设置为第二阈值。本申请实施方式中第一缓存区的缓存对齐方式可以为四字对齐,本申请对此不作限制。
在上述第一数据量减去第二数据量小于上述第二阈值的情况下,确定上述第一缓存区的缓存大小为上述第一数据量减去上述第二数据量。
应理解,上述第一数据量减去上述第二数据量,用于表示上述终端可提供的除去分配给第二缓存区的内存,所剩的内存大小。上述所剩的内存大小小于FTP默认窗口大小说明上述终端可提供的内存相对于窗口较小,此时,为保证资源的最大利用,可以将上述第一缓存区的缓存大小设定为上述第一数据量减去上述第二数据量。应理解,由于第一缓存区的大小应大于数据链路层窗口大小,所以可以将上述数据链路层的窗口大小调整为上述第一数据量减去上述第二数据量。
303、确定待下载的目标数据的数据量。
一般的,上述目标数据用于表示待下载文件的数据,在上述终端通过与服务器进行控制命令的交互启动下载之后,上述待下载文件的数据由服务器通过数据链路的TCP通道发送给终端。应理解,上述目标数据的数据量大于上述终端的第一缓存区的缓存大小。
可理解,关于步骤303的具体说明可以参考图2所示的步骤201,这里不再一一详述。
304、下载上述目标数据,在下载上述目标数据的过程中,确定未下载的数据的数据量是否小于或等于第一阈值。
上述未下载的数据为上述目标数据减去已被上述终端处理的数据,再减去已经缓存在第二缓存区的数据。
可理解,关于步骤304的具体说明可以参考图2所示的步骤202,这里不再一一详述。
305、在上述未下载的数据的数据量小于或等于上述第一阈值的情况下,将上述未下载的数据缓存至第一缓存区。
可理解,关于步骤305的具体说明可以参考图2所示的步骤203,这里不再一一详述。
在一种可能的实现方式中,图3所示的方法还包括步骤306和步骤307。
306、在上述未下载的数据的数据量大于上述第一阈值的情况下,将上述未下载的部分数据缓存至第二缓存区。
示例性的,上述将上述未下载的部分缓存至第二缓存区之前,通过判断第二缓存区的缓存大小与第二缓存区中的数据的数据量的关系判断第二缓存区是否有剩余空间,在第二缓存区有剩余空间的情况下,将上述未下载的部分数据缓存至第二缓存区。
307、在上述第二缓存区有可用缓存的情况下,将缓存在上述第一缓存区中的上述未下载的数据中的部分或全部拷贝至上述第二缓存区;删除缓存在上述第一缓存区中的上述未下载的数据中的部分或全部。
本申请实施例实现了一种基于文件传输协议FTP的下载方法。通过使用两个缓存区缓存下载数据,减少了反复建立连接产生的流量浪费,避免了服务器由于下载速度过慢,断开连接,导致数据丢失的问题,保证了数据的完整性。
图4为本申请实施例提供的另一种基于文件传输协议FTP的下载方法的流程图,如图所示,S表示下载文件的数据大小,o表示已经被终端处理的数据的总长度,m表示第二缓存区C1中的缓存大小,n为第一缓存区C2中缓存数据的长度,M表示C1缓存区的缓存大小,N表示C2缓存区的大小,W表示窗口大小,A表示终端系统可供申请的内存,B表示单次可处理的最大长度,该方法包括但不限于:
401、判断S-o-m>W。
通过S减去o再减去m是否大于W可以判断C2是否可以存下剩余未被读取的文件内容,S减去o再减去m表示未下载的数据。如果S-o-m>W,说明C2不可以存下剩余未被读取的文件内容,则执行步骤402,如果S-o-m<W或者如S-o-m=W则说明C2可以存下剩余未被读取的文件内容,则执行步骤404。应理解,在上述判断S-o-m>W之前,上述终端通过控制命令的交互启动下载,此时FTP服务器将要下载的文件通过数据链路的TCP通道发送给终端。可理解,关于步骤401的具体说明还可以参考图2所示的步骤202,这里不再一一详述。
402、判断M>m。
在C2不可以存下剩余未被读取的文件内容的情况下,直接通过M是否大于m来判断C1是否还有剩余空间,如果M>m,则说明在C1中缓存数据的长度小于C1缓存区的大小,C1有剩余空间,则执行步骤403,如果M=m,则说明在C1中缓存数据的长度等于C1缓存区的大小,C1没有剩余空间,则执行步骤407。在A-B>=C的情况下,上述C2的长度N=C,在A-B<C时,上述C2的长度N=A-B,这里A需要大于2B。上述C1缓存区的大小M=B。应理解,上述C1缓存区和C2缓存区的对齐方式可以为四字节对齐,本实施例对此不作限定。
403、读取数据链路的数据到C1剩余缓存区。
在C1还有剩余空间的情况下,读取数据链路的数据到C1剩余空间,同时m增加拷贝的长度大小。可理解,关于步骤403的具体说明还可以参考图3所示的步骤306,这里不再一一详述。
404、读取数据链路的数据到C2。
在C2可以存下剩余未被读取的文件内容的情况下,读取数据链路的数据到C2暂存,C2中内容长度的变量n增加相应的数值,然后执行步骤405。C2暂存这些数据是用以保证这些数据不会因为FTP服务器因超时而断开连接而丢失。可理解,关于步骤404的具体说明还可以参考图3所示的步骤305,这里不再一一详述。
405、判断M>m。
通过M是否大于m来判断C1是否还有剩余空间,如果M>m有剩余空间,则执行步骤406,如果M<m或M=m没有剩余空间,则执行步骤407。可理解,上述步骤405的具体说明可以参考步骤402,这里不再一一详述。
406、拷贝C2的数据到C1剩余缓存区。
在C1还有剩余空间的情况下,拷贝C2的数据到C1剩余空间,同时m增加拷贝的长度大小,n减去相同的数值,上述C2的数据可以为缓存在C2中的全部数据,也可以为缓存在C2中的部分数据,本方案对此不作限定。可理解,关于步骤406的具体说明还可以参考图3所示的步骤307,这里不再一一详述。
407、判断终端是否要处理C1中的数据。
判断终端是否要处理C1中的数据,如果是,则执行步骤408,如果否,则跳回开始阶段继续上面的流程。
408、读取C1数据进行处理。
在终端处理C1中的数据的情况下,终端可以取出C1里指定长度的数据进行处理,已处理的数据的数据量变量增加相应的数值,m减去相等的数值。
409、判断S==o。
判断是否全部数据已经处理完毕,如果处理完毕则释放内存结束流程;如果尚未完成则跳回开始阶段继续上面的流程。
本申请实施例实现了一种基于文件传输协议FTP的下载方法。通过增加用于存储文件末尾数据的缓存区,反复建立连接产生的流量浪费,避免了文件在FTP协议上下载到末尾时,出现由于下载速度慢,FTP服务器断开连接,数据丢失的问题。
由于数据传输的情况不同,基于文件传输协议FTP的下载方方法有所变化,接下来,以图5a为例,对下载方式进行介绍。
请参阅图5a,图5a为本申请实施例提供的一种情况下的下载方式。如图5a所示例的情况,FTP客户端申请两个缓存区,这两个缓存区的大小是根据系统提供的资源的多少进行计算得来的,每次FTP数据链路下载的数据先保存到缓存区C1(第二缓存区)中,缓存区C1满了之后就暂停从数据链路读取数据,当缓存区C1有空间了,再继续读取数据,以此往复当文件下载到剩余的未读取数据少于等于数据链路窗口的大小的时候,继续读取数据,将这些数据存到缓存区C2(第一缓存区)。当缓存区C1有空间了,就从缓存区C2拷贝数据到缓存区C1,以此往复,直到下载完成。在保证数据链路不掉线的情况下,有效的解决了丢数据的问题。
在终端可提供的资源紧缺的情况下,终端无法提供足够的缓存区空间,则减少缓存区的数量,保留缓存区C1,用于缓存文件末尾的数据,避免由于文件下载到末尾速度过慢,导致数据链路掉线,数据丢失的问题。具体请参阅图5b。
图5b为本申请实施例提供的另一种情况下的下载方式。如图5b所示例的情况,FTP申请一个缓存区C2,缓存区C2的大小根据系统提供的资源的多少计算得来的,每次FTP数据链路下载的数据直接通过终端进行处理,在上述终端可处理的数据已满的情况下,暂停从数据链路读取数据,当终端可以继续处理时,再继续读取数据,以此往复,当文件下载到剩余的未读数据少于等于数据链路窗口的大小的时候,将这些数据缓存到缓存区,在终端可以处理的情况下,处理数据,以此往复,直到下载完成。
图6为本申请实施例提供的一种基于文件传输协议FTP的下载装置示意图。如图6所示,该装置包括:
第一确定单元,用于确定待下载的目标数据的数据量;
下载单元,用于下载上述目标数据;
第二确定单元,用于确定未下载的数据的数据量是否小于或等于第一阈值;
缓存单元,用于将上述未下载的数据缓存至上述第一缓存区。
在一个可选的实现方式中,上述第二确定单元还用于将上述未下载的部分数据缓存至第二缓存区。
在一个可选的实现方式中,上述缓存单元还用于将缓存在上述第一缓存区中的上述未下载的数据中的部分或全部拷贝至上述第二缓存区;删除上述在上述第一缓存区中的上述未下载的数据中的部分或全部。
在一个可选的实现方式中,上述第一确定单元,用于根据第一数据量,第二数据量与第二阈值确定第一缓存区的缓存大小。
在一个可选的实现方式中,上述第一确定单元还用于确定上述第二缓存区的缓存大小为上述第二阈值。
应理解,以上基于文件传输协议FTP的下载装置的各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。
可理解,关于图6所示的各个单元的说明还可以参考上述方法实施例,这里不再一一详述。
图7为本申请实施例提供的一种终端的结构示意图。如图7所示,该终端70包括处理器701、存储器702和通信接口703;该处理器701、存储器702和通信接口703通过总线704相互连接。图7中的终端用于执行前述实施例中的基于文件传输协议FTP的下载方法。
存储器702包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmablereadonly memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CDROM),该存储器702用于相关指令及数据。通信接口703用于接收和发送数据。
处理器701可以是一个或多个CPU,在处理器701是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。具体的,处理器701可实现图6中第一确定单元的功能。
在本申请的实施例中提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被执行时实现前述实施例所提供的基于文件传输协议FTP的下载方法。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得该计算机执行前述实施例所提供的数据处理方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种基于文件传输协议FTP的下载方法,其特征在于,所述方法应用于通过FTP连接的终端,所述方法包括:
在第一数据量减去第二数据量大于或等于第二阈值的情况下,确定第一缓存区的缓存大小为所述第二阈值;或者,在所述第一数据量减去所述第二数据量小于所述第二阈值的情况下,确定所述第一缓存区的缓存大小为所述第一数据量减去所述第二数据量,所述第一数据量为所述终端可用于保存数据的数据量,所述第二数据量为所述终端单次处理的数据的数据量,所述第二阈值为传输控制协议TCP默认阈值;
确定待下载的目标数据的数据量,所述目标数据的数据量大于所述终端的所述第一缓存区的缓存大小;
下载所述目标数据,在下载所述目标数据的过程中确定未下载的数据的数据量是否小于或等于第一阈值;
在所述未下载的数据的数据量大于所述第一阈值的情况下,将所述未下载的部分数据缓存至第二缓存区,所述第二缓存区是与第一缓存区不同的缓存区;
在所述未下载的数据的数据量小于或等于所述第一阈值的情况下,将所述未下载的数据缓存至所述第一缓存区。
2.根据权利要求1所述的方法,其特征在于,所述将所述未下载的数据缓存至所述第一缓存区之后,所述方法还包括:
在所述第二缓存区有可用缓存的情况下,将缓存在所述第一缓存区中的所述未下载的数据中的部分或全部拷贝至所述第二缓存区;
删除缓存在所述第一缓存区中的所述未下载的数据中的部分或全部。
3.根据权利要求1或2所述的方法,其特征在于,所述确定待下载的目标数据的数据量之前,所述方法还包括:
确定所述第二缓存区的缓存大小为第二数据量,所述第二数据量为所述终端单次处理的数据的数据量。
4.一种基于文件传输协议FTP的下载装置,其特征在于,包括:
第一确定单元,用于在第一数据量减去第二数据量大于或等于第二阈值的情况下,确定第一缓存区的缓存大小为所述第二阈值;或者,在所述第一数据量减去所述第二数据量小于所述第二阈值的情况下,确定所述第一缓存区的缓存大小为所述第一数据量减去所述第二数据量,所述第一数据量为所述下载装置可用于保存数据的数据量,所述第二数据量为所述下载装置单次处理的数据的数据量,所述第二阈值为传输控制协议TCP默认阈值,以及确定待下载的目标数据的数据量,所述目标数据的数据量大于所述下载装置的所述第一缓存区大小;
下载单元,用于下载所述目标数据;
第二确定单元,用于在下载所述目标数据的过程中确定未下载的数据的数据量是否小于或等于第一阈值;
所述第二确定单元还用于在所述未下载的数据的数据量大于所述第一阈值的情况下,将所述未下载的部分数据缓存至第二缓存区,所述第二缓存区是与第一缓存区不同的缓存区;
缓存单元,用于在所述未下载的数据的数据量小于或等于第一阈值的情况下,将所述未下载的数据缓存至所述第一缓存区。
5.根据权利要求4所述的装置,其特征在于,
所述缓存单元,还用于在所述第二缓存区有可用缓存的情况下,将缓存在所述第一缓存区中的所述未下载的数据中的部分或全部拷贝至所述第二缓存区;删除缓存在所述第一缓存区中的所述未下载的数据中的部分或全部。
6.根据权利要求4或5所述的装置,其特征在于,所述第一确定单元还用于确定所述第二缓存区的缓存大小为所述第二数据量,所述第二数据量为所述下载装置单次处理的数据的数据量。
7.一种终端,其特征在于,包括:
存储器,用于存储计算机程序或指令;
处理器,用于执行所述存储器存储的所述计算机程序或指令,以使得权利要求1至3中任意一项所述的方法被执行。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序被处理器执行时,权利要求1至3任意一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111122921.1A CN113992651B (zh) | 2021-09-24 | 2021-09-24 | 一种基于文件传输协议ftp的下载方法和相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111122921.1A CN113992651B (zh) | 2021-09-24 | 2021-09-24 | 一种基于文件传输协议ftp的下载方法和相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113992651A CN113992651A (zh) | 2022-01-28 |
CN113992651B true CN113992651B (zh) | 2024-05-14 |
Family
ID=79736522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111122921.1A Active CN113992651B (zh) | 2021-09-24 | 2021-09-24 | 一种基于文件传输协议ftp的下载方法和相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113992651B (zh) |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101982955A (zh) * | 2010-11-19 | 2011-03-02 | 深圳华大基因科技有限公司 | 高性能文件传输系统及方法 |
WO2015092491A1 (en) * | 2013-12-20 | 2015-06-25 | Pismo Labs Technology Limited | Methods and systems for transmitting and receiving packets |
CN105376801A (zh) * | 2014-08-25 | 2016-03-02 | 中兴通讯股份有限公司 | 一种上行数据传输的方法及终端 |
CN106951380A (zh) * | 2017-03-17 | 2017-07-14 | 山东浪潮商用系统有限公司 | 一种客户端、服务端、数据传输方法及系统 |
CN107333296A (zh) * | 2017-06-22 | 2017-11-07 | 北京佰才邦技术有限公司 | 一种数据传输方法、装置及基站 |
CN108965984A (zh) * | 2018-08-27 | 2018-12-07 | 优视科技新加坡有限公司 | 一种文件传输与播放的方法、装置和设备/终端/服务器 |
CN109040231A (zh) * | 2018-07-31 | 2018-12-18 | 优视科技新加坡有限公司 | 数据传输方法、装置、设备/终端/服务器及计算机可读存储介质 |
CN109756581A (zh) * | 2019-03-06 | 2019-05-14 | 珠海金山网络游戏科技有限公司 | 一种文件传输系统及方法、一种计算设备及存储介质 |
CN110120980A (zh) * | 2019-05-27 | 2019-08-13 | 牧星机器人(江苏)有限公司 | 非稳定链路的可靠文件传输方法、计算机设备及存储介质 |
CN110597452A (zh) * | 2018-06-13 | 2019-12-20 | 中国移动通信有限公司研究院 | 存储系统的数据处理方法及装置、存储服务器及存储介质 |
CN110708691A (zh) * | 2019-09-30 | 2020-01-17 | 联想(北京)有限公司 | 一种信息处理方法和电子设备 |
CN110784520A (zh) * | 2019-09-30 | 2020-02-11 | 北京字节跳动网络技术有限公司 | 文件下载方法、装置及电子设备 |
CN111211992A (zh) * | 2019-12-26 | 2020-05-29 | 南京领行科技股份有限公司 | 一种信息传输方法及装置 |
CN111294863A (zh) * | 2017-09-26 | 2020-06-16 | Oppo广东移动通信有限公司 | 用于数据处理的方法和终端设备 |
CN111614744A (zh) * | 2020-05-15 | 2020-09-01 | 武汉麦子科技有限公司 | 一种大文件下载传输方法 |
CN111683396A (zh) * | 2020-05-28 | 2020-09-18 | 为麦智能科技(天津)有限公司 | 信息处理方法、系统及电子设备 |
CN111835651A (zh) * | 2019-04-19 | 2020-10-27 | 上海哔哩哔哩科技有限公司 | 数据写入方法、系统、设备及计算机可读存储介质 |
CN112020078A (zh) * | 2019-05-28 | 2020-12-01 | 华为技术有限公司 | 数据传输方法以及装置 |
CN112162692A (zh) * | 2020-09-02 | 2021-01-01 | Oppo(重庆)智能科技有限公司 | 一种数据处理方法及终端、存储介质 |
CN113064553A (zh) * | 2021-04-02 | 2021-07-02 | 重庆紫光华山智安科技有限公司 | 数据存储方法、装置、设备及介质 |
CN113079152A (zh) * | 2021-03-26 | 2021-07-06 | 山东英信计算机技术有限公司 | 一种数据传输方法、装置及介质 |
CN113364887A (zh) * | 2021-06-30 | 2021-09-07 | 北京天空卫士网络安全技术有限公司 | 一种基于ftp的文件下载方法、代理服务器和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101755646B1 (ko) * | 2011-03-24 | 2017-07-10 | 삼성전자주식회사 | 안티-바이러스 유닛을 포함하는 데이터 저장 장치 및 그것의 동작 방법 |
US10460743B2 (en) * | 2017-01-05 | 2019-10-29 | Hallmark Cards, Incorporated | Low-power convenient system for capturing a sound |
-
2021
- 2021-09-24 CN CN202111122921.1A patent/CN113992651B/zh active Active
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101982955A (zh) * | 2010-11-19 | 2011-03-02 | 深圳华大基因科技有限公司 | 高性能文件传输系统及方法 |
WO2015092491A1 (en) * | 2013-12-20 | 2015-06-25 | Pismo Labs Technology Limited | Methods and systems for transmitting and receiving packets |
CN105376801A (zh) * | 2014-08-25 | 2016-03-02 | 中兴通讯股份有限公司 | 一种上行数据传输的方法及终端 |
CN106951380A (zh) * | 2017-03-17 | 2017-07-14 | 山东浪潮商用系统有限公司 | 一种客户端、服务端、数据传输方法及系统 |
CN107333296A (zh) * | 2017-06-22 | 2017-11-07 | 北京佰才邦技术有限公司 | 一种数据传输方法、装置及基站 |
CN111294863A (zh) * | 2017-09-26 | 2020-06-16 | Oppo广东移动通信有限公司 | 用于数据处理的方法和终端设备 |
CN110597452A (zh) * | 2018-06-13 | 2019-12-20 | 中国移动通信有限公司研究院 | 存储系统的数据处理方法及装置、存储服务器及存储介质 |
CN109040231A (zh) * | 2018-07-31 | 2018-12-18 | 优视科技新加坡有限公司 | 数据传输方法、装置、设备/终端/服务器及计算机可读存储介质 |
CN108965984A (zh) * | 2018-08-27 | 2018-12-07 | 优视科技新加坡有限公司 | 一种文件传输与播放的方法、装置和设备/终端/服务器 |
CN109756581A (zh) * | 2019-03-06 | 2019-05-14 | 珠海金山网络游戏科技有限公司 | 一种文件传输系统及方法、一种计算设备及存储介质 |
CN111835651A (zh) * | 2019-04-19 | 2020-10-27 | 上海哔哩哔哩科技有限公司 | 数据写入方法、系统、设备及计算机可读存储介质 |
CN110120980A (zh) * | 2019-05-27 | 2019-08-13 | 牧星机器人(江苏)有限公司 | 非稳定链路的可靠文件传输方法、计算机设备及存储介质 |
CN112020078A (zh) * | 2019-05-28 | 2020-12-01 | 华为技术有限公司 | 数据传输方法以及装置 |
CN110708691A (zh) * | 2019-09-30 | 2020-01-17 | 联想(北京)有限公司 | 一种信息处理方法和电子设备 |
CN110784520A (zh) * | 2019-09-30 | 2020-02-11 | 北京字节跳动网络技术有限公司 | 文件下载方法、装置及电子设备 |
CN111211992A (zh) * | 2019-12-26 | 2020-05-29 | 南京领行科技股份有限公司 | 一种信息传输方法及装置 |
CN111614744A (zh) * | 2020-05-15 | 2020-09-01 | 武汉麦子科技有限公司 | 一种大文件下载传输方法 |
CN111683396A (zh) * | 2020-05-28 | 2020-09-18 | 为麦智能科技(天津)有限公司 | 信息处理方法、系统及电子设备 |
CN112162692A (zh) * | 2020-09-02 | 2021-01-01 | Oppo(重庆)智能科技有限公司 | 一种数据处理方法及终端、存储介质 |
CN113079152A (zh) * | 2021-03-26 | 2021-07-06 | 山东英信计算机技术有限公司 | 一种数据传输方法、装置及介质 |
CN113064553A (zh) * | 2021-04-02 | 2021-07-02 | 重庆紫光华山智安科技有限公司 | 数据存储方法、装置、设备及介质 |
CN113364887A (zh) * | 2021-06-30 | 2021-09-07 | 北京天空卫士网络安全技术有限公司 | 一种基于ftp的文件下载方法、代理服务器和系统 |
Non-Patent Citations (2)
Title |
---|
"Performance of UMTS code sharing algorithms in the presence of mixed Web, email and FTP traffic";D.Calin等;《2005 IEEE 16th International Symposium on Personal, Indoor and Mobile Radio Communications》;全文 * |
"媒体文件网络远程传输效率的分析和提高";徐翔;《现代电视技术》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113992651A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107615212B (zh) | 用于控制数据传输的方法和系统 | |
JP3382953B2 (ja) | 有限メモリコンピュータシステム上におけるクライアント管理フロー制御方法及び装置 | |
US20030023745A1 (en) | Method and system for adaptively downloading data from a network device | |
US7680141B2 (en) | Transmitter device and relay device for performing data transmission control | |
CN110691127B (zh) | 数据获取控制系统、数据获取控制方法及相关装置 | |
CN110391873B (zh) | 用于确定数据传送方式的方法、装置以及计算机程序产品 | |
EP1316888A2 (en) | Memory card for an electronic device connectable to a remote data storage device | |
CN112822300B (zh) | 基于rdma的数据传输方法、装置及电子设备 | |
US10154116B1 (en) | Efficient synchronization of locally-available content | |
US10728291B1 (en) | Persistent duplex connections and communication protocol for content distribution | |
CN110213330B (zh) | 预推送系统、方法、装置、电子设备和计算机可读介质 | |
CN113992651B (zh) | 一种基于文件传输协议ftp的下载方法和相关产品 | |
US20060206699A1 (en) | Network boot system | |
CN112822299B (zh) | 基于rdma的数据传输方法、装置及电子设备 | |
CN112023395B (zh) | 云游戏加载方法、电子设备及计算机可读存储介质 | |
KR20220053386A (ko) | 효율적인 파일 전송을 위한 데이터 통신 방법 및 장치 | |
US8595318B2 (en) | Portable data carrier comprising a web server | |
US7464185B2 (en) | Method and apparatus for transfering data from a sending system to a receiving system, and program storage devices | |
CN101529855B (zh) | 在客户终端中管理存储器的方法、相应的信号、计算机程序和终端 | |
CN115766606A (zh) | 一种数据传输方法、装置、车载终端及存储介质 | |
CN109688085B (zh) | 传输控制协议代理方法、存储介质及服务器 | |
CN113542282A (zh) | 一种跨计算中心文件传输方法、装置、设备及存储介质 | |
KR20150048028A (ko) | 데이터 전송 관리 방법 | |
CN117729260B (zh) | 请求发送方法、客户端、电子设备及存储介质 | |
CN110311952B (zh) | 一种http限速方法和装置 |
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 |