CN101656751B - 加速上传与下载文件的方法及其系统 - Google Patents

加速上传与下载文件的方法及其系统 Download PDF

Info

Publication number
CN101656751B
CN101656751B CN2008101185300A CN200810118530A CN101656751B CN 101656751 B CN101656751 B CN 101656751B CN 2008101185300 A CN2008101185300 A CN 2008101185300A CN 200810118530 A CN200810118530 A CN 200810118530A CN 101656751 B CN101656751 B CN 101656751B
Authority
CN
China
Prior art keywords
server
file
client computer
data
buffer memory
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
Application number
CN2008101185300A
Other languages
English (en)
Other versions
CN101656751A (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.)
Caxa Technology Co Ltd
Original Assignee
Caxa 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 Caxa Technology Co Ltd filed Critical Caxa Technology Co Ltd
Priority to CN2008101185300A priority Critical patent/CN101656751B/zh
Publication of CN101656751A publication Critical patent/CN101656751A/zh
Application granted granted Critical
Publication of CN101656751B publication Critical patent/CN101656751B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

一种加速上传与下载文件的方法及其系统,包括:在一个或多个客户端的客户机中采用多线程技术、容错技术;以及在服务端的服务器中采用缓存存取技术。在每一个所述客户机处均对将要传输的文件进行分块然后都各自同时启动多个线程并发上传或下载这个或这些数据块且采用例如按时间和次数进行重试的容错技术。服务器根据每一个所述客户机的线程数来建立数据缓存及准备好大于线程数的数据块。客户机在上传或下载时就通知服务器的一个特定的线程来将所述缓存中的数据进一步写入到服务器的永久存储器或从其中读取出来。

Description

加速上传与下载文件的方法及其系统
技术领域
本发明总体涉及通信领域,更具体地,涉及计算机通信领域。
背景技术
对采用客户机/服务器体系结构的文件管理系统来说,服务器用来集中存储、管理文件,客户机通过与服务器通讯,实现文件的上传和下载。确保文件准确、快速的上传、下载是这类系统中比较关键的技术。
在目前所采用的传输技术中:
直接使用WINDOWS等操作系统或开发软件提供的文件传输函数进行文件传输:其优点是使用方便,开发工作量小;而缺点则是,可控性差,优化的余地小,且网络中断后需要重新传输。
使用FTP协议进行文件传输:优点是技术成熟,稳定;缺点是要求服务器实现为FTP服务器,无法很好地与其它应用进行集成。
直接使用Socket套接字进行文件传输:优点是灵活方便,能很好的实现开发者的意图;缺点是编程工作量大,优化难度高。普通的使用Socket套接字进行文件传输,没有经过优化处理。一次网络中断就会造成传输失败,需要从头重新开始传输。服务端接收到客户端请求后,对文件进行读或写操作,待完成后,给客户端返回消息,一次通讯完成。因此,服务端的服务器在客户端的客户机请求的时候,才去读取文件,在文件的传输过程中,有大量的空余时间闲置;并且,服务器接收到客户机的上传数据,写入文件后才返回,从而造成客户机等待。
使用多线程技术进行文件传输,是将文件分块,多个线程各自负责一些文件块,进行并发下载或上传。因为文件传输的主要瓶颈在于网络,多线程下载提高了网络带宽的利用率,进而提高了文件的传输速度。因为多线程传输需要服务器方的支持,目前应用在Ftp、Http等服务器的文件下载上,且对上传不支持。
发明内容
本发明所要解决的技术问题是:
1.对使用Socket套接字进行文件传输的方式进行优化,在服务端使用缓存技术,以减少在传输过程中的服务器和客户机对文件读写的等待;
2.在服务(器)端支持客户机使用多线程技术对文件进行下载甚或上传;
3.防止因传输过程的一些网络异常所造成的传输失败。
一种加速上传与下载文件的方法,其特征在于,在一个或多个客户端的客户机中采用多线程技术、容错技术;以及在服务端的服务器中采用缓存存取技术。
根据本发明方法的一个方面,进一步包括步骤:当所述一个或多个客户机与所述服务器连通后则在每一个所述客户机处均对将要传输的文件进行分块然后都各自同时启动多个线程并发上传或下载这个或这些数据块,其中,在所述下载中每一个所述客户机均是通过所述服务器来获知各自文件的大小的。
根据本发明方法的进一步方面,还包括步骤:使得当所述服务器收到从特定的客户机处所上传文件的数据块后就先将所述数据块放置到所述服务器的数据缓存中,并立即应答所述特定客户机,从而完成该客户机的一次通信并准备进行下一次数据传输。
根据本发明方法的再一个方面,进一步包括步骤:使得所述服务器在所述文件的其他部分数据开始被上传时就通知一个特定的线程来将所述缓存中的数据进一步写入到所述服务器的永久存储器之中。
根据本发明方法的再进一步方面,还包括步骤:使得所述服务器在每一个所述文件开始被下载时都先根据每一个所述客户机的线程数来建立数据缓存及准备好大于线程数的数据块,以等待传输;以及使得所述服务器在接收到每一个所述客户机的数据请求时都从所述缓存中直接获取数据并将其发送到对应的所述客户机,从而完成各自的一次通信。
根据本发明方法的另进一步方面,进一步包括步骤:使得所述服务器在每一个所述文件的一部分开始被下载从而使其对应的所述缓存中的数据块各自减少到一个特定阈值时均通知各自一个特定的线程来从所述服务器的永久存储器中读取对应的所述文件的其他部分数据并维持在所述缓存之中。
根据本发明方法的再一个方面,其特征在于每一个所述阈值均为不小于每一个所述客户机所对应的线程数的整数。
根据本发明方法的再另一个方面,其中,所述容错技术进一步包括:按时间和次数进行重试。
一种加速上传与下载文件的系统,其特征在于包括:一个或多个位于客户端的、采用上述任一方面的步骤方法的多线程技术及容错技术的客户机;以及位于服务端的、采用上述任一方面的步骤方法的所述的缓存存取技术的服务器。
根据本发明系统的一个方面,其特征在于,所述容错技术进一步包括:按时间和次数进行重试。
上述方法/系统相比于此前所采用的现有技术,在相同条件下,更大地提高了文件的传输速度和文件传输的成功比例,从而提高了文件的传输效率。
附图说明
图1示出了根据本发明方法的上传过程的流程图;
图2示出了根据本发明方法的上传系统的示意图;
图3示出了根据本发明方法的下载过程的流程图;以及
图4示出了根据本发明方法的下载系统的示意图。
具体实施方式
实现本发明的上传过程方法如图1所示。
文件上传的具体步骤如下:
1)客户机发起连接,将待上传的文件大小、使用的线程数、文件分块的大小等信息通知服务器;
2)服务器在收到客户机的文件上传请求后,针对该次请求,建立专门的临时文件,数据缓存,并启动(或称创建)对应的写缓存线程,而完成后,应答客户机请求;
3)客户机在收到服务器响应后,开始启动多线程,对文件进行分块传输;
4)客户机的某个线程将数据块传输给服务器;
5)服务器在收到客户机某个线程上传的数据块后,将数据块放置到该次上传对应的数据缓存中,通知对应的写缓存线程有数据可以写入,而完成后,应答客户机;
6)服务器对应的写缓存线程根据写数据通知,读取对应的数据缓存,写入永久存储器中;
7)客户机对应的线程在收到服务器的应答后,开始下一个数据块的传输;
8)当整个文件传输完毕时,客户机通知服务器,传输完毕;
9)服务器在收到客户机的文件传输完毕通知时,将该次上传对应的可能尚未完全写入的缓存写入永久存储器中,删除对应的临时文件,终止对应的写缓存线程,而完成后,应答客户机。
文件上传系统的原理图如图2所示,其中:
1)客户端采用多线程技术:
对要传输的文件进行分块,同时启动多个线程进行并发上传。
2)服务端采用缓存存入技术:
服务端中的服务器在接收到客户端的客户机上传的数据块后,放置到数据缓存中,立即应答客户机,以完成一次通讯,从而使客户机可以接着进行数据传输;
该服务器在一个文件的另一部分开始上传时,就通知一个专门的线程来读取数据缓存中所放置的该文件那一部分的数据块,以将其写入进该服务器的永久存储器之中。
因为在服务机处采用了缓存存入技术,客户机上传文件数据块成功后,立即返回,不需要等待服务器的写入文件操作,故提高了传输效率。
文件上传结果对比(同时并发上传相同大小的十个文件)如下表1所示:
Figure G2008101185300D00051
表1
另一方面,实现本发明的下载过程的方法如图3所示。
文件下载的具体步骤如下:
1)客户机发起连接,将待下载的文件名称、使用的线程数、数据块的大小通知服务器;
2)服务器在收到客户机的下载请求后,针对该次下载请求,建立专门的数据缓存,读取文件,在缓存中准备好大于线程数的数据块,并相应的启动(或称创建)一个读文件线程,用来维护该数据缓存,而完成后,应答客户机,并将文件的大小返回给客户机;
3)客户机在收到服务器的响应后,根据该文件大小建立其对应的文件,启动多个线程开始对服务端的文件分块下载;
4)客户机的某个线程向服务器请求数据块;
5)服务器在收到客户机的某个线程的数据请求后,从该次下载对应的数据缓存中获取数据块,并检查数据块个数是否到达特定阈值,如果到达这一特定阈值,则通知对应的读文件线程,然后将数据块返回给客户机;
6)该次下载对应的读文件线程在收到读数据通知后,读取文件,写入该次下载对应的数据缓存中,在文件未读取完毕前,保证数据缓存中的数据块个数不小于客户机的下载线程数;
7)客户机的对应线程收到数据块后,写入文件,并开始请求下一个数据块;
8)客户机下载完文件后,通知服务器,文件下载完成;
9)服务器在收到客户机文件下载完成通知后,终止该次下载对应的读文件线程,删除该次下载对应的数据缓存,而完成后,应答客户机。
文件下载系统的原理图如图4所示,其中:
1)客户端采用多线程技术:
客户端的客户机从服务端的服务器获取文件大小,对要传输的文件进行分块,同时启动多个线程进行并发下载。
2)服务端采用缓存读取技术:
服务端的服务器在开始下载文件时,根据客户端的客户机的线程数来建立一个数据缓存,准备好大于线程数的数据块以等待传输;
服务器在接收到客户机的数据请求时,从缓存中直接获取数据返回给客户机,从而完成一次通讯;
该服务器在开始被下载文件时,启动一个专门的线程,读取数据到缓存并进行维护,以在文件未成功被下载前确保缓存中的可用数据块数。
文件下载结果对比(同时并发下载相同大小的十个文件)如下表2所示:
Figure G2008101185300D00071
表2
另外,在上传和下载的通讯中,客户端的客户机处均采用按时间和次数进行重试的容错技术,以确保文件不会因为偶然的网络中断或异常造成整个文件传输失败。
值得注意的是,在具体实施中,本发明所述的这种客户机/服务器体系结构其中的客户机可以是一个或多个的,且客户机和服务器的角色也可以根据需要而进行互换的。
本发明可由包括但不限于Visual C等计算机编程语言软件来实现,亦可用例如模块电路等硬件线路来实施。
在权利要求中未被明确书面陈述的限制、要素、特性、特征、优势或属性,都不应以任何方式限定这样的权利要求范围。进而,本说明书及其附图应以图示的而不是限定性的含义而被看待。

Claims (9)

1.一种加速上传与下载文件的方法,其特征在于,在一个或多个客户端的客户机中采用多线程技术、容错技术;以及在服务端的服务器中采用缓存存取技术;
当所述一个或多个客户机与所述服务器连通后则在每一个所述客户机处均对将要传输的文件进行分块然后都各自同时启动多个线程并发上传或下载这个或这些数据块,其中,在所述下载中每一个所述客户机均是通过所述服务器来获知各自文件的大小的。
2.根据权利要求1所述的方法,还包括步骤:使得当所述服务器收到从特定的客户机处所上传文件的数据块后就先将所述数据块放置到所述服务器的数据缓存中,且立即应答所述特定客户机,从而完成该客户机的一次通信并准备进行下一次数据传输。
3.根据权利要求2所述的方法,进一步包括步骤:使得所述服务器在所述文件的其他部分数据开始被上传时就通知一个特定的线程来将所述缓存中的数据进一步写入到所述服务器的永久存储器之中。
4.根据权利要求1所述的方法,还包括步骤:
使得所述服务器在每一个所述文件开始被下载时都先根据每一个所述客户机的线程数来建立数据缓存及准备好大于线程数的数据块,以等待传输;以及
使得所述服务器在接收到每一个所述客户机的数据请求时都从所述缓存中直接获取数据并将其发送到对应的所述客户机,从而完成各自的一次通信。
5.根据权利要求4所述的方法,进一步包括步骤:使得所述服务器在每一个所述文件的一部分开始被下载从而使其对应的所述缓存中的数据块各自减少到一个特定阈值时均通知各自一个特定的线程来从所述服务器的永久存储器中读取对应的所述文件的其他部分数据并维持在所述缓存之中。
6.根据权利要求5所述的方法,其特征在于每一个所述阈值均为不小于每一个所述客户机所对应的线程数的整数。
7.根据权利要求1所述的方法,其中,所述容错技术进一步包括:按时间和次数进行重试。
8.一种加速上传与下载文件的系统,其特征在于包括:
一个或多个位于客户端的、采用权利要求1至7任一项所述的多线程技术及容错技术的客户机;以及
位于服务端的、采用权利要求1至7任一项所述的缓存存取技术的服务器。
9.根据权利要求8所述的系统,其特征在于,所述容错技术包括:按时间和次数进行重试。
CN2008101185300A 2008-08-18 2008-08-18 加速上传与下载文件的方法及其系统 Active CN101656751B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101185300A CN101656751B (zh) 2008-08-18 2008-08-18 加速上传与下载文件的方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101185300A CN101656751B (zh) 2008-08-18 2008-08-18 加速上传与下载文件的方法及其系统

Publications (2)

Publication Number Publication Date
CN101656751A CN101656751A (zh) 2010-02-24
CN101656751B true CN101656751B (zh) 2012-05-30

Family

ID=41710838

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101185300A Active CN101656751B (zh) 2008-08-18 2008-08-18 加速上传与下载文件的方法及其系统

Country Status (1)

Country Link
CN (1) CN101656751B (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102455899A (zh) * 2010-10-29 2012-05-16 镇江雅迅软件有限责任公司 一种多文件并发上传的方法
CN102457554A (zh) * 2010-10-29 2012-05-16 镇江雅迅软件有限责任公司 一种基于多线程并发执行技术的文件下载方法
CN101980168A (zh) * 2010-11-05 2011-02-23 北京云快线软件服务有限公司 一种动态分块传输方法及装置
CN102065146B (zh) * 2011-01-05 2014-06-18 上海聚欣网络科技有限公司 用于优化嵌入式终端在p2p应用中的存储效率的方法与设备
CN102111301A (zh) * 2011-03-28 2011-06-29 上海云高软件科技有限公司 一种通用文件传输系统及其实现方法
US9203892B2 (en) 2011-04-19 2015-12-01 Accenture Global Services Limited Content transfer accelerator
US9306860B2 (en) 2012-10-18 2016-04-05 Giraffic Technologies Ltd. Congestion control method for dynamically maximizing communication link throughout
CN102904959B (zh) * 2012-10-19 2016-01-20 北京极科极客科技有限公司 网络加速方法和网关
CN104219270A (zh) * 2013-06-05 2014-12-17 北京齐尔布莱特科技有限公司 多张图片从客户端快速高效上传至服务器的方法
CN103391454B (zh) * 2013-07-12 2016-12-28 三星电子(中国)研发中心 一种多线程下载方法和装置
CN103686334A (zh) * 2013-12-13 2014-03-26 南宁眸博科技有限公司 一种视频传输方法
CN104702654B (zh) * 2014-02-25 2019-04-30 杭州海康威视数字技术股份有限公司 基于视频云存储系统的存储与提取性能平衡的方法与装置
CN104361057A (zh) * 2014-10-31 2015-02-18 无锡天脉聚源传媒科技有限公司 一种上传多媒体文件的方法及装置
CN104331255B (zh) * 2014-11-17 2018-04-17 中国科学院声学研究所 一种基于嵌入式文件系统的流式数据读取方法
CN104932916A (zh) * 2015-05-18 2015-09-23 杭州魔品科技有限公司 苹果应用快速安装方法
CN106027582A (zh) * 2015-09-16 2016-10-12 展视网(北京)科技有限公司 一种内容相关的并行下载方法和装置
CN106657197B (zh) * 2015-11-02 2021-10-15 腾讯科技(深圳)有限公司 文件上传的方法和装置
CN108933805A (zh) * 2017-05-26 2018-12-04 武汉斗鱼网络科技有限公司 一种文件传输方法及系统
CN108306961A (zh) * 2018-01-29 2018-07-20 广东五科技股份有限公司 一种文件分块下载方法和装置
CN108429799B (zh) * 2018-03-01 2021-11-16 北京天融信网络安全技术有限公司 批量文件的并行传输方法、装置及存储介质
CN108322479B (zh) * 2018-03-06 2020-10-02 深圳辉烨物联科技有限公司 数据传输方法、装置、终端以及存储介质
CN109246221A (zh) * 2018-09-21 2019-01-18 上海勋立信息科技有限公司 一种多文件的数据分段高速上传方法、客户端及服务器
CN109831530B (zh) * 2019-03-15 2022-03-22 武汉思普崚技术有限公司 一种基于ftp下载的流量识别方法及装置
CN110602004A (zh) * 2019-08-30 2019-12-20 深圳壹账通智能科技有限公司 监管数据上报、电子装置、设备及计算机可读存储介质
CN111314480B (zh) * 2020-02-26 2022-09-20 烟台海颐软件股份有限公司 负载自适应跨平台文件传输协议分布式服务实现方法
CN111614744A (zh) * 2020-05-15 2020-09-01 武汉麦子科技有限公司 一种大文件下载传输方法
CN112019626B (zh) * 2020-08-31 2021-06-01 航天新长征大道科技有限公司 一种工业物联网系统及数据处理方法
CN112148675A (zh) * 2020-11-24 2020-12-29 树根互联技术有限公司 数据传输方法、装置、电子设备及存储介质
CN112463866A (zh) * 2020-11-25 2021-03-09 上海中通吉网络技术有限公司 一种快递行业数据导出方法、系统、计算机及存储介质
CN115277594A (zh) * 2022-07-18 2022-11-01 浪潮软件股份有限公司 一种基于http加速文件上传的方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1928857A (zh) * 2005-09-07 2007-03-14 展讯通信(上海)有限公司 一种提高手机无线上网传输带宽的装置及其实现方法
CN101008902A (zh) * 2007-01-12 2007-08-01 成都金山互动娱乐科技有限公司 一种绿色的游戏更新的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1928857A (zh) * 2005-09-07 2007-03-14 展讯通信(上海)有限公司 一种提高手机无线上网传输带宽的装置及其实现方法
CN101008902A (zh) * 2007-01-12 2007-08-01 成都金山互动娱乐科技有限公司 一种绿色的游戏更新的方法

Also Published As

Publication number Publication date
CN101656751A (zh) 2010-02-24

Similar Documents

Publication Publication Date Title
CN101656751B (zh) 加速上传与下载文件的方法及其系统
AU2016405587B2 (en) Splitting and moving ranges in a distributed system
US9760486B2 (en) Accelerating cache state transfer on a directory-based multicore architecture
TWI470459B (zh) 由在遠端複本對之主要磁碟與次要磁碟之間通信而作為遠端複本對運作之儲存控制系統、方法、資料載體及電腦程式產品
CN106506587A (zh) 一种基于分布式存储的Docker镜像下载方法
CN109032796B (zh) 一种数据处理方法和装置
CN111881116A (zh) 数据迁移方法、数据迁移系统、计算机系统和存储介质
JP6086124B2 (ja) 情報処理端末、同期制御方法および同期制御プログラム
CN111177159B (zh) 一种数据处理的系统、方法和数据更新设备
WO2021147793A1 (zh) 数据处理方法、装置、系统、电子设备及计算机存储介质
CN105653209A (zh) 一种对象存储数据传输方法及装置
CN112835524A (zh) 存储资源配置方法、存储资源控制器及调度系统
CN109783119B (zh) 一种数据多版本兼容升级管理系统及其管理方法
KR101822401B1 (ko) 공동 편집 문서를 공유하는 방법 및 장치
CN111400213B (zh) 传输数据的方法、装置及系统
CN110995830B (zh) 一种网络资源处理方法和装置
CN106161517A (zh) 通过云文件系统实现云存储接入的方法和装置
CN110445580A (zh) 数据发送方法及装置、存储介质、电子装置
CN113726838B (zh) 文件传输方法、装置、设备及存储介质
CN115454666A (zh) 消息队列集群间的数据同步方法和装置
CN110737635A (zh) 一种数据分块方法
CN111767345B (zh) 建模数据同步方法、装置、计算机设备及可读存储介质
WO2018233331A1 (zh) 一种文件存储方法、系统及计算机存储介质
CN110288309B (zh) 数据交互方法、装置、系统、计算机设备以及存储介质
CN114760116B (zh) 验证方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: CAXA TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: BEIJING DIGITAL DAFANG TECHNOLOGY CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 100080, Beijing, Zhichun Road, Haidian District No. 63 satellite building, 8 floor

Patentee after: Beijing CAXA Technology Co., Ltd.

Address before: 100080, Beijing, Zhichun Road, Haidian District No. 63 satellite building, 8 floor

Patentee before: Beijing Digital Dafang Technology Co., Ltd.