CN110661829A - 文件下载方法及装置、客户端和计算机可读存储介质 - Google Patents
文件下载方法及装置、客户端和计算机可读存储介质 Download PDFInfo
- Publication number
- CN110661829A CN110661829A CN201810691559.1A CN201810691559A CN110661829A CN 110661829 A CN110661829 A CN 110661829A CN 201810691559 A CN201810691559 A CN 201810691559A CN 110661829 A CN110661829 A CN 110661829A
- Authority
- CN
- China
- Prior art keywords
- file
- block
- downloaded
- file block
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000006835 compression Effects 0.000 claims description 11
- 238000007906 compression Methods 0.000 claims description 11
- 230000006837 decompression Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种文件下载方法及装置、客户端和计算机可读存储介质,用以提高存储服务器的资源利用率,从而提高从云存储***下载文件的效率,该文件下载方法包括:从云存储***获取待下载文件的文件信息;所述文件信息至少包括:所述文件的大小、存储所述文件的存储服务器列表、文件块分布信息表,所述文件块分布信息表包括:所述文件中各个文件块的文件块信息;根据所述文件的大小在本地磁盘划分出用于存储所述文件的存储空间;根据所述存储服务器列表中存储服务器的个数M创建N个线程,由所述N个线程根据所述文件块分布信息表并发下载所述文件的文件块;其中,所述N与所述M成正比关系;将下载的所述文件块保存至所述存储空间。
Description
技术领域
本申请涉及云存储技术领域,尤其涉及一种文件下载方法及装置、客户端和计算机可读存储介质。
背景技术
随着互联网网速的不断提升以及Web2.0应用的兴起以和移动互联网、智能终端的快速普及,使得云存储的应用和推广成为可能。云存储就是将储存资源放到云上供人存取的一种新兴方案,使用者可以在任何时间、任何地方,透过任何可连网的装置连接到云上方便地存取数据。云存储***中文件下载是其核心功能,而由于网络带宽、文件大小等因素的影响,造成无法快速的从云存储***下载文件。
目前,为了能够快速的从云存储***下载文件,采取的一种下载方式为:针对待下载文件对应的每一个文件块,一般根据该文件块的下载地址(即该文件块在云存储***中的存储位置),创建一个线程下载该文件块。上述下载方式在下载过程中,从文件块出发,未考虑存储文件的各存储服务器的实际情况,可能存在与某些存储服务器建立的线程过多,而与另外些存储服务器又未建立任何线程的问题,从而无法有效的利用存储服务器的资源,使得从云存储***下载文件的效率不能达到很高。
发明内容
有鉴于此,本申请提供一种文件下载方法及装置、客户端和计算机可读存储介质,用以提高存储服务器的资源利用率,从而提高从云存储***下载文件的效率。
第一方面,本申请实施例提供了一种文件下载方法,所述方法应用于客户端,包括:
从云存储***获取待下载文件的文件信息;所述文件信息至少包括:所述文件的大小、存储所述文件的存储服务器列表、文件块分布信息表,所述文件块分布信息表包括:所述文件中各个文件块的文件块信息;
根据所述文件的大小在本地磁盘划分出用于存储所述文件的存储空间;
根据所述存储服务器列表中存储服务器的个数M创建N个线程,由所述N个线程根据所述文件块分布信息表并发下载所述文件的文件块;其中,所述N与所述M成正比关系;
将下载的所述文件块保存至所述存储空间。
上述方法,通过客户端从云存储***获取待下载文件的文件信息,然后根据文件信息中的文件大小在本地磁盘划分出用于存储该文件的存储空间,以及根据文件信息中的存储服务器列表中存储服务器的个数M创建N个线程,之后由这N个线程根据文件信息中的文件块分布信息表并发下载该文件的文件块,并将下载的文件块存储至存储空间,由于在下载过程中,线程的创建是依据存储文件的存储服务器的个数,考虑了存储文件的各存储服务器的实际情况,因此可以提高存储服务器的资源利用率,从而提高从云存储***下载文件的效率。
在一可能的实现方式中,所述文件块信息包括:文件块的序号和所处的存储服务器的地址;
所述根据所述存储服务器列表中存储服务器的个数M创建N个线程包括:
针对每一存储服务器,统计该存储服务器中存储的所述文件的文件块的数量L;
从云存储***获取所述存储服务器支持的最大线程数量X;
根据所述L和所述X为所述存储服务器创建至少一个线程。
该方法中,针对每一存储服务器,统计该存储服务器中存储的待下载文件的文件块的数量L,以及从云存储***获取该存储服务器支持的最大线程数量X,之后根据该存储服务器中存储的待下载文件的文件块的数量L和该存储服务器支持的最大线程数量X,创建至少一个线程下载该存储服务器中的文件块,由于在下载过程中,客户端与各存储服务器建立的线程数,是根据存储服务器各自支持的最大线程数量和各自包含的文件块的数量来确定,考虑了存储服务器各自的实际情况,因此可以提高存储服务器的资源利用率,从而提高从云存储***下载文件的效率。
在一可能的实现方式中,所述文件块信息还包括:文件块的数据偏移量;
所述将下载的所述文件块存储至所述存储空间包括:
在所述文件块分布信息表中查询下载的文件块的数据偏移量;
根据下载的文件块的序号和数据偏移量将下载的文件块存储至所述存储空间。
在一可能的实现方式中,所述文件块分布信息表还包括:所述文件中各个文件块的校验信息;
在下载任意序号的一个文件块之后,该方法还包括:
在所述文件块分布信息表中查询所述文件块的校验信息;
根据所述文件块的校验信息验证该文件块的正确性。
该方法中,通过对下载的文件块进行校验,可以提高文件块的正确性。
在一可能的实现方式中,所述文件信息还包括:压缩算法;
在将下载的文件块存储至所述存储空间之前,该方法还包括:
根据所述压缩算法对下载的文件块进行解压缩处理;
将解压缩后的所述文件块存储至所述存储空间。
在一可能的实现方式中,所述文件信息还包括:原始文件的MD5值;
在将所述文件的所有文件块存储至所述存储空间之后,该方法还包括:
计算下载后的文件的MD5值,并将其与原始文件的MD5值进行比对,若两者的MD5值一致,则验证所述文件下载成功。
第二方面,本申请实施例还提供了一种文件下载装置,包括用于执行第一方面或第一方面的任意可能的实现方式中的文件下载方法的模块。
第三方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现第一方面或第一方面的任意可能的实现方式中的文件下载方法的步骤。
第四方面,本申请实施例还提供了一种客户端,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器用于:
从云存储***获取待下载文件的文件信息;所述文件信息至少包括:所述文件的大小、存储所述文件的存储服务器列表、文件块分布信息表,所述文件块分布信息表包括:所述文件中各个文件块的文件块信息;
根据所述文件的大小在本地磁盘划分出用于存储所述文件的存储空间;
根据所述存储服务器列表中存储服务器的个数M创建N个线程,由所述N个线程根据所述文件块分布信息表并发下载所述文件的文件块;其中,所述N与所述M成正比关系;
将下载的所述文件块存储至所述存储空间。
附图说明
图1为本申请实施例提供的一种文件下载***的结构示意图;
图2为本申请实施例提供的一种文件下载方法的流程示意图;
图3为本申请实施例提供的文件下载装置的第一种结构示意图;
图4为本申请实施例提供的文件下载装置的第二种结构示意图;
图5为本申请实施例提供的文件下载装置的第三种结构示意图;
图6为本申请实施例提供的文件下载装置所在客户端的一种硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
首先,介绍一下本申请实施例提供的技术方案的应用场景的网络架构,参见图1,本申请实施例提供的一种文件下载***,包括:客户端11、云盘12、云存储***13;客户端11与云盘12和云存储***13(简称云存储)连接。
如图1所示,云存储***13可以包括:多个管理服务器131和多个存储服务器132;多个管理服务器131与多个存储服务器132可以通过局域网(LAN)连接。待下载文件对应的文件块存储在云存储***13中的多个存储服务器132上。
云盘12是一种专业的互联网存储工具,是互联网云技术的产物,具有安全稳定、海量存储的特点,它通过互联网为企业和个人提供信息的储存、读取、下载等服务。云盘12上存储有云存储相关信息,该云存储相关信息可以包括:存储待下载文件的云存储***的地址(例如IP端口)、云存储鉴权信息(或者说访问校验信息)。云存储***的地址并非下载地址,属于云存储的管理地址。
文件下载时,用户选择文件(例如可以进入文件目录或者文件列表页面,选择需要下载的文件),然后由客户端11向云盘12发送文件下载请求,其中,文件下载请求可以包括:用户名、密码、待下载文件的文件标识,云盘12根据用户名和密码鉴权通过后,查询待下载文件的文件标识对应的云存储相关信息,并将该云存储相关信息返回给客户端11,然后客户端11根据云存储相关信息中的云存储***的地址与该云存储***13建立连接,并向该云存储***13发送文件信息请求,其中,文件信息请求可以包括:待下载文件的文件标识,接着云存储***13查询待下载文件的文件标识对应的文件信息并返回给客户端11,之后客户端11根据该文件信息从云存储***13下载文件。
其中,文件信息可以包括:文件的大小、存储文件的存储服务器列表、文件块分布信息表。文件块分布信息表可以包括:待下载文件中各个文件块的文件块信息。
上述文件块信息例如可以包括:文件块的序号、数据偏移量和所处的存储服务器的地址。当然,文件块信息还可以包括文件块的大小。
上述存储服务器列表例如可以包括:各存储服务器的IP地址、端口号、验证信息。
需要指出的是,上述云存储相关信息和文件信息都是在文件上传时存储的。
下面着重介绍客户端在与云存储***建立连接后的文件下载的步骤。
参见图2,在客户端侧,本申请实施例提供了一种文件下载方法,该方法包括如下步骤:
S101、从云存储***获取待下载文件的文件信息;
其中,文件信息可以包括:待下载文件的大小、存储待下载文件的存储服务器列表、文件块分布信息表。文件块分布信息表可以包括:待下载文件中各个文件块的文件块信息。
S102、根据所述文件的大小在本地磁盘划分出(或者说预分配)用于存储所述文件的存储空间;
S103、根据所述存储服务器列表中存储服务器的个数M创建N个线程,由所述N个线程根据所述文件块分布信息表并发下载所述文件的文件块;其中,所述N与所述M成正比关系;
上述创建的线程数N与存储服务器列表中存储服务器的个数M成正比关系。也就是说,存储服务器数量越多,创建的线程数也就越多,对于一个存储服务器,一般会创建至少一个线程。
S104、将下载的所述文件块存储(或者说填入)所述存储空间。
在一可能的实现方式中,上述文件块信息包括:文件块的序号和所处的存储服务器的地址;
上述步骤S103中根据所述存储服务器列表中存储服务器的个数M创建N个线程,可以包括:
针对每一存储服务器,统计该存储服务器中存储的所述文件的文件块的数量L;
从云存储***获取所述存储服务器支持的最大线程数量X;
根据所述L和所述X为所述存储服务器创建至少一个线程。
一般来说,对于一个存储服务器,创建的线程数与文件块的数量L和最大线程数量X成正比光系,也就是说,文件块的数量L越多,创建的线程数越多,最大线程数量X越多,创建的线程数越多。
在一可能的实现方式中,上述步骤S103中由所述N个线程根据所述文件块分布信息表并发下载所述文件的文件块,包括:
针对任意序号的一个文件块,在所述文件块分布信息表中查询该文件块所处的存储服务器的地址;
由所述地址的存储服务器对应的线程下载所述文件块。
在一可能的实现方式中,上述文件块信息还可以包括:文件块的数据偏移量;
上述步骤S104中将下载的所述文件块存储至所述存储空间,可以包括:
在所述文件块分布信息表中查询下载的文件块的数据偏移量;
根据下载的文件块的序号和数据偏移量将下载的文件块存储至所述存储空间。
在一可能的实现方式中,上述文件块分布信息表还可以包括:待下载文件中各个文件块的的校验信息;
在下载任意序号的一个文件块之后,该方法还可以包括:
在所述文件块分布信息表中查询所述文件块的校验信息;
根据所述文件块的校验信息验证该文件块的正确性。
在一可能的实现方式中,上述文件信息还可以包括:原始文件的MD5值;
在将所述文件的所有文件块存储至所述存储空间之后,该方法还可以包括:
计算下载后的文件的MD5值,并将其与原始文件的MD5值进行比对,若两者的MD5值一致,则验证所述文件下载成功。
当然,还可以采取其他的方式校验下载的文件,例如可以采取CRC32、SHA1、SHA256等方式进行校验。
需要指出的是,对于视频、图片等文件一般采用直接上传的方式存储到云存储***,而对于文本文件一般先进行压缩,之后再上传存储到云存储***。因此,对于压缩的文件,下载后还需进行解压缩处理,客户端可以根据接收到的文件信息确定是否需要解压缩,例如若文件信息中包含压缩算法,则确定需要进行解压缩处理,否则,确定不需要进行解压缩处理。
在一可能的实现方式中,上述文件信息还可以包括:压缩算法;
在将下载的文件块存储至所述存储空间之前,该方法还可以包括:
根据所述压缩算法对下载的文件块进行解压缩处理;
将解压缩后的所述文件块存储至所述存储空间。
在一可能的实现方式中,在文件下载完成后,该方法还可以包括:
向云盘发送下载成功消息;该下载成功消息可以包括:文件标识、文件名称、文件大小、用户名、密码、下载该文件的IP地址。
在一可能的实现方式中,在文件下载完成后,该方法还可以包括:
提示用户下载成功。
例如:可以通过语音提示用户下载成功,也可以通过文本对话框提示用户下载成功。
基于同一发明构思,参见图3,在客户端侧,本申请实施例提供了一种文件下载装置,包括:文件信息获取模块21、预分配模块22、下载模块23和处理模块24。
其中,文件信息获取模块21,用于从云存储***获取待下载文件的文件信息;
其中,文件信息可以包括:待下载文件的大小、存储待下载文件的存储服务器列表、文件块分布信息表。文件块分布信息表可以包括:待下载文件中各个文件块的文件块信息。
预分配模块22,用于根据所述文件的大小在本地磁盘划分出用于存储所述文件的存储空间;
下载模块23,用于根据所述存储服务器列表中存储服务器的个数M创建N个线程,由所述N个线程根据所述文件块分布信息表并发下载所述文件的文件块;其中,所述N与所述M成正比关系;
处理模块24,用于将下载的所述文件块存储至所述存储空间。
在一可能的实现方式中,上述文件块信息可以包括:文件块的序号和所处的存储服务器的地址;
下载模块23可以用于:
针对每一存储服务器,统计该存储服务器中存储的所述文件的文件块的数量L;
从云存储***获取所述存储服务器支持的最大线程数量X;
根据所述L和所述X为所述存储服务器创建至少一个线程。
在一可能的实现方式中,上述文件块信息还可以包括:文件块的数据偏移量;
处理模块24可以用于:
在所述文件块分布信息表中查询下载的文件块的数据偏移量;
根据下载的文件块的序号和数据偏移量将下载的文件块存储至所述存储空间。
在一可能的实现方式中,上述文件块分布信息表还可以包括:待下载文件中各个文件块的校验信息;
参加图4,上述装置还可以包括:文件块校验模块25;
文件块校验模块25,用于在下载任意序号的一个文件块之后,在所述文件块分布信息表中查询所述文件块的校验信息,并根据所述文件块的校验信息验证该文件块的正确性。
在一可能的实现方式中,上述文件信息还可以包括:原始文件的MD5值;
参加图4,上述装置还可以包括:文件校验模块26;
文件校验模块26,用于在将所述文件的所有文件块存储至所述存储空间之后,计算下载后的文件的MD5值,并将其与原始文件的MD5值进行比对,若两者的MD5值一致,则验证所述文件下载成功。
在一可能的实现方式中,上述文件信息还可以包括:压缩算法;
参加图5,上述装置还可以包括:解压缩模块27;
解压缩模块27,用于在将下载的文件块存储至所述存储空间之前,根据所述压缩算法对下载的文件块进行解压缩处理;
上述处理模块24具体可以用于将解压缩后的所述文件块存储至所述存储空间。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
基于同一发明构思,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任意可能的实现方式中的文件下载方法的步骤。
可选地,该存储介质具体可以为存储器。
基于同一发明构思,本申请实施例还提供了一种客户端,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器用于:
从云存储***获取待下载文件的文件信息;所述文件信息至少包括:所述文件的大小、存储所述文件的存储服务器列表、文件块分布信息表,所述文件块分布信息表包括:所述文件中各个文件块的文件块信息;
根据所述文件的大小在本地磁盘划分出用于存储所述文件的存储空间;
根据所述存储服务器列表中存储服务器的个数M创建N个线程,由所述N个线程根据所述文件块分布信息表并发下载所述文件的文件块;其中,所述N与所述M成正比关系;
将下载的所述文件块存储至所述存储空间。
需要指出的是,本申请文件下载装置的实施例可以应用在文件下载***的客户端上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在客户端的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本申请文件下载装置所在客户端的一种硬件结构图,除了图6所示的处理器71、内存72、网络接口73、非易失性存储器74、以及内部总线75之外,实施例中装置所在的客户端通常根据该防火墙或服务器的实际功能,还可以包括其他硬件,对此不再赘述。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (14)
1.一种文件下载方法,其特征在于,所述方法应用于客户端,包括:
从云存储***获取待下载文件的文件信息;所述文件信息至少包括:所述文件的大小、存储所述文件的存储服务器列表、文件块分布信息表,所述文件块分布信息表包括:所述文件中各个文件块的文件块信息;
根据所述文件的大小在本地磁盘划分出用于存储所述文件的存储空间;
根据所述存储服务器列表中存储服务器的个数M创建N个线程,由所述N个线程根据所述文件块分布信息表并发下载所述文件的文件块;其中,所述N与所述M成正比关系;
将下载的所述文件块存储至所述存储空间。
2.根据权利要求1所述的方法,其特征在于,所述文件块信息包括:文件块的序号和所处的存储服务器的地址;
所述根据所述存储服务器列表中存储服务器的个数M创建N个线程包括:
针对每一存储服务器,统计该存储服务器中存储的所述文件的文件块的数量L;
从云存储***获取所述存储服务器支持的最大线程数量X;
根据所述L和所述X为所述存储服务器创建至少一个线程。
3.根据权利要求2所述的方法,其特征在于,所述文件块信息还包括:文件块的数据偏移量;
所述将下载的所述文件块存储至所述存储空间包括:
在所述文件块分布信息表中查询下载的文件块的数据偏移量;
根据下载的文件块的序号和数据偏移量将下载的文件块存储至所述存储空间。
4.根据权利要求1所述的方法,其特征在于,所述文件块分布信息表还包括:所述文件中各个文件块的校验信息;
在下载任意序号的一个文件块之后,该方法还包括:
在所述文件块分布信息表中查询所述文件块的校验信息;
根据所述文件块的校验信息验证该文件块的正确性。
5.根据权利要求1所述的方法,其特征在于,所述文件信息还包括:压缩算法;
在将下载的文件块存储至所述存储空间之前,该方法还包括:
根据所述压缩算法对下载的文件块进行解压缩处理;
将解压缩后的所述文件块存储至所述存储空间。
6.根据权利要求1所述的方法,其特征在于,所述文件信息还包括:原始文件的MD5值;
在将所述文件的所有文件块存储至所述存储空间之后,该方法还包括:
计算下载后的文件的MD5值,并将其与原始文件的MD5值进行比对,若两者的MD5值一致,则验证所述文件下载成功。
7.一种文件下载装置,其特征在于,所述装置包括:
文件信息获取模块,用于从云存储***获取待下载文件的文件信息;所述文件信息至少包括:所述文件的大小、存储所述文件的存储服务器列表、文件块分布信息表,所述文件块分布信息表包括:所述文件中各个文件块的文件块信息;
预分配模块,用于根据所述文件的大小在本地磁盘划分出用于存储所述文件的存储空间;
下载模块,用于根据所述存储服务器列表中存储服务器的个数M创建N个线程,由所述N个线程根据所述文件块分布信息表并发下载所述文件的文件块;其中,所述N与所述M成正比关系;
处理模块,用于将下载的所述文件块存储至所述存储空间。
8.根据权利要求7所述的装置,其特征在于,所述文件块信息包括:文件块的序号和所处的存储服务器的地址;
所述下载模块用于:
针对每一存储服务器,统计该存储服务器中存储的所述文件的文件块的数量L;
从云存储***获取所述存储服务器支持的最大线程数量X;
根据所述L和所述X为所述存储服务器创建至少一个线程。
9.根据权利要求8所述的装置,其特征在于,所述文件块信息还包括:文件块的数据偏移量;
所述处理模块用于:
在所述文件块分布信息表中查询下载的文件块的数据偏移量;
根据下载的文件块的序号和数据偏移量将下载的文件块存储至所述存储空间。
10.根据权利要求7所述的装置,其特征在于,所述文件块分布信息表还包括:所述文件中各个文件块的校验信息;
所述装置还包括:文件块校验模块;
所述文件块校验模块,用于在下载任意序号的一个文件块之后,在所述文件块分布信息表中查询所述文件块的校验信息,并根据所述文件块的校验信息验证该文件块的正确性。
11.根据权利要求7所述的装置,其特征在于,所述文件信息还包括:压缩算法;
所述装置还包括:解压缩模块;
所述解压缩模块,用于在将下载的文件块存储至所述存储空间之前,根据所述压缩算法对下载的文件块进行解压缩处理;
所述处理模块具体用于将解压缩后的所述文件块存储至所述存储空间。
12.根据权利要求7所述的装置,其特征在于,所述文件信息还包括:原始文件的MD5值;
所述装置还包括:文件校验模块;
所述文件校验模块,用于在将所述文件的所有文件块存储至所述存储空间之后,计算下载后的文件的MD5值,并将其与原始文件的MD5值进行比对,若两者的MD5值一致,则验证所述文件下载成功。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-6所述方法的步骤。
14.一种客户端,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器用于:
从云存储***获取待下载文件的文件信息;所述文件信息至少包括:所述文件的大小、存储所述文件的存储服务器列表、文件块分布信息表,所述文件块分布信息表包括:所述文件中各个文件块的文件块信息;
根据所述文件的大小在本地磁盘划分出用于存储所述文件的存储空间;
根据所述存储服务器列表中存储服务器的个数M创建N个线程,由所述N个线程根据所述文件块分布信息表并发下载所述文件的文件块;其中,所述N与所述M成正比关系;
将下载的所述文件块存储至所述存储空间。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810691559.1A CN110661829B (zh) | 2018-06-28 | 2018-06-28 | 文件下载方法及装置、客户端和计算机可读存储介质 |
PCT/CN2019/093074 WO2020001488A1 (zh) | 2018-06-28 | 2019-06-26 | 文件下载方法及装置、客户端和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810691559.1A CN110661829B (zh) | 2018-06-28 | 2018-06-28 | 文件下载方法及装置、客户端和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110661829A true CN110661829A (zh) | 2020-01-07 |
CN110661829B CN110661829B (zh) | 2021-09-21 |
Family
ID=68986165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810691559.1A Active CN110661829B (zh) | 2018-06-28 | 2018-06-28 | 文件下载方法及装置、客户端和计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110661829B (zh) |
WO (1) | WO2020001488A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287146A (zh) * | 2019-06-19 | 2019-09-27 | 上海连尚网络科技有限公司 | 应用下载的方法、设备和计算机存储介质 |
CN112311897A (zh) * | 2020-11-17 | 2021-02-02 | 腾讯科技(深圳)有限公司 | 资源文件下载方法、装置、设备及介质 |
CN113452733A (zh) * | 2020-03-25 | 2021-09-28 | 北京沃东天骏信息技术有限公司 | 文件下载方法和装置 |
CN114449047A (zh) * | 2022-01-28 | 2022-05-06 | 深圳灵动创新信息技术有限公司 | 一种文件数据的处理方法和装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111901377B (zh) * | 2020-06-28 | 2022-12-27 | 苏州浪潮智能科技有限公司 | 一种基于ai训练平台的文件传输方法、装置、设备和介质 |
CN113824760B (zh) * | 2021-08-03 | 2024-01-30 | 中债金科信息技术有限公司 | 文件并发分块上传方法、装置、电子设备及存储介质 |
CN115658450B (zh) * | 2022-10-20 | 2023-05-16 | 广州思智时代科技有限公司 | 一种软件测试*** |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710857A (zh) * | 2004-06-18 | 2005-12-21 | 千橡寰宇科技发展(北京)有限公司 | 一种实现文件加速下载的***及方法 |
CN201274500Y (zh) * | 2008-09-16 | 2009-07-15 | 王鹏 | 基于mpi的并行文件传输服务器群*** |
CN101605148A (zh) * | 2009-05-21 | 2009-12-16 | 何吴迪 | 云存储的并行***的架构方法 |
CN102833294A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 基于云存储的文件处理方法、***及服务器集群*** |
CN102882981A (zh) * | 2012-10-19 | 2013-01-16 | 南京邮电大学 | 一种对等结构云平台下节点任务的负载均衡方法 |
CN103106068A (zh) * | 2013-02-28 | 2013-05-15 | 江苏物联网研究发展中心 | 物联网大数据快速校验方法 |
CN103825943A (zh) * | 2014-02-25 | 2014-05-28 | 国家电网公司 | 基于p2p的scorm标准课件播放***及其实现方法 |
CN103841181A (zh) * | 2014-01-24 | 2014-06-04 | 东蓝数码股份有限公司 | 一种局域网多线程文件传输方法 |
WO2014205839A1 (zh) * | 2013-06-29 | 2014-12-31 | 华为技术有限公司 | 一种文件下载的方法和装置 |
CN104391930A (zh) * | 2014-11-21 | 2015-03-04 | 用友软件股份有限公司 | 分布式文件存储装置和方法 |
CN104702646A (zh) * | 2013-12-09 | 2015-06-10 | 腾讯科技(深圳)有限公司 | 数据传输方法及相关装置和通信*** |
CN105187551A (zh) * | 2015-09-29 | 2015-12-23 | 成都四象联创科技有限公司 | 基于云平台的分布式计算方法 |
CN105404645A (zh) * | 2015-10-27 | 2016-03-16 | 北京乐动卓越科技有限公司 | 文件服务器***中的文件管理方法及文件服务器*** |
CN105450769A (zh) * | 2015-12-10 | 2016-03-30 | 浪潮通用软件有限公司 | 一种文件传输的方法及装置 |
CN106161524A (zh) * | 2015-04-03 | 2016-11-23 | ***通信集团上海有限公司 | 一种基于分布式资源节点的资源下载方法及装置 |
CN107623709A (zh) * | 2016-07-15 | 2018-01-23 | 北京金山云网络技术有限公司 | 一种文件下载方法及装置 |
CN108076117A (zh) * | 2016-11-14 | 2018-05-25 | 腾讯科技(深圳)有限公司 | 一种数据下载方法及用户终端 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102307210B (zh) * | 2011-01-13 | 2014-12-10 | 国云科技股份有限公司 | 一种数据下载***及其数据管理和下载方法 |
CN102710630B (zh) * | 2012-05-29 | 2016-03-16 | 新华网股份有限公司 | 一种多线程分片的云上传下载方法及*** |
MX2013005303A (es) * | 2013-05-10 | 2013-08-07 | Fondo De Informacion Y Documentacion Para La Ind Infotec | Un sistema y un proceso de alto desempeño para el tratamiento y almacenamiento de datos, basado en componentes de bajo costo, que garantiza la integridad y disponibilidad de los datos para su propia administracion. |
CN104462324A (zh) * | 2014-12-03 | 2015-03-25 | 浪潮电子信息产业股份有限公司 | 一种hdfs多线程并行下载方法 |
-
2018
- 2018-06-28 CN CN201810691559.1A patent/CN110661829B/zh active Active
-
2019
- 2019-06-26 WO PCT/CN2019/093074 patent/WO2020001488A1/zh active Application Filing
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710857A (zh) * | 2004-06-18 | 2005-12-21 | 千橡寰宇科技发展(北京)有限公司 | 一种实现文件加速下载的***及方法 |
CN201274500Y (zh) * | 2008-09-16 | 2009-07-15 | 王鹏 | 基于mpi的并行文件传输服务器群*** |
CN101605148A (zh) * | 2009-05-21 | 2009-12-16 | 何吴迪 | 云存储的并行***的架构方法 |
CN102833294A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 基于云存储的文件处理方法、***及服务器集群*** |
CN102882981A (zh) * | 2012-10-19 | 2013-01-16 | 南京邮电大学 | 一种对等结构云平台下节点任务的负载均衡方法 |
CN103106068A (zh) * | 2013-02-28 | 2013-05-15 | 江苏物联网研究发展中心 | 物联网大数据快速校验方法 |
WO2014205839A1 (zh) * | 2013-06-29 | 2014-12-31 | 华为技术有限公司 | 一种文件下载的方法和装置 |
CN104702646A (zh) * | 2013-12-09 | 2015-06-10 | 腾讯科技(深圳)有限公司 | 数据传输方法及相关装置和通信*** |
CN103841181A (zh) * | 2014-01-24 | 2014-06-04 | 东蓝数码股份有限公司 | 一种局域网多线程文件传输方法 |
CN103825943A (zh) * | 2014-02-25 | 2014-05-28 | 国家电网公司 | 基于p2p的scorm标准课件播放***及其实现方法 |
CN104391930A (zh) * | 2014-11-21 | 2015-03-04 | 用友软件股份有限公司 | 分布式文件存储装置和方法 |
CN106161524A (zh) * | 2015-04-03 | 2016-11-23 | ***通信集团上海有限公司 | 一种基于分布式资源节点的资源下载方法及装置 |
CN105187551A (zh) * | 2015-09-29 | 2015-12-23 | 成都四象联创科技有限公司 | 基于云平台的分布式计算方法 |
CN105404645A (zh) * | 2015-10-27 | 2016-03-16 | 北京乐动卓越科技有限公司 | 文件服务器***中的文件管理方法及文件服务器*** |
CN105450769A (zh) * | 2015-12-10 | 2016-03-30 | 浪潮通用软件有限公司 | 一种文件传输的方法及装置 |
CN107623709A (zh) * | 2016-07-15 | 2018-01-23 | 北京金山云网络技术有限公司 | 一种文件下载方法及装置 |
CN108076117A (zh) * | 2016-11-14 | 2018-05-25 | 腾讯科技(深圳)有限公司 | 一种数据下载方法及用户终端 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287146A (zh) * | 2019-06-19 | 2019-09-27 | 上海连尚网络科技有限公司 | 应用下载的方法、设备和计算机存储介质 |
CN110287146B (zh) * | 2019-06-19 | 2021-07-20 | 上海连尚网络科技有限公司 | 应用下载的方法、设备和计算机存储介质 |
CN113452733A (zh) * | 2020-03-25 | 2021-09-28 | 北京沃东天骏信息技术有限公司 | 文件下载方法和装置 |
CN112311897A (zh) * | 2020-11-17 | 2021-02-02 | 腾讯科技(深圳)有限公司 | 资源文件下载方法、装置、设备及介质 |
CN114449047A (zh) * | 2022-01-28 | 2022-05-06 | 深圳灵动创新信息技术有限公司 | 一种文件数据的处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020001488A1 (zh) | 2020-01-02 |
CN110661829B (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110661829B (zh) | 文件下载方法及装置、客户端和计算机可读存储介质 | |
CN111447102B (zh) | Sdn网络设备访问方法、装置、计算机设备及存储介质 | |
WO2017215646A1 (zh) | 数据传输方法和装置 | |
CN110213290B (zh) | 数据获取方法、api网关以及存储介质 | |
CN105429929B (zh) | 一种信息处理方法、客户端、服务器及*** | |
CN112416964A (zh) | 一种数据处理的方法、装置、***、计算机设备及计算机可读存储介质 | |
CN107748849A (zh) | 一种基于网络文件***的权限控制方法及*** | |
CN105554136B (zh) | 备份数据还原方法、装置及*** | |
CN106899564B (zh) | 一种登录方法和装置 | |
CN106203179B (zh) | 一种对文件的完整性校验***及方法 | |
CN109558710B (zh) | 用户登录方法、装置、***及存储介质 | |
CN109729139A (zh) | 访问请求转发方法、装置、设备及可读存储介质 | |
CN105184559B (zh) | 一种支付***及方法 | |
CN113271308B (zh) | ***登录鉴权方法、装置、计算机设备及可读存储介质 | |
CN112118189B (zh) | 一种流量采样方法、计算机设备及计算机可读存储介质 | |
CN111147235B (zh) | 对象访问方法、装置、电子设备及机器可读存储介质 | |
CN111090616B (zh) | 一种文件管理方法、对应装置、设备及存储介质 | |
CN109829321B (zh) | 一种认证身份的方法、装置、设备及存储介质 | |
CN109818915B (zh) | 一种信息处理方法及装置、服务器及可读存储介质 | |
CN105871982A (zh) | 内容推送的方法、装置以及*** | |
CN114372240A (zh) | 数据获取方法、装置、终端及计算机可读存储介质 | |
CN109302446B (zh) | 跨平台访问方法、装置、电子设备及存储介质 | |
CN111382379B (zh) | 一种导入带图片的配置数据的方法及终端 | |
CN109033189B (zh) | 链路结构日志的压缩方法、装置、服务器及可读存储介质 | |
CN107704557B (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 |