CN110493344B - 文件下载方法和装置 - Google Patents
文件下载方法和装置 Download PDFInfo
- Publication number
- CN110493344B CN110493344B CN201910780563.XA CN201910780563A CN110493344B CN 110493344 B CN110493344 B CN 110493344B CN 201910780563 A CN201910780563 A CN 201910780563A CN 110493344 B CN110493344 B CN 110493344B
- Authority
- CN
- China
- Prior art keywords
- file
- client
- subfiles
- shared
- subfile
- 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 67
- 230000015654 memory Effects 0.000 claims abstract description 62
- 230000011218 segmentation Effects 0.000 claims abstract description 22
- 238000013507 mapping Methods 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims description 30
- 238000012163 sequencing technique Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 description 19
- 230000006855 networking Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 10
- 238000003860 storage Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000011664 signaling Effects 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
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
本发明实施例提供了一种文件下载方法和装置,该文件下载方法包括:接收至少两个客户端各自发送的文件下载请求,响应于至少两个客户端各自发送的文件下载请求,将待共享文件映射到内存中,将映射到内存中的待共享文件切分为多个子文件,按切分顺序分别设置子文件的索引,在同一时刻向不同的目标客户端发送索引不同的子文件,以将多个子文件分别发送至每个目标客户端。将映射到内存中的待共享文件切分为多个子文件,可以同时向不同的客户端发送索引不同的子文件,并且每个子文件的访问速率很快,因此可以快速的将多个子文件分别发送给多个客户端,提高了待共享文件的共享速率。
Description
技术领域
本发明涉及数据存储技术领域,特别是涉及一种文件下载方法和装置。
背景技术
网盘是一种在线存储服务,可以为用户提供文件的存储、访问、备份、共享等文件管理功能。目前,用户通过网盘共享文件时,通过客户端将待共享文件上传至网盘服务器,其他用户通过客户端向网盘服务器发送文件下载请求,请求下载待共享文件。
现有技术中,网盘服务器并不支持多个客户端同时对一个文件进行操作,即当多个客户端同时向网盘服务器请求下载同一个待共享文件时,网盘服务器一次只能向一个客户端发送该待共享文件,而其他客户端只能等待当前客户端下载完毕后,才能开始下载待共享文件。当待共享文件较大时,当前客户端必然会长时间的占用该待共享文件,导致其他客户端的等待时间过长,浪费了时间,降低了文件共享效率。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种文件下载方法和装置。
本发明实施例第一方面公开了一种文件下载方法,包括:
接收至少两个客户端各自发送的文件下载请求,所述文件下载请求用于请求下载所述网盘服务器中的待共享文件;
响应于所述至少两个客户端各自发送的所述文件下载请求,将所述待共享文件映射到内存中;
将映射到所述内存中的所述待共享文件切分为多个子文件,并按切分顺序分别设置每个所述子文件的索引;
向所述至少两个客户端中的多个目标客户端发送所述子文件,以将所述多个子文件分别发送至每个所述目标客户端;其中,在同一时刻向不同的所述目标客户端发送的所述子文件的索引不同。
本发明实施例第二方面公开了一种文件下载装置,包括:
接收模块,用于接收至少两个客户端各自发送的文件下载请求,所述文件下载请求用于请求下载所述网盘服务器中的待共享文件;
映射模块,用于响应于所述至少两个客户端各自发送的所述文件下载请求,将所述待共享文件映射到内存中;
切分模块,用于将映射到所述内存中的所述待共享文件切分为多个子文件,并按切分顺序分别设置每个所述子文件的索引;
发送模块,用于向所述至少两个客户端中的多个目标客户端发送所述子文件,以将所述多个子文件分别发送至每个所述目标客户端;其中,在同一时刻向不同的所述目标客户端发送的所述子文件的索引不同。
本发明实施例包括以下优点:
本发明实施例,网盘服务器接收至少两个客户端各自发送的文件下载请求,响应于至少两个客户端各自发送的文件下载请求,将待共享文件映射到内存中,将映射到内存中的待共享文件切分为多个子文件,并按切分顺序分别设置每个子文件的索引,向至少两个客户端中的多个目标客户端发送子文件,以将多个子文件分别发送至每个目标客户端,在同一时刻向不同的目标客户端发送的子文件的索引不同。将待共享文件映射到内存中,并将映射到内存中的待共享文件切分为多个子文件,可以同时向不同的客户端发送索引不同的子文件,以避免同一时刻只向其中的一个客户端发送待共享文件,而导致其他客户端处于长时间的等待过程的技术问题。并且,由于内存的访问速率远远高于硬盘的访问速率,每个客户端对每个子文件的占用时间极短,因此可以快速的将多个子文件分别发送给多个客户端,达到同时向不同客户端发送待共享文件的效果,提高了待共享文件的共享速率。
附图说明
图1为本发明的一种视联网的组网示意图;
图2为本发明的一种节点服务器的硬件结构示意图;
图3为本发明的一种接入交换机的硬件结构示意图;
图4为本发明的一种以太网协转网关的硬件结构示意图;
图5为本发明实施例所提供的一种文件下载方法流程图;
图6为本发明实施例所提供的另一种文件下载方法流程图;
图7为本发明实施例所提供的一种文件下载装置的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。
视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、VOD点播、电视邮件、个性录制(PVR)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。
为使本领域技术人员更好地理解本发明实施例,以下对视联网进行介绍:
视联网所应用的部分技术如下所述:
网络技术(Network Technology)
视联网的网络技术创新改良了传统以太网(Ethernet),以面对网络上潜在的巨大视频流量。不同于单纯的网络分组包交换(Packet Switching)或网络电路交换(CircuitSwitching),视联网技术采用Packet Switching满足Streaming需求。视联网技术具备分组交换的灵活、简单和低价,同时具备电路交换的品质和安全保证,实现了全网交换式虚拟电路,以及数据格式的无缝连接。
交换技术(Switching Technology)
视联网采用以太网的异步和包交换两个优点,在全兼容的前提下消除了以太网缺陷,具备全网端到端无缝连接,直通用户终端,直接承载IP数据包。用户数据在全网范围内不需任何格式转换。视联网是以太网的更高级形态,是一个实时交换平台,能够实现目前互联网无法实现的全网大规模高清视频实时传输,将众多网络视频应用推向高清化、统一化。
服务器技术(Server Technology)
视联网和统一视频平台上的服务器技术不同于传统意义上的服务器,它的流媒体传输是建立在面向连接的基础上,其数据处理能力与流量、通讯时间无关,单个网络层就能够包含信令及数据传输。对于语音和视频业务来说,视联网和统一视频平台流媒体处理的复杂度比数据处理简单许多,效率比传统服务器大大提高了百倍以上。
储存器技术(Storage Technology)
统一视频平台的超高速储存器技术为了适应超大容量和超大流量的媒体内容而采用了最先进的实时操作系统,将服务器指令中的节目信息映射到具体的硬盘空间,媒体内容不再经过服务器,瞬间直接送达到用户终端,用户等待一般时间小于0.2秒。最优化的扇区分布大大减少了硬盘磁头寻道的机械运动,资源消耗仅占同等级IP互联网的20%,但产生大于传统硬盘阵列3倍的并发流量,综合效率提升10倍以上。
网络安全技术(Network Security Technology)
视联网的结构性设计通过每次服务单独许可制、设备与用户数据完全隔离等方式从结构上彻底根除了困扰互联网的网络安全问题,一般不需要杀毒程序、防火墙,杜绝了黑客与病毒的攻击,为用户提供结构性的无忧安全网络。
服务创新技术(Service Innovation Technology)
统一视频平台将业务与传输融合在一起,不论是单个用户、私网用户还是一个网络的总合,都不过是一次自动连接。用户终端、机顶盒或PC直接连到统一视频平台,获得丰富多彩的各种形态的多媒体视频服务。统一视频平台采用“菜谱式”配表模式来替代传统的复杂应用编程,可以使用非常少的代码即可实现复杂的应用,实现“无限量”的新业务创新。
视联网的组网如下所述:
视联网是一种集中控制的网络结构,该网络可以是树型网、星型网、环状网等等类型,但在此基础上网络中需要有集中控制节点来控制整个网络。
如图1所示,视联网分为接入网和城域网两部分。
接入网部分的设备主要可以分为3类:节点服务器,接入交换机,终端(包括各种机顶盒、编码板、存储器等)。节点服务器与接入交换机相连,接入交换机可以与多个终端相连,并可以连接以太网。
其中,节点服务器是接入网中起集中控制功能的节点,可控制接入交换机和终端。节点服务器可直接与接入交换机相连,也可以直接与终端相连。
类似的,城域网部分的设备也可以分为3类:城域服务器,节点交换机,节点服务器。城域服务器与节点交换机相连,节点交换机可以与多个节点服务器相连。
其中,节点服务器即为接入网部分的节点服务器,即节点服务器既属于接入网部分,又属于城域网部分。
城域服务器是城域网中起集中控制功能的节点,可控制节点交换机和节点服务器。城域服务器可直接连接节点交换机,也可直接连接节点服务器。
由此可见,整个视联网络是一种分层集中控制的网络结构,而节点服务器和城域服务器下控制的网络可以是树型、星型、环状等各种结构。
形象地称,接入网部分可以组成统一视频平台(虚线圈中部分),多个统一视频平台可以组成视联网;每个统一视频平台可以通过城域以及广域视联网互联互通。
视联网设备分类
1.1本发明实施例的视联网中的设备主要可以分为3类:服务器,交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。视联网整体上可以分为城域网(或者国家网、全球网等)和接入网。
1.2其中接入网部分的设备主要可以分为3类:节点服务器,接入交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。
各接入网设备的具体硬件结构为:
节点服务器:
如图2所示,主要包括网络接口模块201、交换引擎模块202、CPU模块203、磁盘阵列模块204;
其中,网络接口模块201,CPU模块203、磁盘阵列模块204进来的包均进入交换引擎模块202;交换引擎模块202对进来的包进行查地址表205的操作,从而获得包的导向信息;并根据包的导向信息把该包存入对应的包缓存器206的队列;如果包缓存器206的队列接近满,则丢弃;交换引擎模202轮询所有包缓存器队列,如果满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。磁盘阵列模块204主要实现对硬盘的控制,包括对硬盘的初始化、读写等操作;CPU模块203主要负责与接入交换机、终端(图中未示出)之间的协议处理,对地址表205(包括下行协议包地址表、上行协议包地址表、数据包地址表)的配置,以及,对磁盘阵列模块204的配置。
接入交换机:
如图3所示,主要包括网络接口模块(下行网络接口模块301、上行网络接口模块302)、交换引擎模块303和CPU模块304;
其中,下行网络接口模块301进来的包(上行数据)进入包检测模块305;包检测模块305检测包的目地地址(DA)、源地址(SA)、数据包类型及包长度是否符合要求,如果符合,则分配相应的流标识符(stream-id),并进入交换引擎模块303,否则丢弃;上行网络接口模块302进来的包(下行数据)进入交换引擎模块303;CPU模块304进来的数据包进入交换引擎模块303;交换引擎模块303对进来的包进行查地址表306的操作,从而获得包的导向信息;如果进入交换引擎模块303的包是下行网络接口往上行网络接口去的,则结合流标识符(stream-id)把该包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃;如果进入交换引擎模块303的包不是下行网络接口往上行网络接口去的,则根据包的导向信息,把该数据包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃。
交换引擎模块303轮询所有包缓存器队列,在本发明实施例中分两种情形:
如果该队列是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零;3)获得码率控制模块产生的令牌;
如果该队列不是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。
码率控制模块308是由CPU模块304来配置的,在可编程的间隔内对所有下行网络接口往上行网络接口去的包缓存器队列产生令牌,用以控制上行转发的码率。
CPU模块304主要负责与节点服务器之间的协议处理,对地址表306的配置,以及,对码率控制模块308的配置。
以太网协转网关:
如图4所示,主要包括网络接口模块(下行网络接口模块401、上行网络接口模块402)、交换引擎模块403、CPU模块404、包检测模块405、码率控制模块408、地址表406、包缓存器407和MAC添加模块409、MAC删除模块410。
其中,下行网络接口模块401进来的数据包进入包检测模块405;包检测模块405检测数据包的以太网MAC DA、以太网MAC SA、以太网length or frame type、视联网目地地址DA、视联网源地址SA、视联网数据包类型及包长度是否符合要求,如果符合则分配相应的流标识符(stream-id);然后,由MAC删除模块410减去MAC DA、MAC SA、length or frame type(2byte),并进入相应的接收缓存,否则丢弃;
下行网络接口模块401检测该端口的发送缓存,如果有包则根据包的视联网目地地址DA获知对应的终端的以太网MAC DA,添加终端的以太网MAC DA、以太网协转网关的MACSA、以太网length or frame type,并发送。
以太网协转网关中其他模块的功能与接入交换机类似。
终端:
主要包括网络接口模块、业务处理模块和CPU模块;例如,机顶盒主要包括网络接口模块、视音频编解码引擎模块、CPU模块;编码板主要包括网络接口模块、视音频编码引擎模块、CPU模块;存储器主要包括网络接口模块、CPU模块和磁盘阵列模块。
1.3城域网部分的设备主要可以分为2类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和CPU模块;城域服务器主要包括网络接口模块、交换引擎模块和CPU模块构成。
2、视联网数据包定义
2.1接入网数据包定义
接入网的数据包主要包括以下几部分:目的地址(DA)、源地址(SA)、保留字节、payload(PDU)、CRC。
如下表所示,接入网的数据包主要包括以下几部分:
DA | SA | Reserved | Payload | CRC |
其中:
目的地址(DA)由8个字节(byte)组成,第一个字节表示数据包的类型(例如各种协议包、组播数据包、单播数据包等),最多有256种可能,第二字节到第六字节为城域网地址,第七、第八字节为接入网地址;
源地址(SA)也是由8个字节(byte)组成,定义与目的地址(DA)相同;
保留字节由2个字节组成;
payload部分根据不同的数据报的类型有不同的长度,如果是各种协议包的话是64个字节,如果是单组播数据包话是32+1024=1056个字节,当然并不仅仅限于以上2种;
CRC有4个字节组成,其计算方法遵循标准的以太网CRC算法。
2.2城域网数据包定义
城域网的拓扑是图型,两个设备之间可能有2种、甚至2种以上的连接,即节点交换机和节点服务器、节点交换机和节点交换机、节点交换机和节点服务器之间都可能超过2种连接。但是,城域网设备的城域网地址却是唯一的,为了精确描述城域网设备之间的连接关系,在本发明实施例中引入参数:标签,来唯一描述一个城域网设备。
本说明书中标签的定义和MPLS(Multi-Protocol Label Switch,多协议标签交换)的标签的定义类似,假设设备A和设备B之间有两个连接,那么数据包从设备A到设备B就有2个标签,数据包从设备B到设备A也有2个标签。标签分入标签、出标签,假设数据包进入设备A的标签(入标签)是0x0000,这个数据包离开设备A时的标签(出标签)可能就变成了0x0001。城域网的入网流程是集中控制下的入网过程,也就意味着城域网的地址分配、标签分配都是由城域服务器主导的,节点交换机、节点服务器都是被动的执行而已,这一点与MPLS的标签分配是不同的,MPLS的标签分配是交换机、服务器互相协商的结果。
如下表所示,城域网的数据包主要包括以下几部分:
DA | SA | Reserved | 标签 | Payload | CRC |
即目的地址(DA)、源地址(SA)、保留字节(Reserved)、标签、payload(PDU)、CRC。其中,标签的格式可以参考如下定义:标签是32bit,其中高16bit保留,只用低16bit,它的位置是在数据包的保留字节和payload之间。
参照图5,图5为本发明实施例所提供的一种文件下载方法流程图,该方法适用于多个客户端同时下载网盘服务器中存储的同一个待共享文件,以满足多个客户端对待共享文件的下载请求。本实施例提供的方法可以由文件下载装置执行,文件下载装置通常以软件和/或硬件的方式实现,文件下载装置设置于网盘服务器。该方法具体可以包括如下步骤:
步骤501、接收至少两个客户端各自发送的文件下载请求。
本实施例中,网盘服务器可以为提供在线存储服务的服务器。用户可以通过客户端登录网盘服务器,实现文件的存储、访问、备份和共享。其中,若用户需要将文件共享给其他用户,则用户可以将待共享文件发布于网盘服务器,其他用户可以分别通过客户端向网盘服务器发送文件下载请求,请求下载网盘服务器中的待共享文件,实现文件共享。
例如,提供待共享文件的用户可以通过客户端D登陆网盘服务器,将待共享文件发送至网盘服务器,网盘服务器接收到客户端D发送的共享请求后可以生成共享链接,并将共享链接发送给客户端D,提供待共享文件的用户可以将该共享链接发送给需要下载待共享文件的其他用户,需要下载待共享文件的其他用户可以分别登录各自的客户端,根据共享链接向网盘服务器发送文件下载请求,请求下载网盘服务器中的待共享文件。例如,需要下载待共享文件的其他用户可以分别登录客户端A、客户端B和客户端C,根据共享链接向网盘服务器发送文件下载请求,请求下载网盘服务器中的待共享文件。
实际使用时,待共享文件可以为任意种类的文件,例如音频、视频、软件安装包等文件。发送文件下载请求的客户端的数量可以为多个,本实施对待共享文件的种类和发送文件下载请求的客户端的数量不做具体限制。
步骤502、响应于至少两个客户端各自发送的文件下载请求,将待共享文件映射到内存中。
其中,待共享文件存储在网盘服务器的硬盘中。网盘服务器在接收到至少两个客户端各自发送的文件下载请求后,将待共享文件映射到内存中。具体的,网盘服务器可以将存储在硬盘中的待共享文件复制到内存中。
例如,结合步骤501,网盘服务器在接收到客户端D发送的待共享文件后,可以将该待共享文件存储在硬盘中。当接收到客户端A、客户端B和客户端C分别发送的文件下载请求后,可以将存储在硬盘中的待共享文件复制到内存中。
步骤503、将映射到内存中的待共享文件切分为多个子文件,并按切分顺序分别设置每个子文件的索引。
本实施例中,将待共享文件映射到内存中后,网盘服务器可以将映射到内存中的待共享文件按预设的切分方式切分为多个子文件,并按切分顺序为每个子文件设置对应的索引。因为对内存的访问速率高于对硬盘的访问速率,并且每个子文件相对于待共享文件更小,从而对每个子文件的访问速率相对于待共享文件的访问速率更快。
例如,结合步骤501至步骤502中的举例,当网盘服务器接收到客户端A、客户端B和客户端C分别发送的文件下载请求,将待共享文件映射到内存中后,可以将待共享文件切分为10个子文件,并按切分的顺序分别设置每个子文件的索引,切分后的10个子文件分别为子文件1、子文件2、子文件3、子文件4、子文件5、子文件6、子文件7、子文件8、子文件9和子文件10。
实际使用中,子文件的数量可以根据用户的需求自行设置,本实施例对此不做具体限制。
步骤504、向至少两个客户端中的多个目标客户端发送子文件。
本实施例中,网盘服务器在将待共享文件切分为多个子文件后,可以将每个子文件作为单独的文件向客户端发送,当客户端在接收到网盘服务器发送的所有子文件后,可以根据索引将接收到的所有子文件进行拼接,得到待共享文件。
具体的,网盘服务器将待共享文件切分为多个子文件后,可以根据文件下载请求,向对应的客户端发送子文件。其中,目标客户端可以为至少两个客户端中的多个客户端,也可以是全部的客户端。在发送过程中,网盘服务器可以同时向不同的目标客户端分别发送索引不同的子文件,以将多个子文件分别发送至每个目标客户端。
例如,结合步骤501至步骤503中的举例,网盘服务器将待共享文件切分为10个子文件后,若目标客户端为客户端A和客户端B,则可以向同时向客户端A和客户端B发送索引不同的子文件;若目标客户端为客户端A和客户端C,则可以同时向客户端A和客户端C发送索引不同的子文件;若目标客户端为客户端B和客户端C,则可以同时向客户端B和客户端C发送索引不同的子文件;若目标客户端为客户端A、客户端B和客户端C,则可以同时向客户端A、客户端B和客户端C分别发送索引不同的子文件,直至将切分后的10个子文件分别发送至每个客户端,也即在同一时刻向不同客户端发送的子文件的索引不同。以同时向客户端A、客户端B和客户端C发送索引不同的子文件为例,在同一时刻向客户端A发送子文件1、向客户端B发送子文件2,向客户端C发送子文件3,向客户端A发送完成子文件1后,将子文件1发送给客户端B,向客户端B发送完成子文件2后,可以将子文件2发送给客户端A,也即在向一个客户端发送完成一个子文件后,可以将该子文件发送给其他未接收到该子文件的客户端。因此,在向一个客户端发送子文件时,其他客户端无需等待该客户端接收完该子文件才能接收其他子文件。并且因为每个子文件相对于待共享文件更小,所以每个子文件的发送速率很快,在发送过程中可以很快的将一个子文件发送给一个客户端,发送完毕后接着发送给下一个客户端,可以减少其他客户端等待该子文件的时间,提高发送效率。
可选的,网盘服务器在向每个客户端发送子文件的过程中,可以记录向每个客户端发送的子文件的索引,从而避免向客户端重复发送同一个子文件。
本实施例中,网盘服务器接收至少两个客户端各自发送的文件下载请求,响应于至少两个客户端各自发送的文件下载请求,将待共享文件映射到内存中,将映射到内存中的待共享文件切分为多个子文件,并按切分顺序分别设置每个子文件的索引,向至少两个客户端中的多个目标客户端发送子文件,以将多个子文件分别发送至每个目标客户端,在同一时刻向不同的目标客户端发送的子文件的索引不同。将待共享文件映射到内存中,并将映射到内存中的待共享文件切分为多个子文件,可以同时向不同的客户端发送索引不同的子文件,以避免同一时刻只向其中的一个客户端发送待共享文件,而导致其他客户端处于长时间的等待过程的技术问题。并且,由于内存的访问速率远远高于硬盘的访问速率,每个客户端对每个子文件的占用时间极短,因此可以快速的将多个子文件分别发送给多个客户端,达到同时向不同客户端发送待共享文件的效果,提高了待共享文件的共享速率。
参照图6,图6为本发明实施例所提供的另一种文件下载方法流程图,该方法适用于多个客户端同时下载网盘服务器中存储的同一个待共享文件,以满足多个客户端对待共享文件的下载请求。本实施例提供的方法可以由文件下载装置执行,文件下载装置通常以软件和/或硬件的方式实现,文件下载装置设置于网盘服务器。该方法具体可以包括如下步骤:
步骤601、接收至少两个客户端各自发送的文件下载请求。
接收至少两个客户端各自发送的文件下载请求的过程与步骤501相同,在此不做赘述。
步骤602、判断文件下载请求的个数是否大于或等于第一预设个数。
其中,第一预设个数为根据需求预先设置的固定数值。具体的,网盘服务器在接收到多个文件下载请求后,可以统计文件下载请求的数量,判断文件下载请求的数量是否大于或等于第一预设个数。
本实施例中,当文件下载请求的数量大于或等于第一预设个数时,说明需要下载待共享文件的客户端的数量较多,此时网盘服务器需要向较多的客户端发送待共享文件。此时,网盘服务器判断文件下载请求的个数是否大于或等于第一预设个数,若是则执行步骤603,若否则执行步骤607。
步骤603、判断待共享文件是否大于或等于预设阈值。
本实施例中,当待共享文件大于或等于预设阈值时,说明网盘服务器向每个至客户端发送待共享文件时,需要的时间较长。由于网盘服务器一次只能将待共享文件发送至一个客户端,当需要下载待共享文件的客户端较多,并且待共享文件较大时,部分客户端需要等待很长的时间才能接收到网盘服务器发送的待共享文件。
此时,网盘服务器判断待共享文件的大小是否大于或等于预设阈值,若是则执行步骤604,若否则执行步骤607。
步骤604、将待共享文件映射到内存中。
本实施例中,将待共享文件映射到内存中的过程与步骤502相同,在此不做赘述。
步骤605、将映射到内存中的待共享文件切分为多个子文件,并按切分顺序分别设置每个子文件的索引。
具体的,将映射到内存中的待共享文件切分为多个子文件可以通过以下方式实现:
方式一:按预设文件大小对映射到内存中的待共享文件进行切分,获得多个子文件,按切分顺序分别设置每个子文件的索引。
其中,预设文件大小具体指切分后每个子文件的大小。具体的,网盘服务器可以将待共享文件按预设大小进行切分,切分为多个子文件。例如,若待共享文件的大小为10兆,预设文件大小为1兆,网盘服务器可以从待共享文件的第一兆开始,每一兆切分为一个子文件,共切分为10个子文件。同时按切分的顺序,将第一个子文件的索引设置为1,第二个子文件的索引设置为2,依次类推,设置索引为1-10的10个子文件。
需要说明的是,按照预设文件大小对待共享文件进行切分时,当对待共享文件切分后,若获得的剩余的待共享文件的大下小于预设文件大小,则不再对剩余的待共享文件进行切分。例如,若待共享文件的大小为9.8兆时,网盘服务器可以从待共享文件的第一兆开始,每执行一次切分获得一兆大小的一个子文件,在执行第九次切分后,剩余的待共享文件的大小为0.8兆,则不再对0.8兆大小的子文件进行切分,也即共进行9次切分获得了10个子文件,前9个子文件的大小都为1兆,最后一个子文件的大小为0.8兆。
方式二:将映射到内存中的待共享文件切分为第二预设个数的子文件,按切分顺序分别设置每个子文件的索引。
其中,第二预设个数指的是预先设置的子文件的数量。具体的,网盘服务器可以将待共享文件按第二预设个数进行平均切分,切分为第二预设个数个子文件。例如,若待共享文件的大小为9.8兆,第二预设个数为10,则网盘服务器可以将待共享文件平均切分为10个子文件,其中每个子文件的大小为0.98兆。同时按切分的顺序,将第一个子文件的索引设置为1,第二个子文件的索引设置为2,依次类推,设置索引为1-10的10个子文件。按第二预设个数对待共享文件进行切分,可以限制子文件的数量。需要说明的是,也可以不采用平均切分的方式切分为10个子文件,即10个子文件的大小可以不相同。
设置子文件索引的方法具体可以为,按切分的顺序为每个子文件进行命名,例如,第一个子文件命名为1,第二个子文件命名为2,以此类推,命名每个子文件。或者建立与每个子文件对应的文件夹,按切分的顺序为每个文件夹进行命名,将切分后的子文件存储在与其对应的文件夹中。具体设置子文件索引的方法可以根据用户需求,选择现有技术中任意设置索引的方法,本实施例对子文件索引的设置方法不做具体限制。
实际使用中,待共享文件的切分方式可以根据用户的需求自行设定,预设文件大小和第二预设个数也可以根据用户的需求自行设置,本实施例对待共享文件的切分方式、预设文件大小和第二预设个数不做具体限制。
步骤606、向至少两个客户端中的多个目标客户端发送子文件。
具体的,网盘服务器将多个子文件发送至至少两个客户端的过程可以为:根据接收到的每个目标客户端发送的文件下载请求的先后顺序,对每个目标客户端进行排序,获得排序结果,根据排序结果,按照每个子文件的索引向每个目标客户端发送子文件,在向每个目标客户端发送子文件的过程中,若确定向多个目标客户端中的第一目标客户端发送的子文件的发送状态为完成状态,则将向所述第一目标客户端发送的子文件发送给第二目标客户端。
具体的,网盘服务器可以记录接收到每个客户端发送的文件下载请求的时间,根据文件下载请求的先后顺序对客户端进行排序,得到排序结果,根据排序结果向客户端发送子文件。
例如,结合步骤501至步骤504中的举例,网盘服务器可以分别接收客户端A、客户端B和客户端C发送的文件下载请求,并记录接收到每个客户端发送的文件下载请求的时间,根据时间先后顺序对客户端A、客户端B和客户端C进行排序,得到客户端A大于客户端B大于客户端C的排序结果。按排序结果,网盘服务器首先向客户端A发送子文件。在向客户端A发送子文件的过程中,按子文件的索引顺序,首先向客户端A发送索引为1的子文件;索引为1的子文件发送完毕后,向客户端A发送索引为2的子文件;索引为2的子文件发送完毕后,向客户端A发送索引为3的子文件,依次类推,将索引为1-10的10个子文件发送至客户端A。
在向客户端A发送子文件的过程中,确定客户端A为第一目标客户端,并且确定与客户端A相邻,并且在客户端A之后的客户端B为第二目标客户端。当索引为1的子文件向客户端A发送完毕后,将索引为1的子文件发送至客户端B,当索引为2的子文件向客户端A发送完毕后,向将索引为2的子文件发送至客户端B,以此类推,将向客户端A发送完毕的子文件发送至客户端B,直至将索引为1-10的10个子文件发送至客户端B。
同样的,在向客户端B发送子文件的过程中,确定客户端B为第一目标客户端,并且确定与客户端B相邻,并且在客户端B之后的客户端C为第二目标客户端。当索引为1的子文件向客户端B发送完毕后,将索引为1的子文件发送至客户端C,当索引为2的子文件向客户端B发送完毕后,向将索引为2的子文件发送至客户端C,以此类推,将向客户端B发送完毕的子文件发送至客户端C,直至将索引为1-10的10个子文件发送至客户端C。
客户端A、客户端B和客户端C分别在接收到10个子文件后,根据子文件的索引将多个子文件进行拼接,得到待共享文件。按接收到的文件下载请求的先后顺序对客户端进行排序,根据排序结果向每个客户端发送子文件,可以顺序的将多个子文件发送至每个客户端。
需要说明的是,按照每个子文件的索引向每个目标客户端发送子文件,每次向目标客户端发送的子文件可以为多个,例如可以将多个子文件划分为多个子文件组,每个子文件组中包括多个子文件,可以同时向每个目标客户端分别发送不同的子文件组,当向每个目标客户端发送的子文件组都发送完成后,可以再将之前未发送给某个目标客户端的子文件组发送给该目标客户端,以将每个子文件组都发送给该目标客户端。
例如,结合步骤501至步骤504中的举例,在发送子文件的过程中,可以将10个子文件分成3组,第一个子文件组可以包括索引为1-3的三个子文件,第二个子文件组可以包括索引为4-6的三个子文件,第三个子文件组可以包括索引为7-10的四个子文件。网盘服务器第一次可以同时向客户端A发送第一个子文件组,向客户端B发送第二个子文件组,向客户端C发送第三个子文件组。第一次发送完毕后,第二次向客户端A发送第二个子文件组,向客户端B发送第三个子文件组,向客户端C发送索引为第一个子文件组。第二次发送完毕后,向客户端A发送第三个子文件组,向客户端B发送第一个子文件组,向客户端C发送第二个子文件组。其中,在每次发送过程中,记录向每个客户端发送的子文件组的标识,在下次发送中向每个客户端发送未向该客户端发送的子文件组。以此从将10个子文件分别发送至客户端A、客户端B和客户端C。客户端A、客户端B和客户端C分别在接收到10个子文件后,根据子文件组的标识的顺序将多个多个子文件组进行拼接,得到待共享文件,例如第一个子文件组的标识为1,第二个子文件组的标识为2,第三个子文件组的标识为3,客户端A按照标识由小到大进行排序后,将多个子文件拼接成待共享文件。
实际使用中,向每个客户端发送的子文件的数量可以相同,也可以不同,只需保证在同一时刻向不同的客户端发送的子文件的索引不同即可。例如,网盘服务器可以向客户端A发送索引为1-4的四个子文件,向客户端B发送索引为5-7的三个子文件,向客户端C发送索引为8-10的三个子文件。
需要说明的是,按照每个子文件的索引向每个目标客户端发送子文件,也可以通过按照子文件的索引和子文件的状态,随机将处于闲置状态的子文件发送至不同的客户端实现。并记录向每个客户端发送的子文件的索引,直至将所有子文件分别发送至每个客户端。
例如,结合步骤501至步骤504中的举例,网盘服务器在向客户端A发送索引为1的子文件的同时,向客户端B发送索引为6的子文件,向客户端C发送索引为9的子文件。当索引为1的子文件向客户端A发送完毕后,网盘服务器记录向客户端A已经发送了索引为1的子文件,此时若索引为6和索引为9的子文件还没有发送完毕,网盘服务器可以向客户端A发送索引为2、3、4、5、7、8和10的子文件中的任意一个子文件(索引为2、3、4、5、7、8和10的子文件并未向客户端B和客户端C发送,处于闲置状态;而索引为6和9的子文件正在发送,处于发送状态,被客户端B和客户端C占用,并不能向客户端A发送索引为6和9的子文件)。同理,当索引为6的子文件向客户端B发送完毕后,网盘服务器可以向客户端B发送除索引为6的子文件之外的其他处于闲置状态的子文件,当索引为9的子文件向客户端C发送完毕后,网盘服务器可以向客户端C发送除索引为9的子文件之外的其他处于闲置状态的子文件。以此类推,将索引为1-10的10个子文件分别发送至客户端A、客户端B和客户端C。客户端A、客户端B和客户端C分别在接收到10个子文件后,根据子文件的索引将多个子文件进行拼接,得到待共享文件。
通过随机的向不同的客户端发送索引不同且为闲置状态的子文件,可以避免某个子文件处于发送状态时,其他客户端等待该子文件时浪费较长的时间,从而进一步提高子文件的发送效率。
在待共享文件发送过程中,将待共享文件映射到了内存中,并进行切分,由于网盘服务器对内存的访问速率远远高于对硬盘的访问速率,因此对每个子文件的访问速率远远高于对整个待共享文件的访问速率。在子文件的发送过程中,同时向不同的客户端发送索引不同的子文件,可以避免网盘服务器一次只能向一个客户端发送待共享文件,减少了客户端的等待时间。并且,由于每个子文件的访问速率非常快,每个客户端对发送中的子文件的占用时间极短,使得每个子文件都可以快速的发送给客户端,然后向下一个客户端发送,达到同时向不同客户端发送待共享文件的效果。
步骤607、向每个客户端发送待共享文件。
本实施例中,若文件下载请求的数量小于第一预设个数,则说明需要下载待共享文件的客户端的数量较少,网盘服务器根据文件下载请求向每个客户端发送待共享文件时,客户端的等待时间较短,可以满足用户需求,此时并不需要对文件进行映射和切分,可以直接将待共享文件发送至每个客户端。同理,当待共享文件小于预设阈值,则说明网盘服务器在向每个客户端发送待共享文件时,使用的时间较短。客户端等待的时间较短,可以满足用户的需求,此时并不需要对文件进行映射和切分,可以直接将待共享文件发送至每个客户端。具体的,网盘服务器将待共享文件发送至每个客户端的过程与现有技术中的发送过程相同,在此不做赘述。
具体使用过程中,当需要文件下载请求的数量较少,待共享文件较小时,不对待共享文件进行映射和切分,可以减少网盘服务器的操作,降低网盘服务器的负载。
本实施例中,网盘服务器接收至少两个客户端各自发送的文件下载请求,判断文件下载请求的个数是否大于或等于第一预设个数,并判断待共享文件是否大于或等于预设阈值,当待共享文件大于或等于预设阈值时,将待共享文件映射到内存中,将映射到内存中的待共享文件切分为多个子文件,并按切分顺序分别设置每个子文件的索引,向至少两个客户端中的多个目标客户端发送子文件,以将多个子文件分别发送至每个目标客户端,在同一时刻向不同的目标客户端发送的子文件的索引不同。根据文件下载请求的数量和待共享文件的大小判断是否对待共享文件进行映射和切分,在文件下载请求的数量较少,待共享文件较小时,避免对待共享文件进行映射和切分,可以减少网盘服务器的操作,降低网盘服务器的复杂。同时,在文件下载请求的数量较多,待共享文件较大时,对待共享文件进行映射和切分,可以提高待共享文件的共享效率。
可选的,在将多个子文件分别发送至每个目标客户端后,向每个客户端发送结束文件。
其中,结束文件中可以包括结束标识,客户端在接收到结束文件后,可以根据结束文件中的结束标识确定待共享文件已经下载完成,可以开始子文件的拼接。
同时,结束文件中还可以包括待共享文件的大小标识,当客户端在拼接得到待共享文件后,可以比较大小标识与拼接得到的待共享文件的大小,判断文件下载是否出错。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图7,图7为本发明实施例所提供的一种文件下载装置的示意图,该文件下载装置700设置于网盘服务器,具体可以包括接收模块701、映射模块702、切分模块703和发送模块704。
接收模块701用于接收至少两个客户端各自发送的文件下载请求,文件下载请求用于请求下载网盘服务器中的待共享文件。
映射模块702用于响应于至少两个客户端各自发送的文件下载请求,将待共享文件映射到内存中。
切分模块703用于将映射到内存中的待共享文件切分为多个子文件,并按切分顺序分别设置每个子文件的索引。
发送模块704用于向至少两个客户端中的多个目标客户端发送子文件,以将多个子文件分别发送至每个目标客户端;其中,在同一时刻向不同的目标客户端发送的子文件的索引不同。
本发明实施例,网盘服务器接收至少两个客户端各自发送的文件下载请求,响应于至少两个客户端各自发送的文件下载请求,将待共享文件映射到内存中,将映射到内存中的待共享文件切分为多个子文件,并按切分顺序分别设置每个子文件的索引,向至少两个客户端中的多个目标客户端发送子文件,以将多个子文件分别发送至每个目标客户端,在同一时刻向不同的目标客户端发送的子文件的索引不同。将待共享文件映射到内存中,并将映射到内存中的待共享文件切分为多个子文件,可以同时向不同的客户端发送索引不同的子文件,以避免同一时刻只向其中的一个客户端发送待共享文件,而导致其他客户端处于长时间的等待过程的技术问题。并且,由于内存的访问速率远远高于硬盘的访问速率,每个客户端对每个子文件的占用时间极短,因此可以快速的将多个子文件分别发送给多个客户端,达到同时向不同客户端发送待共享文件的效果,提高了待共享文件的共享速率。
可选的,该发送模块704具体用于根据接收到的每个目标客户端发送的文件下载请求的先后顺序,对每个目标客户端进行排序,获得排序结果;根据排序结果,按照每个子文件的索引向每个目标客户端发送子文件;在向每个目标客户端发送子文件的过程中,若确定向多个目标客户端中的第一目标客户端发送的子文件的发送状态为完成状态,则将向第一目标客户端发送的子文件发送给第二目标客户端,其中,第二目标客户端为与第一目标客户端相邻、且在排序结果中位于第一目标客户端之后的客户端。
可选的,该映射模块702具体用于判断文件下载请求的个数是否大于或等于第一预设个数;若文件下载请求的个数大于或等于第一预设个数,则判断待共享文件是否大于或等于预设阈值;将待共享文件映射到内存中,包括:若待共享文件大于或等于预设阈值,则将待共享文件映射到内存中。
可选的,该切分模块703具体用于按预设文件大小对映射到内存中的待共享文件进行切分,获得多个子文件;按切分顺序分别设置每个子文件的索引。
可选的,该切分模块703具体用于将映射到内存中的待共享文件切分为第二预设个数的子文件;按切分顺序分别设置每个子文件的索引。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种文件下载装置和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种文件下载方法,其特征在于,执行于网盘服务器,包括:
接收至少两个客户端各自发送的文件下载请求,所述文件下载请求用于请求下载所述网盘服务器中的待共享文件;
判断所述文件下载请求的个数是否大于或等于第一预设个数;
若所述文件下载请求的个数大于或等于第一预设个数,则判断所述待共享文件是否大于或等于预设阈值;
响应于所述至少两个客户端各自发送的所述文件下载请求,若所述待共享文件大于或等于所述预设阈值,则将所述待共享文件映射到内存中;
将映射到所述内存中的所述待共享文件切分为多个子文件,并按切分顺序分别设置每个所述子文件的索引;
向所述至少两个客户端中的多个目标客户端发送所述子文件,包括:
记录接收到每个客户端发送的文件下载请求的时间,记录向每个客户端发送的子文件的索引,根据接收到的每个所述目标客户端发送的所述文件下载请求的时间先后顺序,对每个所述目标客户端进行排序,获得排序结果;
根据所述排序结果,按照每个所述子文件的索引向每个所述目标客户端发送所述子文件;
以将所述多个子文件分别发送至每个所述目标客户端;其中,在同一时刻向不同的所述目标客户端发送的所述子文件的索引不同。
2.根据权利要求1所述的方法,其特征在于,所述向所述至少两个客户端中的多个目标客户端发送所述子文件,包括:
在向每个所述目标客户端发送所述子文件的过程中,若确定向所述多个目标客户端中的第一目标客户端发送的所述子文件的发送状态为完成状态,则将向所述第一目标客户端发送的所述子文件发送给第二目标客户端,其中,所述第二目标客户端为与所述第一目标客户端相邻、且在所述排序结果中位于所述第一目标客户端之后的客户端。
3.根据权利要求1所述的方法,其特征在于,所述将映射到所述内存中的所述待共享文件切分为多个子文件,并按切分顺序分别设置每个所述子文件的索引,包括:
按预设文件大小对映射到所述内存中的所述待共享文件进行切分,获得所述多个子文件;
按所述切分顺序分别设置每个所述子文件的索引。
4.根据权利要求1所述的方法,其特征在于,所述将映射到所述内存中的所述待共享文件切分为多个子文件,并按切分顺序分别设置每个所述子文件的索引,包括:
将映射到所述内存中的所述待共享文件切分为第二预设个数的子文件;
按所述切分顺序分别设置每个所述子文件的索引。
5.一种文件下载装置,其特征在于,设置于网盘服务器,包括:
接收模块,用于接收至少两个客户端各自发送的文件下载请求,所述文件下载请求用于请求下载所述网盘服务器中的待共享文件;
判断模块,用于判断所述文件下载请求的个数是否大于或等于第一预设个数;若所述文件下载请求的个数大于或等于第一预设个数,则判断所述待共享文件是否大于或等于预设阈值;
映射模块,用于响应于所述至少两个客户端各自发送的所述文件下载请求,若所述待共享文件大于或等于所述预设阈值,则将所述待共享文件映射到内存中;
切分模块,用于将映射到所述内存中的所述待共享文件切分为多个子文件,并按切分顺序分别设置每个所述子文件的索引;
发送模块,用于向所述至少两个客户端中的多个目标客户端发送所述子文件,记录接收到每个客户端发送的文件下载请求的时间,记录向每个客户端发送的子文件的索引,根据接收到的每个所述目标客户端发送的所述文件下载请求的时间先后顺序,对每个所述目标客户端进行排序,获得排序结果;
根据所述排序结果,按照每个所述子文件的索引向每个所述目标客户端发送所述子文件;
以将所述多个子文件分别发送至每个所述目标客户端;其中,在同一时刻向不同的所述目标客户端发送的所述子文件的索引不同。
6.根据权利要求5所述的装置,其特征在于,所述发送模块,具体用于
在向每个所述目标客户端发送所述子文件的过程中,若确定向所述多个目标客户端中的第一目标客户端发送的所述子文件的发送状态为完成状态,则将向所述第一目标客户端发送的所述子文件发送给第二目标客户端,其中,所述第二目标客户端为与所述第一目标客户端相邻、且在所述排序结果中位于所述第一目标客户端之后的客户端。
7.根据权利要求5所述的装置,其特征在于,所述切分模块,具体用于按预设文件大小对映射到所述内存中的所述待共享文件进行切分,获得所述多个子文件;按所述切分顺序分别设置每个所述子文件的索引。
8.根据权利要求5所述的装置,其特征在于,所述切分模块,具体用于将映射到所述内存中的所述待共享文件切分为第二预设个数的子文件;按所述切分顺序分别设置每个所述子文件的索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910780563.XA CN110493344B (zh) | 2019-08-22 | 2019-08-22 | 文件下载方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910780563.XA CN110493344B (zh) | 2019-08-22 | 2019-08-22 | 文件下载方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110493344A CN110493344A (zh) | 2019-11-22 |
CN110493344B true CN110493344B (zh) | 2022-04-05 |
Family
ID=68552995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910780563.XA Active CN110493344B (zh) | 2019-08-22 | 2019-08-22 | 文件下载方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110493344B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597422A (zh) * | 2020-12-30 | 2021-04-02 | 深圳市世强元件网络有限公司 | 一种pdf文件分割方法和网页中pdf文件加载方法 |
CN114422507A (zh) * | 2022-01-27 | 2022-04-29 | 北京金山云网络技术有限公司 | 文件下载方法、装置和电子设备 |
CN114500514B (zh) * | 2022-02-14 | 2023-12-12 | 京东科技信息技术有限公司 | 用于云存储的文件传输方法及装置、电子设备和存储介质 |
CN115118734A (zh) * | 2022-07-11 | 2022-09-27 | 京东科技信息技术有限公司 | 文件共享方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103188622A (zh) * | 2011-12-30 | 2013-07-03 | 富泰华工业(深圳)有限公司 | 文件收发系统和方法及其文件收发装置 |
CN103414759A (zh) * | 2013-07-22 | 2013-11-27 | 华为技术有限公司 | 网盘文件传输方法和装置 |
CN108960378A (zh) * | 2018-08-08 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 一种数据下载方法、系统、装置和存储介质 |
CN109361762A (zh) * | 2018-11-26 | 2019-02-19 | 量子云未来(北京)信息科技有限公司 | 一种文件传输方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103237300B (zh) * | 2013-04-28 | 2015-09-09 | 小米科技有限责任公司 | 一种文件下载的方法、装置及系统 |
-
2019
- 2019-08-22 CN CN201910780563.XA patent/CN110493344B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103188622A (zh) * | 2011-12-30 | 2013-07-03 | 富泰华工业(深圳)有限公司 | 文件收发系统和方法及其文件收发装置 |
CN103414759A (zh) * | 2013-07-22 | 2013-11-27 | 华为技术有限公司 | 网盘文件传输方法和装置 |
CN108960378A (zh) * | 2018-08-08 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 一种数据下载方法、系统、装置和存储介质 |
CN109361762A (zh) * | 2018-11-26 | 2019-02-19 | 量子云未来(北京)信息科技有限公司 | 一种文件传输方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110493344A (zh) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110493344B (zh) | 文件下载方法和装置 | |
CN109617956B (zh) | 一种数据处理方法和装置 | |
CN111193788A (zh) | 一种音视频流负载均衡方法和装置 | |
CN109474715B (zh) | 一种基于视联网的资源配置方法和装置 | |
CN109768963B (zh) | 一种基于视联网的会议开启方法及系统 | |
CN110602039A (zh) | 一种数据获取方法和系统 | |
CN111193767B (zh) | 请求数据发送方法、装置和集群化服务器系统 | |
CN110557319B (zh) | 一种基于视联网的报文处理方法及装置 | |
CN109005378B (zh) | 一种视频会议的处理方法和系统 | |
CN110650171B (zh) | 一种视联网业务调度系统及方法 | |
CN109151061B (zh) | 一种数据存储方法和装置 | |
CN109347930B (zh) | 一种任务处理方法和装置 | |
CN109451001B (zh) | 一种通讯方法和系统 | |
CN110446058B (zh) | 视频获取方法、系统、设备和计算机可读存储介质 | |
CN110022500B (zh) | 一种丢包处理方法和装置 | |
CN110266577B (zh) | 一种隧道建立方法和视联网系统 | |
CN109743360B (zh) | 一种信息处理方法及装置 | |
CN109474661B (zh) | 一种网络请求事件的处理方法和系统 | |
CN110389771B (zh) | 一种视联网客户端的升级方法和系统 | |
CN108965219B (zh) | 一种基于视联网的数据处理方法及装置 | |
CN110557411A (zh) | 基于视联网的视频流处理方法及装置 | |
CN110266768B (zh) | 一种数据传输方法和系统 | |
CN110784683B (zh) | 一种监控资源的管理方法、装置及存储介质 | |
CN110096854B (zh) | 资源权限分享方法、装置及可读存储介质 | |
CN109451030B (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 | ||
CP03 | Change of name, title or address |
Address after: 33rd Floor, No.1 Huasheng Road, Yuzhong District, Chongqing 400013 Patentee after: VISIONVERA INFORMATION TECHNOLOGY Co.,Ltd. Country or region after: China Address before: 100000 Beijing Dongcheng District Qinglong Hutong 1 Song Hua Building A1103-1113 Patentee before: VISIONVERA INFORMATION TECHNOLOGY Co.,Ltd. Country or region before: China |