CN105208108A - Web环境下的文件上传/下载方法及系统、服务器、客户端 - Google Patents

Web环境下的文件上传/下载方法及系统、服务器、客户端 Download PDF

Info

Publication number
CN105208108A
CN105208108A CN201510547505.4A CN201510547505A CN105208108A CN 105208108 A CN105208108 A CN 105208108A CN 201510547505 A CN201510547505 A CN 201510547505A CN 105208108 A CN105208108 A CN 105208108A
Authority
CN
China
Prior art keywords
file
files
blocks
check value
content
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
Application number
CN201510547505.4A
Other languages
English (en)
Other versions
CN105208108B (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510547505.4A priority Critical patent/CN105208108B/zh
Publication of CN105208108A publication Critical patent/CN105208108A/zh
Application granted granted Critical
Publication of CN105208108B publication Critical patent/CN105208108B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Abstract

本发明公开了一种Web环境下的文件上传/下载方法及系统、服务器、客户端。其中文件上传方法包括:将包含文件标识的文件上传请求发送至服务器;接收服务器返回的校验文件,校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;根据校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;根据校验结果,向服务器反馈不同的文件内容,以供服务器根据不同的文件内容重构文件。本发明采用分块传输策略,尽可能的仅上传/下载内容不同的文件块,最大限度的减少网络流量,降低网络流量费用,降低经济成本。

Description

Web环境下的文件上传/下载方法及系统、服务器、客户端
技术领域
本发明涉及互联网技术领域,具体涉及一种Web环境下的文件上传/下载方法、系统及服务器。
背景技术
随着互联网的发展,互联网中的资源越来越丰富,目前有很多专门的资源库,如网盘或云盘等,用户可向资源库上传文件,或从资源库下载文件。上传文件是指将文件传给服务器(或者云端),下载文件是指将服务器存储的文件下载到本地客户端。
现有技术提供的一种上传/下载文件的方式是利用客户端软件来实现,客户端软件可采用TCP(TransmissionControlProtocol,传输控制协议)、FTP(FileTransferProtocol,文件传输协议)等协议上传/下载文件,客户端软件能够较容易地控制整个上传/下载过程。但是,基于TCP、FTP或其它协议的方案的使用场景是受限制的,它容易被防火墙或网关拦截,导致上传/下载失败。
现有技术提供的另一种上传/下载文件的方式是利用浏览器来实现,浏览器主要采用HTTP(HyperTextTransferProtocol,超文本传输协议)上传/下载文件。在Web环境下,基于HTTP协议的方案比较容易穿透各种防火墙和网关,不容易被拦截。但是,由于浏览器有安全限制,通常难以直接读取文件内容,因此基于浏览器上传/下载文件的处理方式都是整文件上传/下载,在传输比较大的文件时,会导致超时、网络堵塞以及耗费网络流量等问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的Web环境下的文件上传/下载方法及系统、服务器、客户端。
根据本发明的一个方面,提供了一种Web环境下的文件上传方法,包括:
将包含文件标识的文件上传请求发送至服务器,用以请求与待上传的文件对应的校验文件;
接收服务器返回的所述校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
根据所述校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
根据校验结果,向服务器反馈不同的文件内容,以供服务器根据所述不同的文件内容重构所述文件。
根据本发明的一个方面,还提供了一种Web环境下的文件上传方法,包括:
接收客户端发送的包含文件标识的文件上传请求;
根据所述文件标识查找到与待上传的文件对应的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
将所述校验文件返回给所述客户端,以供所述客户端根据所述校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
接收所述客户端反馈的不同的文件内容,根据所述不同的文件内容重构所述文件。
根据本发明的一个方面,提供了一种客户端,用于在Web环境下向服务器上传文件,其包括:
第一发送模块,适于将包含文件标识的文件上传请求发送至服务器,用以请求与待上传的文件对应的校验文件;
第一接收模块,适于接收服务器返回的所述校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
校验模块,适于根据所述校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
所述第一发送模块还适于:根据校验结果,向服务器反馈不同的文件内容,以供服务器根据所述不同的文件内容重构所述文件。
根据本发明的一个方面,提供了一种服务器,用于在Web环境下接收客户端上传的文件,其包括:
第二接收模块,适于接收客户端发送的包含文件标识的文件上传请求;
查找模块,适于根据所述文件标识查找到与待上传的文件对应的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
第二发送模块,适于将所述校验文件返回给所述客户端,以供所述客户端根据所述校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
重构模块,适于根据所述第二接收模块接收到的所述不同的文件内容重构所述文件。
根据本发明的一个方面,提供了一种Web环境下的文件上传系统,包括:上述服务器以及客户端。
根据本发明的另一方面,提供了一种Web环境下的文件下载方法,包括:
接收客户端发送的用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
根据所述校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
根据校验结果,向客户端反馈不同的文件内容,以供客户端根据所述不同的文件内容重构所述文件。
根据本发明的另一方面,还提供了一种Web环境下的文件下载方法,包括:
向服务器发送用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;以供所述服务器根据所述校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
接收所述服务器反馈的不同的文件内容,根据所述不同的文件内容重构所述文件。
根据本发明的另一方面,提供了一种服务器,用于在Web环境下向客户端提供下载文件,其包括:
第一接收模块,适于接收客户端发送的用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
校验模块,适于根据所述校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
第一发送模块,适于根据校验结果,向客户端反馈不同的文件内容,以供客户端根据所述不同的文件内容重构所述文件。
根据本发明的另一方面,提供了一种客户端,用于在Web环境下从服务器处下载文件,其包括:
第二发送模块,适于向服务器发送用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;以供所述服务器根据所述校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
第二接收模块,适于接收所述服务器反馈的不同的文件内容;
重构模块,适于根据所述不同的文件内容重构所述文件。
根据本发明的另一方面,提供了一种Web环境下的文件下载系统,包括:上述服务器及客户端。
本发明采用分块传输策略,尽可能的仅上传/下载内容不同的文件块,最大限度的减少网络流量,降低网络流量费用,降低经济成本;而且,服务器采用分块存储策略,可以有效减少服务端的存储空间,降低存储方面的经济成本。本发明方案在Web环境下采用HTTP协议传输文件,相比较利用客户端软件传输文件的方式,可穿透大部分防火墙,降低被拦截的风险,因而适用于多种场景。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明提供的Web环境下的文件上传方法实施例一的流程图;
图2示出了本发明提供的Web环境下的文件上传方法实施例二的流程图;
图3示出了本发明提供的Web环境下的文件上传方法实施例三的流程图;
图4示出了本发明提供的Web环境下的文件上传方法实施例四的流程图;
图5示出了本发明提供的Web环境下的文件下载方法实施例一的流程图;
图6示出了本发明提供的Web环境下的文件下载方法实施例二的流程图;
图7示出了本发明提供的Web环境下的文件下载方法实施例三的流程图;
图8示出了本发明提供的Web环境下的文件下载方法实施例四的流程图;
图9示出了本发明提供的用于在Web环境下向服务器上传文件的客户端的实施例的功能框图;
图10示出了本发明提供的用于在Web环境下接收客户端上传的文件的服务器的实施例的功能框图;
图11示出了本发明提供的Web环境下的文件上传系统的实施例的功能框图;
图12示出了本发明提供的用于在Web环境下向客户端提供下载文件的服务器的实施例的功能框图;
图13示出了本发明提供的用于在Web环境下从服务器处下载文件的客户端的实施例的功能框图;
图14示出了本发明提供的Web环境下的文件下载系统的实施例的功能框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明提供了一种Web环境下的文件上传/下载方案,在Web环境下,采用HTTP协议传输文件,相比较利用客户端软件传输文件的方式,本发明方案可穿透大部分防火墙,降低被拦截的风险,因而适用于多种场景。同时,为了避免超时、网络堵塞以及耗费网络流量等问题,本发明采用分块传输和存储策略,尽可能的仅上传/下载内容不同的文件块,最大限度的减少网络流量,并且有效地减少服务器的存储空间,降低存储方面的经济成本。
下面分别从文件上传和文件下载两方面描述本发明的技术方案,以下实施例以单个文件为例说明,所描述的通信过程均基于HTTP协议。
图1示出了本发明提供的Web环境下的文件上传方法实施例一的流程图。本方法是从客户端侧描述的文件上传方案,如图1所示,该方法包括如下步骤:
步骤S101,将包含文件标识的文件上传请求发送至服务器,用以请求与待上传的文件对应的校验文件。
在客户端侧有上传文件的需求时,客户端首先向服务器发送文件上传请求,该文件上传请求包含文件标识,如文件名称和/或文件名称MD5值、文件注册码等标识信息。服务器根据文件标识查找对应的校验文件。
步骤S102,接收服务器返回的校验文件,该校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值。
服务器返回的校验文件包含服务器对文件进行分块处理后的信息,这里客户端和服务器预先约定分块的长度作为预设值,如每个文件块的长度为K,服务器从头至尾按照长度K对文件进行分块,若最后一个文件块长度不足K,视为一个文件块。服务器为每个文件块设定唯一标识,例如以序号作为文件块的标识,并计算整个文件的校验值以及每个文件块的弱校验值和强校验值。
可选地,弱校验值可以为CRC-32值或Adler-32值,即通过CRC-32或Adler-32算法计算得到的校验值,这种弱校验算法具有匹配速度快的优势。强校验值可以为MD5值或SHA-1值,即通过MD5或SHA-1算法计算得到的校验值,这种强校验算法具有匹配精确度高的优势。本发明利用弱校验算法和强校验算法各自的优势,能在处理速度和计算准确度方面取得平衡。本发明弱校验值和强校验值不仅限于通过上述算法得到,还可以采用其它现有技术提供的校验算法,不再一一举例。
服务器将各个文件块的标识、弱校验值以及强校验值(可选还有整个文件的校验值)写入校验文件中,然后将校验文件返回给客户端。
步骤S103,根据校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块。
本步骤中,首先对客户端存储的待上传的文件计算以预设值为长度的文件块的弱校验值和强校验值,所述预设值为文件块的长度值,即K。本方法通过比对整个文件块的弱校验值和强校验值进行校验,具体地,对于每个文件块,通过如下子步骤进行比对:
子步骤S1031,判断校验文件中该文件块的弱校验值是否与客户端计算的文件块的弱校验值相同,若是,则执行步骤S1033;若否,则执行步骤S1032。
子步骤S1032,将该文件块作为第二文件块。
子步骤S1033,判断校验文件中该文件块的强校验值与客户端计算的文件块的强校验值是否相同,若是,则执行步骤S1034;若否,则执行步骤S1032。
子步骤S1034,将该文件块作为第一文件块。
本方法通过对比弱校验值和强校验值,判断服务器是否存储有客户端要上传的文件块。其中弱校验值对比的处理速度更快,用于确定不同的文件块;强校验值对比的判断准确度更高,用于进一步确认相同的文件块,最终得到对比结果是服务器存储的文件块与客户端存储的文件块中内容相同的第一文件块和内容不同的第二文件块。
步骤S104,根据校验结果,向服务器反馈不同的文件内容,以供服务器根据不同的文件内容重构文件。
客户端向服务器通知校验结果,对于第一文件块,仅上传第一文件块的标识即可,对于第二文件块,需上传第二文件块的内容和标识。服务器根据第一文件块的标识从服务器存储的内容中查找到第一文件块的内容,结合客户端上传的第二文件块的内容,按照标识重构出整个文件。
上述步骤S101-步骤S104可以组成本发明一个完整的实施例。进一步的,作为另一种实施方式,步骤S102接收到的校验文件还可包括文件的校验值。在步骤S103之前还包括:根据文件的校验值判断服务器是否存储有相同的文件;若判断出服务器存储有相同的文件,则显示客户端无需上传文件的提示消息;若判断出服务器没有存储相同的文件,则执行步骤S103。也就是说,在校验文件块之前可先对比服务器是否存储有相同的整文件,如果发现服务器存储有该文件,那么提示用户无需上传该文件。
可选地,在上述实施例中,客户端在请求校验文件之前,首先计算文件大小,记为S。判断S是否小于预设阈值T,若是,则直接传输整个文件给服务器;若否,则再向服务器请求校验文件。T是一个文件大小的阈值,为了节省网络流量,在部分流程中以传输分块信息代替实际的分块内容;如果文件较小,传输分块信息的成本大于传输分块内容的成本,就没有必要采用分块策略。T是一个文件大小分界标准,在实际场景中单独设置。
图2示出了本发明提供的Web环境下的文件上传方法实施例二的流程图。本方法是从服务器侧描述的文件上传方案,如图2所示,该方法包括如下步骤:
步骤S201,接收客户端发送的包含文件标识的文件上传请求。
步骤S202,根据文件标识查找到与待上传的文件对应的校验文件,该校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值。
步骤S203,将校验文件返回给客户端,以供客户端根据校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块。
步骤S204,接收客户端反馈的不同的文件内容,根据不同的文件内容重构所述文件。
具体地说,接收客户端反馈的内容相同的第一文件块的标识和内容不同的第二文件块及其标识;根据第一文件块的标识查找服务器端存储的第一文件块,将第一文件块和第二文件块依标识组合在一起,得到文件。
根据上述实施例提供的Web环境下的文件上传方法,在客户端上传文件之前,先请求服务器侧的校验文件,客户端根据校验文件校验是否存储有相应的文件块,若是,则客户端仅上传内容不同的文件块即可。本发明采用分块传输策略,尽可能的仅上传内容不同的文件块,最大限度的减少网络流量,降低网络流量费用,降低经济成本;而且,服务器采用分块存储策略,可以有效减少服务端的存储空间,降低存储方面的经济成本。本方案在Web环境下采用HTTP协议传输文件,相比较利用客户端软件传输文件的方式,可穿透大部分防火墙,降低被拦截的风险,因而适用于多种场景。
图3示出了本发明提供的Web环境下的文件上传方法实施例三的流程图。本方法是从客户端侧描述的文件上传方案,本实施例与文件上传方法实施例一的主要区别在于对待上传的文件的校验方法不同,其它内容不再赘述。
如图3所示,该方法包括如下步骤:
步骤S301,将包含文件标识的文件上传请求发送至服务器,用以请求与待上传的文件对应的校验文件。
步骤S302,接收服务器返回的校验文件,该校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值。
步骤S303,对客户端存储的待上传的文件计算以字节为粒度、以预设值为长度的各个滚动文件块的弱校验值,预设值为文件块的长度值。
本实施例利用滚动哈希算法,对客户端存储的待上传的文件计算滚动弱校验值,滚动弱校验值的计算方法与服务器采用的计算弱校验值的方法相同,如Adler-32算法。滚动是从文件的第一个字节开始,以字节为粒度、以K为长度计算每个滚动文件块的滚动校验值。举例来说,设K为5个字节长度,第1个滚动文件块为第1-5个连续字节组成的块,第2个滚动文件块为第2-6个连续字节组成的块,依次类推直至计算到文件的最后一个字节。
步骤S304,将校验文件包括的各个文件块的弱校验值与客户端计算得到的各个滚动文件块的弱校验值进行比对,得到与滚动文件块内容相同的文件块作为第一文件块、与滚动文件块内容不同的文件块作为第二文件块和内容增加的连续字节。
将客户端计算得到的各个滚动文件块的滚动校验值与校验文件包括的各个文件块的校验值进行比对,查找其中相同的文件块记为第一文件块,不同的文件块记为第二文件块。
其中,一种实施方式是直接根据弱校验值比对结果确定第一文件块和第二文件块。具体来说,将校验文件包括的各个文件块的弱校验值与客户端计算得到的各个滚动文件块的弱校验值进行比对,其中与滚动文件块弱校验值相同的文件块作为第一文件块,与各个滚动文件块弱校验值都不同的文件块作为第二文件块。
另一种实施方式是在弱校验值比对之后进一步根据强校验值进行验证确认,以提升比对的准确性。具体来说,首先通过将校验文件包括的各个文件块的弱校验值与客户端计算得到的各个滚动文件块的弱校验值进行比对,得到与滚动文件块弱校验值相同的第三文件块;计算与第三文件块弱校验值相同的滚动文件块的强校验值(其中强校验值计算方法与服务器计算强校验值的方法相同),将与第三文件块弱校验值相同的滚动文件块的强校验值与第三文件块的强校验值进行比对,若相同,则确定第三文件块为与滚动文件块内容相同的文件块(即第一文件块)。其中,与各个滚动文件块弱校验值都不同的文件块、以及与计算得到的滚动文件块的强校验值不同的文件块都为第二文件块。
本步骤主要是适用于客户端待上传的文件相对于服务器存储的文件增加了某些连续字节的情况。例如,客户端侧的文件在第1个文件块和第2个文件块之间增加了几个连续字节,那么如果采用上述文件上传方法实施例一提供的整块校验的方法就会发现,除了第1个文件块相同以外,后面的所有文件块都不相同。本实施例的方法通过计算滚动校验值查找与滚动校验值相同的第一文件块和与滚动校验值不同的第二文件块,同时通过滚动校验还可以查找到内容增加的连续字节,进一步减少了需要上传的文件块的数量。
步骤S305,将内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及内容增加的连续字节发送给服务器,以供服务器重构文件。
客户端将内容相同的第一文件块的标识、内容不同的第二文件块的内容和标识、内容增加的连续字节上传至服务器,服务器根据第一文件块的标识从服务器存储的内容中查找到第一文件块的内容,结合客户端上传的第二文件块的内容和增加的连续字节,按照标识重构出整个文件。其中,客户端还会将连续字节增加的位置发送给服务器,例如与连续字节相邻的两个文件块的标识,以便服务器在重构时将连续字节添加到正确的位置。
与文件上传方法实施例一类似的是,本实施例客户端接收到的校验文件也可包括文件的校验值。在对待上传的文件进行文件块校验之前,先进行文件校验以确定服务器是否存储有相同的文件,具体内容可参见实施例一的描述,不再赘述。
图4示出了本发明提供的Web环境下的文件上传方法实施例四的流程图。本方法是从服务器侧描述的文件上传方案,本实施例与文件上传方法实施例二的主要区别在于由于客户端对待上传的文件的校验方法不同而导致服务器侧重构文件的方法不同,其它内容不再赘述。
如图4所示,该方法包括如下步骤:
步骤S401,接收客户端发送的包含文件标识的文件上传请求。
步骤S402,根据文件标识查找到与待上传的文件对应的校验文件,该校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值。
步骤S403,将校验文件返回给客户端,以供客户端根据校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块。
步骤S404,接收客户端反馈的内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及内容增加的连续字节。
步骤S405,根据第一文件块的标识查找服务器端存储的第一文件块,将第一文件块、第二文件块和内容增加的连续字节组合在一起,得到文件。
服务器根据第一文件块的标识从服务器存储的内容中查找到第一文件块的内容,结合客户端上传的第二文件块的内容和增加的连续字节,按照标识重构出整个文件。其中,客户端还会将连续字节增加的位置发送给服务器,例如与连续字节相邻的两个文件块的标识,以便服务器在重构时将连续字节添加到正确的位置。
根据上述实施例三和实施例四提供的Web环境下的文件上传方法,在客户端上传文件之前,先请求服务器侧的校验文件,客户端根据校验文件校验是否存储有相应的文件块,若是,则客户端仅上传内容不同的文件块即可。本发明采用分块传输策略,尽可能的仅上传内容不同的文件块,最大限度的减少网络流量,降低网络流量费用,降低经济成本;而且,服务器采用分块存储策略,可以有效减少服务端的存储空间,降低存储方面的经济成本。本方案在Web环境下采用HTTP协议传输文件,相比较利用客户端软件传输文件的方式,可穿透大部分防火墙,降低被拦截的风险,因而适用于多种场景。
进一步的,上述实施例三和实施例四提供的方案更适用于客户端待上传的文件相对于服务器存储的文件增加了某些连续字节的情况,通过该方案可以查找到内容增加的连续字节,在连续字节之后还可查找到滚动校验值与校验文件中弱校验值和强校验值相同的文件块,进一步减少了需要上传的文件块的数量,最大限度的减少网络流量,降低网络流量费用,降低经济成本。
本发明上述文件上传方法实施例一和实施例三所提供的校验方法还可以结合使用,具体来说,在校验过程中,可以先整块校验(即执行步骤S1031-步骤S1034),然后再进行滚动校验(即执行步骤S303和步骤S304),本发明对此不作限制。
在上述文件上传方法实施例中,由服务器提供校验文件,由客户端执行校验方法,但本发明不仅限于此,还可以由客户端提供校验文件,由服务器执行校验方法。
图5示出了本发明提供的Web环境下的文件下载方法实施例一的流程图。本方法是从服务器侧描述的文件下载方案,如图5所示,该方法包括如下步骤:
步骤S501,接收客户端发送的用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值。
在客户端有下载文件的需求时,客户端检查是否是第一次下载该文件,若是,客户端直接将文件名发送给服务器,服务器返回整个文件给客户端;若否,例如客户端检测到此前已经保存了该文件的旧版本,则对旧版本的文件进行分块处理。客户端和服务器预先约定分块的长度作为预设值,如每个文件块的长度为K,客户端从头至尾按照长度K对文件进行分块,若最后一个文件块长度不足K,视为一个文件块。客户端为每个文件块设定唯一标识,例如以序号作为文件块的标识,并计算整个文件的校验值以及每个文件块的弱校验值和强校验值。
可选地,弱校验值可以为CRC-32值或Adler-32值,即通过CRC-32或Adler-32算法计算得到的校验值,该校验算法具有匹配速度快的优势。强校验值可以为MD5值或SHA-1值,即通过MD5或SHA-1算法计算得到的校验值,该校验算法具有匹配精确度高的优势。本发明利用弱校验算法和强校验算法各自的优势,能在处理速度和计算准确度方面取得平衡。上述整个文件的校验值可为文件的MD5值。需要说明的是,本发明弱校验值和强校验值不仅限于通过上述算法得到,还可以采用其它现有技术提供的校验算法,不再一一举例。
客户端将各个文件块的标识、弱校验值以及强校验值(可选还有整个文件的校验值)写入校验文件中。此校验文件可随文件下载请求一并发送给服务器,或者,在向服务器发送文件下载请求、得到服务器允许下载文件的响应之后,将校验文件发送给服务器。
步骤S502,根据校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块。
本步骤中,首先对服务器存储的待下载的文件计算以预设值为长度的文件块的弱校验值和强校验值,所述预设值为所述文件块的长度值,即K。本方法通过比对整个文件块的弱校验值和强校验值进行校验,具体地,对于每个文件块,通过如下子步骤进行判断:
子步骤S5021,判断校验文件中该文件块的弱校验值是否与服务器计算的文件块的弱校验值相同,若是,则执行步骤S5023;若否,则执行步骤S5022。
子步骤S5022,将该文件块作为第二文件块。
子步骤S5023,判断校验文件中该文件块的强校验值与服务器计算的文件块的强校验值是否相同,若是,则执行步骤S5024;若否,则执行步骤S5022。
子步骤S5024,将该文件块作为第一文件块。
本方法通过对比弱校验值和强校验值,判断服务器是否存储有客户端要下载的文件块。其中弱校验值对比的处理速度更快,用于确定不同的文件块;强校验值对比的判断准确度更高,用于进一步确认相同的文件块,最终得到对比结果是服务器存储的文件块与客户端存储的文件块中内容相同的第一文件块和内容不同的第二文件块。
步骤S503,根据校验结果,向客户端反馈不同的文件内容,以供客户端根据不同的文件内容重构文件。
服务器在得到校验结果之后,将内容相同的第一文件块的标识以及内容不同的第二文件块的内容和标识反馈给客户端,客户端根据第一文件块的标识从客户端存储的内容中查找到第一文件块的内容,结合服务器返回的第二文件块的内容,按照标识重构出整个文件。
上述步骤S501-步骤S503可以组成本发明一个完整的实施例。进一步的,作为另一种实施方式,步骤S501接收到的校验文件还可包括文件的校验值,在步骤S502之前还包括:根据文件的校验值判断服务器是否存储有相同的文件;若判断出服务器存储有相同的文件,则向客户端发送无需下载文件的通知消息;若判断出服务器没有存储相同的文件,则执行步骤S502。也就是说,在对比文件块之前可先对比服务器是否存储有相同的整文件,如果服务器发现该整文件存在,表明服务器端未对该文件进行版本更新,那么通知客户端无需下载文件。
图6示出了本发明提供的Web环境下的文件下载方法实施例二的流程图。本方法是从客户端侧描述的文件下载方案,如图6所示,该方法包括如下步骤:
步骤S601,向服务器发送用于下载文件的校验文件,该校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;以供服务器根据校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块。
步骤S602,接收服务器反馈的不同的文件内容,根据不同的文件内容重构文件。
根据上述实施例一和二提供的Web环境下的文件下载方法,在客户端下载文件之前,先发送校验文件,服务器根据校验文件校验是否存储有相应的文件块,若是,则将内容不同的文件块发送给客户端,并告知内容相同的文件块的标识即可。本发明采用分块传输策略,尽可能的使客户端仅下载内容不同的文件块,最大限度的减少网络流量,降低网络流量费用,降低经济成本;而且,服务器采用分块存储策略,可以有效减少服务端的存储空间,降低存储方面的经济成本。本方案在Web环境下采用HTTP协议传输文件,相比较利用客户端软件传输文件的方式,可穿透大部分防火墙,降低被拦截的风险,因而适用于多种场景。
图7示出了本发明提供的Web环境下的文件下载方法实施例三的流程图。本方法是从服务器侧描述的文件下载方案,本实施例与文件下载方法实施例一的主要区别在于对待下载的文件的校验方法不同,其它内容不再赘述。
如图7所示,该方法包括如下步骤:
步骤S701,接收客户端发送的用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值。
步骤S702,对服务器存储的文件计算以字节为粒度、以预设值为长度的各个滚动文件块的弱校验值,其中预设值为文件块的长度值,即长度K。
本实施例利用滚动哈希算法,对服务器存储的待下载的文件计算滚动校验值,滚动弱校验值的计算方法与客户端采用的计算弱校验值的方法相同,如Adler-32算法。滚动是从文件的第一个字节开始,以字节为粒度、以K为长度计算每个滚动文件块的滚动校验值。举例来说,设K为5个字节长度,第1个滚动文件块为第1-5个连续字节组成的块,第2个滚动文件块为第2-6个连续字节组成的块,依次类推直至计算到文件的最后一个字节。
步骤S703,将校验文件包括的各个文件块的弱校验值与服务器计算得到的各个滚动文件块的弱校验值进行比对,得到与滚动文件块内容相同的文件块作为第一文件块、与滚动文件块内容不同的文件块作为第二文件块和内容增加的连续字节。
将服务器计算得到的各个滚动文件块的滚动校验值与校验文件包括的各个文件块的校验值进行比对,查找其中相同的文件块记为第一文件块,不同的文件块记为第二文件块。
其中,一种实施方式是直接根据弱校验值比对结果确定第一文件块和第二文件块。具体来说,将校验文件包括的各个文件块的弱校验值与服务器计算得到的各个滚动文件块的弱校验值进行比对,其中与滚动文件块弱校验值相同的文件块作为第一文件块,与各个滚动文件块弱校验值都不同的文件块作为第二文件块。
另一种实施方式是在弱校验值比对之后进一步根据强校验值进行验证确认,以提升比对的准确性。具体来说,首先通过将校验文件包括的各个文件块的弱校验值与服务器计算得到的各个滚动文件块的弱校验值进行比对,得到与滚动文件块弱校验值相同的第三文件块;计算与第三文件块弱校验值相同的滚动文件块的强校验值(其中强校验值计算方法与客户端计算强校验值的方法相同),将与第三文件块弱校验值相同的滚动文件块的强校验值与第三文件块的强校验值进行比对,若相同,则确定第三文件块为与滚动文件块内容相同的文件块(即第一文件块)。其中,与各个滚动文件块弱校验值都不同的文件块、以及与计算得到的滚动文件块的强校验值不同的文件块都为第二文件块。
本步骤主要是适用于服务器存储的文件相对于客户端存储的文件增加了某些连续字节的情况。例如,服务器存储的文件在第1个文件块和第2个文件块之间增加了几个连续字节,那么如果采用上述文件下载方法实施例一提供的整块校验的方法就会发现,除了第1个文件块相同以外,后面的所有文件块都不相同。本实施例的方法通过计算滚动校验值查找与滚动校验值相同的第一文件块和与滚动校验值不同的第二文件块,同时通过滚动校验还可以查找到内容增加的连续字节,进一步减少了需要上传的文件块的数量。
步骤S704,将内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及内容增加的连续字节发送给客户端,以供客户端重构文件。
服务器将内容相同的第一文件块的标识、内容不同的第二文件块的内容和标识、内容增加的连续字节反馈给客户端,客户端根据第一文件块的标识从客户端存储的内容中查找到第一文件块的内容,结合服务器返回的第二文件块的内容和增加的连续字节,按照标识重构出整个文件。其中,服务器还会将连续字节增加的位置告知给客户端,例如与连续字节相邻的两个文件块的标识,以便客户端在重构时将连续字节添加到正确的位置。
与文件下载方法实施例一相同的是,本实施例服务器接收到的校验文件也可包括文件的校验值。在对待下载的文件进行文件块校验之前,先进行文件校验以确定服务器是否存储有相同的文件,具体内容可参见实施例一的描述,不再赘述。
图8示出了本发明提供的Web环境下的文件下载方法实施例四的流程图。本方法是从客户端侧描述的文件上传方案,本实施例与文件下载方法实施例二的主要区别在于由于服务器对待下载的文件的校验方法不同而导致客户端侧重构文件的方法不同,其它内容不再赘述。
如图8所示,该方法包括如下步骤:
步骤S801,向服务器发送用于下载文件的校验文件,该校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;以供服务器根据校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块。
步骤S802,接收服务器反馈的内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及所述内容增加的连续字节。
步骤S803,根据第一文件块的标识查找服务器端存储的第一文件块,将第一文件块、第二文件块和内容增加的连续字节组合在一起,得到文件。
客户端根据第一文件块的标识从客户端存储的内容中查找到第一文件块的内容,结合服务器反馈的第二文件块的内容和增加的连续字节,按照标识重构出整个文件。其中,服务器还会将连续字节增加的位置发送给客户端,例如与连续字节相邻的两个文件块的标识,以便客户端在重构时将连续字节添加到正确的位置。
根据上述实施例三和四提供的Web环境下的文件下载方法,在客户端下载文件之前,先发送校验文件,服务器根据校验文件校验是否存储有相应的文件块,若是,则将内容不同的文件块发送给客户端,并告知内容相同的文件块的标识即可。本发明采用分块传输策略,尽可能的使客户端仅下载内容不同的文件块,最大限度的减少网络流量,降低网络流量费用,降低经济成本;而且,服务器采用分块存储策略,可以有效减少服务端的存储空间,降低存储方面的经济成本。本方案在Web环境下采用HTTP协议传输文件,相比较利用客户端软件传输文件的方式,可穿透大部分防火墙,降低被拦截的风险,因而适用于多种场景。
进一步的,上述实施例三和实施例四提供的方案更适用于服务器待下载的文件相对于客户端存储的文件增加了某些连续字节的情况,通过该方案可以查找到内容增加的连续字节,在连续字节之后还可查找到滚动校验值与校验文件中弱校验值和强校验值相同的文件块,进一步减少了需要下载的文件块的数量,最大限度的减少网络流量,降低网络流量费用,降低经济成本。
本发明上述文件下载方法实施例一和实施例三所提供的校验方法还可以结合使用,具体来说,在校验过程中,可以先整块校验(即执行步骤S5021-步骤S5024),然后再进行滚动校验(即执行步骤S702和步骤S703),本发明对此不作限制。
在上述文件下载实施例中,由客户端提供校验文件,由服务器执行校验方法,但本发明不仅限于此,还可以由服务器提供校验文件,由客户端执行校验方法。
图9示出了本发明提供的用于在Web环境下向服务器上传文件的客户端的实施例的功能框图。如图9所示,该客户端包括:第一发送模块901、第一接收模块902以及校验模块903。
第一发送模块901适于将包含文件标识的文件上传请求发送至服务器,用以请求与待上传的文件对应的校验文件。
第一接收模块902适于接收服务器返回的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值。
校验模块903适于根据校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块。
第一发送模块901还适于:根据校验结果,向服务器反馈不同的文件内容,以供服务器根据不同的文件内容重构文件。
在一种实施方式中,校验模块903进一步适于:对客户端存储的待上传的文件计算以预设值为长度的文件块的弱校验值和强校验值,所述预设值为所述文件块的长度值;对于每个文件块,判断所述校验文件中该文件块的弱校验值是否与客户端计算的文件块的弱校验值相同;若所述校验文件中该文件块的弱校验值与客户端计算的文件块的弱校验值不同,则将该文件块作为所述第二文件块;若所述校验文件中该文件块的弱校验值与客户端计算的文件块的弱校验值相同,则判断所述校验文件中该文件块的强校验值与客户端计算的文件块的强校验值是否相同;若所述校验文件中该文件块的强校验值与客户端计算的文件块的强校验值不同,则将该文件块作为所述第二文件块;若所述校验文件中该文件块的强校验值与客户端计算的文件块的强校验值不同,则将该文件块作为所述第一文件块。第一发送模块901进一步适于:将内容相同的第一文件块的标识和内容不同的第二文件块及其标识发送给服务器,以供服务器重构所述文件。
在一种实施方式中,校验模块903进一步适于:对客户端存储的待上传的文件计算以字节为粒度、以预设值为长度的各个滚动文件块的弱校验值,所述预设值为所述文件块的长度值;将所述校验文件包括的各个文件块的弱校验值与客户端计算得到的各个滚动文件块的弱校验值进行比对,得到与所述滚动文件块内容相同的文件块作为第一文件块、与所述滚动文件块内容不同的文件块作为第二文件块和内容增加的连续字节。
进一步的,校验模块903通过将所述校验文件包括的各个文件块的弱校验值与客户端计算得到的各个滚动文件块的弱校验值进行比对,得到与滚动文件块弱校验值相同的第三文件块;计算与所述第三文件块弱校验值相同的滚动文件块的强校验值,将与所述第三文件块弱校验值相同的滚动文件块的强校验值与所述第三文件块的强校验值进行比对,若相同,则确定所述第三文件块为与所述滚动文件块内容相同的文件块。第一发送模块901进一步适于:将内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及所述内容增加的连续字节发送给服务器,以供服务器重构所述文件。
可选地,第一接收模块902接收的校验文件还包括:文件的校验值。校验模块903还适于:根据文件的校验值判断客户端是否存储有相同的文件。所述客户端进一步包括:提示模块904,适于在所述校验模块判断出客户端存储有相同的文件,则显示客户端无需上传文件的提示消息。
图10示出了本发明提供的用于在Web环境下接收客户端上传的文件的服务器的实施例的功能框图。如图10所示,该服务器包括:第二接收模块1001、查找模块1002、第二发送模块1003以及重构模块1004。
第二接收模块1001适于接收客户端发送的包含文件标识的文件上传请求。
查找模块1002适于根据所述文件标识查找到与待上传的文件对应的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值。
第二发送模块1003适于将所述校验文件返回给所述客户端,以供所述客户端根据所述校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块。
重构模块1004适于根据第二接收模块1001接收到的所述不同的文件内容重构所述文件。
在一种实施方式中,第二接收模块1001进一步适于:接收所述客户端反馈的内容相同的第一文件块的标识和内容不同的第二文件块及其标识;重构模块1004进一步适于:根据所述第一文件块的标识查找服务器端存储的第一文件块,将所述第一文件块和所述第二文件块依标识组合在一起,得到所述文件。
在另一种实施方式中,第二接收模块1001进一步适于:接收所述客户端反馈的内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及所述内容增加的连续字节;重构模块1004进一步适于:根据所述第一文件块的标识查找服务器端存储的第一文件块,将所述第一文件块、第二文件块和内容增加的连续字节组合在一起,得到所述文件。
图11示出了本发明提供的Web环境下的文件上传系统的实施例的功能框图。如图13所示,该系统包括:客户端1101和服务器1102,其中,客户端1101的具体模块和功能参见图9对应的客户端实施例的描述,服务器1102的具体模块和功能参见图10对应的服务器实施例的描述。
根据上述实施例提供的Web环境下的文件上传系统、客户端和服务器,在客户端上传文件之前,先请求服务器侧的校验文件,客户端根据校验文件校验是否存储有相应的文件块,若是,则客户端仅上传内容不同的文件块即可。本发明采用分块传输策略,尽可能的仅上传内容不同的文件块,最大限度的减少网络流量,降低网络流量费用,降低经济成本;而且,服务器采用分块存储策略,可以有效减少服务端的存储空间,降低存储方面的经济成本。本方案在Web环境下采用HTTP协议传输文件,相比较利用客户端软件传输文件的方式,可穿透大部分防火墙,降低被拦截的风险,因而适用于多种场景。进一步的,另一种实施方式提供的方案更适用于客户端待上传的文件相对于服务器存储的文件增加了某些连续字节的情况,通过该方案可以查找到内容增加的连续字节,在连续字节之后还可查找到滚动校验值与校验文件中弱校验值和强校验值相同的文件块,进一步减少了需要上传的文件块的数量,最大限度的减少网络流量,降低网络流量费用,降低经济成本。
图12示出了本发明提供的用于在Web环境下向客户端提供下载文件的服务器的实施例的功能框图。如图12所示,该服务器包括:第一接收模块1201、校验模块1202以及第一发送模块1203。
第一接收模块1201适于接收客户端发送的用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
校验模块1202适于根据所述校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
第一发送模块1203适于根据校验结果,向客户端反馈不同的文件内容,以供客户端根据所述不同的文件内容重构所述文件。
在一种实施方式中,校验模块1202进一步适于:对服务器存储的待下载的文件计算以预设值为长度的文件块的弱校验值和强校验值,所述预设值为所述文件块的长度值;对于每个文件块,判断所述校验文件中该文件块的弱校验值是否与服务器计算的文件块的弱校验值相同;若所述校验文件中该文件块的弱校验值与服务器计算的文件块的弱校验值不同,则将该文件块作为所述第二文件块;若所述校验文件中该文件块的弱校验值与服务器计算的文件块的弱校验值相同,则判断所述校验文件中该文件块的强校验值与服务器计算的文件块的强校验值是否相同;若所述校验文件中该文件块的强校验值与服务器计算的文件块的强校验值不同,则将该文件块作为所述第二文件块;若所述校验文件中该文件块的强校验值与服务器计算的文件块的强校验值不同,则将该文件块作为所述第一文件块。第一发送模块1203进一步适于:将内容相同的第一文件块的标识和内容不同的第二文件块及其标识反馈给客户端,以供客户端重构所述文件。
在另一种实施方式中,校验模块1202进一步适于:对服务器存储的待下载的文件计算以字节为粒度、以预设值为长度的各个滚动文件块的弱校验值,所述预设值为所述文件块的长度值;将所述校验文件包括的各个文件块的弱校验值与服务器计算得到的各个滚动文件块的弱校验值进行比对,得到与滚动文件块内容相同的文件块作为第一文件块、与滚动文件块内容不同的文件块作为第二文件块和内容增加的连续字节。
进一步的,校验模块1202通过将所述校验文件包括的各个文件块的弱校验值与服务器计算得到的各个滚动文件块的弱校验值进行比对,得到与滚动文件块弱校验值相同的第三文件块;计算与所述第三文件块弱校验值相同的滚动文件块的强校验值,将与所述第三文件块弱校验值相同的滚动文件块的强校验值与所述第三文件块的强校验值进行比对,若相同,则确定所述第三文件块为与所述滚动文件块内容相同的文件块。第一发送模块1203进一步适于:将内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及所述内容增加的连续字节反馈给客户端,以供客户端重构所述文件。
可选地,第一接收模块1201接收的校验文件还包括:文件的校验值。校验模块1202还适于:根据文件的校验值判断服务器是否存储有相同的文件。第一发送模块1203还适于:在校验模块1202判断出服务器存储有相同的文件,则向客户端发送无需下载文件的通知消息。
图13示出了本发明提供的用于在Web环境下从服务器处下载文件的客户端的实施例的功能框图。如图13所示,该客户端包括:第二发送模块1301、第二接收模块1302和重构模块1303。
第二发送模块1301适于向服务器发送用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;以供所述服务器根据所述校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
第二接收模块1302适于接收所述服务器反馈的不同的文件内容;
重构模块1303适于根据所述不同的文件内容重构所述文件。
在一种实施方式中,第二接收模块1302进一步适于:接收所述服务器反馈的内容相同的第一文件块的标识和内容不同的第二文件块及其标识;重构模块1303进一步适于:根据所述第一文件块的标识查找客户端存储的第一文件块,将所述第一文件块和所述第二文件块依标识组合在一起,得到所述文件。
在另一种实施方式中,第二接收模块1302进一步适于:接收所述服务器反馈的内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及所述内容增加的连续字节;重构模块1303进一步适于:根据所述第一文件块的标识查找客户端存储的第一文件块,将所述第一文件块、第二文件块和内容增加的连续字节组合在一起,得到所述文件。
图14示出了本发明提供的Web环境下的文件下载系统的实施例的功能框图。如图14所示,该系统包括客户端1401和服务器1402,其中,客户端1401的具体模块和功能可参见图13对应的客户端实施例的描述,服务器1402的具体模块和功能可参见图12对应的服务器实施例的描述。
根据上述实施例提供的Web环境下的文件下载系统、客户端和服务器,在客户端下载文件之前,先发送校验文件,服务器根据校验文件校验是否存储有相应的文件块,若是,则将内容不同的文件块发送给客户端,并告知内容相同的文件块的标识即可。本发明采用分块传输策略,尽可能的使客户端仅下载内容不同的文件块,最大限度的减少网络流量,降低网络流量费用,降低经济成本;而且,服务器采用分块存储策略,可以有效减少服务端的存储空间,降低存储方面的经济成本。本方案在Web环境下采用HTTP协议传输文件,相比较利用客户端软件传输文件的方式,可穿透大部分防火墙,降低被拦截的风险,因而适用于多种场景。进一步的,另一种实施方式提供的方案更适用于服务器待下载的文件相对于客户端存储的文件增加了某些连续字节的情况,通过该方案可以查找到内容增加的连续字节,在连续字节之后还可查找到滚动校验值与校验文件中弱校验值和强校验值相同的文件块,进一步减少了需要下载的文件块的数量,最大限度的减少网络流量,降低网络流量费用,降低经济成本。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的服务器和系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:
A1、一种Web环境下的文件上传方法,其包括:
将包含文件标识的文件上传请求发送至服务器,用以请求与待上传的文件对应的校验文件;
接收服务器返回的所述校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
根据所述校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
根据校验结果,向服务器反馈不同的文件内容,以供服务器根据所述不同的文件内容重构所述文件。
A2、根据A1所述的方法,其中,所述根据所述校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块进一步包括:
对客户端存储的待上传的文件计算以预设值为长度的文件块的弱校验值和强校验值,所述预设值为所述文件块的长度值;
对于每个文件块,判断所述校验文件中该文件块的弱校验值是否与客户端计算的文件块的弱校验值相同;
若所述校验文件中该文件块的弱校验值与客户端计算的文件块的弱校验值不同,则将该文件块作为所述第二文件块;
若所述校验文件中该文件块的弱校验值与客户端计算的文件块的弱校验值相同,则判断所述校验文件中该文件块的强校验值与客户端计算的文件块的强校验值是否相同;
若所述校验文件中该文件块的强校验值与客户端计算的文件块的强校验值不同,则将该文件块作为所述第二文件块;
若所述校验文件中该文件块的强校验值与客户端计算的文件块的强校验值不同,则将该文件块作为所述第一文件块。
A3、根据A1或A2所述的方法,其中,所述根据校验结果,向服务器反馈不同的文件内容,以供服务器根据所述不同的文件内容重构所述文件进一步包括:
将内容相同的第一文件块的标识和内容不同的第二文件块及其标识发送给服务器,以供服务器重构所述文件。
A4、根据A1所述的方法,其中,所述根据所述校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块进一步包括:
对客户端存储的待上传的文件计算以字节为粒度、以预设值为长度的各个滚动文件块的弱校验值,所述预设值为所述文件块的长度值;
将所述校验文件包括的各个文件块的弱校验值与客户端计算得到的各个滚动文件块的弱校验值进行比对,得到与所述滚动文件块内容相同的文件块作为第一文件块、与所述滚动文件块内容不同的文件块作为第二文件块和内容增加的连续字节。
A5、根据A4所述的方法,其中,所述得到与所述滚动文件块内容相同的文件块作为第一文件块进一步包括:
通过将所述校验文件包括的各个文件块的弱校验值与客户端计算得到的各个滚动文件块的弱校验值进行比对,得到与滚动文件块弱校验值相同的第三文件块;
计算与所述第三文件块弱校验值相同的滚动文件块的强校验值,将与所述第三文件块弱校验值相同的滚动文件块的强校验值与所述第三文件块的强校验值进行比对,若相同,则确定所述第三文件块为与所述滚动文件块内容相同的文件块。
A6、根据A4或A5所述的方法,其中,所述根据校验结果,向服务器反馈不同的文件内容,以供服务器根据所述不同的文件内容重构所述文件进一步包括:
将内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及所述内容增加的连续字节发送给服务器,以供服务器重构所述文件。
A7、根据A1-A6任一项所述的方法,所述校验文件还包括:文件的校验值;
在所述根据校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验之前,所述方法还包括:根据所述文件的校验值判断客户端是否存储有相同的文件;若判断出客户端存储有相同的文件,则显示客户端无需上传文件的提示消息;
若判断出客户端没有存储相同的文件,则执行根据校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验的步骤。
B8、一种Web环境下的文件上传方法,其包括:
接收客户端发送的包含文件标识的文件上传请求;
根据所述文件标识查找到与待上传的文件对应的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
将所述校验文件返回给所述客户端,以供所述客户端根据所述校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
接收所述客户端反馈的不同的文件内容,根据所述不同的文件内容重构所述文件。
B9、根据B8所述的方法,其中,所述接收所述客户端反馈的不同的文件内容,根据所述不同的文件内容重构所述文件进一步包括:
接收所述客户端反馈的内容相同的第一文件块的标识和内容不同的第二文件块及其标识;
根据所述第一文件块的标识查找服务器端存储的第一文件块,将所述第一文件块和所述第二文件块依标识组合在一起,得到所述文件。
B10、根据B8所述的方法,其中,所述接收所述客户端反馈的不同的文件内容,根据所述不同的文件内容重构所述文件进一步包括:
接收所述客户端反馈的内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及所述内容增加的连续字节;
根据所述第一文件块的标识查找服务器端存储的第一文件块,将所述第一文件块、第二文件块和内容增加的连续字节组合在一起,得到所述文件。
C11、一种Web环境下的文件下载方法,其包括:
接收客户端发送的用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
根据所述校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
根据校验结果,向客户端反馈不同的文件内容,以供客户端根据所述不同的文件内容重构所述文件。
C12、根据C11所述的方法,其中,所述根据所述校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块进一步包括:
对服务器存储的待下载的文件计算以预设值为长度的文件块的弱校验值和强校验值,所述预设值为所述文件块的长度值;
对于每个文件块,判断所述校验文件中该文件块的弱校验值是否与服务器计算的文件块的弱校验值相同;
若所述校验文件中该文件块的弱校验值与服务器计算的文件块的弱校验值不同,则将该文件块作为所述第二文件块;
若所述校验文件中该文件块的弱校验值与服务器计算的文件块的弱校验值相同,则判断所述校验文件中该文件块的强校验值与服务器计算的文件块的强校验值是否相同;
若所述校验文件中该文件块的强校验值与服务器计算的文件块的强校验值不同,则将该文件块作为所述第二文件块;
若所述校验文件中该文件块的强校验值与服务器计算的文件块的强校验值不同,则将该文件块作为所述第一文件块。
C13、根据C11或C12所述的方法,其中,所述根据校验结果,向客户端反馈不同的文件内容,以供客户端根据所述不同的文件内容重构所述文件进一步包括:
将内容相同的第一文件块的标识和内容不同的第二文件块及其标识反馈给客户端,以供客户端重构所述文件。
C14、根据C11所述的方法,其中,所述根据校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块进一步包括:
对服务器存储的待下载的文件计算以字节为粒度、以预设值为长度的各个滚动文件块的弱校验值,所述预设值为所述文件块的长度值;
将所述校验文件包括的各个文件块的弱校验值与服务器计算得到的各个滚动文件块的弱校验值进行比对,得到与滚动文件块内容相同的文件块作为第一文件块、与滚动文件块内容不同的文件块作为第二文件块和内容增加的连续字节。
C15、根据C14所述的方法,其中,所述得到与所述滚动文件块内容相同的文件块作为第一文件块进一步包括:
通过将所述校验文件包括的各个文件块的弱校验值与服务器计算得到的各个滚动文件块的弱校验值进行比对,得到与滚动文件块弱校验值相同的第三文件块;
计算与所述第三文件块弱校验值相同的滚动文件块的强校验值,将与所述第三文件块弱校验值相同的滚动文件块的强校验值与所述第三文件块的强校验值进行比对,若相同,则确定所述第三文件块为与所述滚动文件块内容相同的文件块。
C16、根据C14或C15所述的方法,其中,所述根据校验结果,向客户端反馈不同的文件内容,以供客户端根据所述不同的文件内容重构所述文件进一步包括:
将内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及所述内容增加的连续字节反馈给客户端,以供客户端重构所述文件。
C17、根据C11-C16任一项所述的方法,所述校验文件还包括:文件的校验值;
在所述根据校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验之前,所述方法还包括:根据所述文件的校验值判断服务器是否存储有相同的文件;若判断出服务器存储有相同的文件,则向客户端发送无需下载文件的通知消息;
若判断出服务器没有存储相同的文件,则执行所述根据校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验的步骤。
D18、一种Web环境下的文件下载方法,其包括:
向服务器发送用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;以供所述服务器根据所述校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
接收所述服务器反馈的不同的文件内容,根据所述不同的文件内容重构所述文件。
D19、根据D18所述的方法,其中,所述接收所述服务器反馈的不同的文件内容,根据所述不同的文件内容重构所述文件进一步包括:
接收所述服务器反馈的内容相同的第一文件块的标识和内容不同的第二文件块及其标识;
根据所述第一文件块的标识查找客户端存储的第一文件块,将所述第一文件块和所述第二文件块依标识组合在一起,得到所述文件。
D20、根据D18所述的方法,其中,所述接收所述服务器反馈的不同的文件内容,根据所述不同的文件内容重构所述文件进一步包括:
接收所述服务器反馈的内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及所述内容增加的连续字节;
根据所述第一文件块的标识查找客户端存储的第一文件块,将所述第一文件块、第二文件块和内容增加的连续字节组合在一起,得到所述文件。
E21、一种客户端,用于在Web环境下向服务器上传文件,其包括:
第一发送模块,适于将包含文件标识的文件上传请求发送至服务器,用以请求与待上传的文件对应的校验文件;
第一接收模块,适于接收服务器返回的所述校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
校验模块,适于根据所述校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
所述第一发送模块还适于:根据校验结果,向服务器反馈不同的文件内容,以供服务器根据所述不同的文件内容重构所述文件。
E22、根据E21所述的客户端,其中,所述校验模块进一步适于:
对客户端存储的待上传的文件计算以预设值为长度的文件块的弱校验值和强校验值,所述预设值为所述文件块的长度值;
对于每个文件块,判断所述校验文件中该文件块的弱校验值是否与客户端计算的文件块的弱校验值相同;
若所述校验文件中该文件块的弱校验值与客户端计算的文件块的弱校验值不同,则将该文件块作为所述第二文件块;
若所述校验文件中该文件块的弱校验值与客户端计算的文件块的弱校验值相同,则判断所述校验文件中该文件块的强校验值与客户端计算的文件块的强校验值是否相同;
若所述校验文件中该文件块的强校验值与客户端计算的文件块的强校验值不同,则将该文件块作为所述第二文件块;
若所述校验文件中该文件块的强校验值与客户端计算的文件块的强校验值不同,则将该文件块作为所述第一文件块。
E23、根据E21或E22所述的客户端,其中,所述第一发送模块进一步适于:将内容相同的第一文件块的标识和内容不同的第二文件块及其标识发送给服务器,以供服务器重构所述文件。
E24、根据E21所述的客户端,其中,所述校验模块进一步适于:
对客户端存储的待上传的文件计算以字节为粒度、以预设值为长度的各个滚动文件块的弱校验值,所述预设值为所述文件块的长度值;
将所述校验文件包括的各个文件块的弱校验值与客户端计算得到的各个滚动文件块的弱校验值进行比对,得到与所述滚动文件块内容相同的文件块作为第一文件块、与所述滚动文件块内容不同的文件块作为第二文件块和内容增加的连续字节。
E25、根据E24所述的客户端,其中,所述校验模块进一步适于:
通过将所述校验文件包括的各个文件块的弱校验值与客户端计算得到的各个滚动文件块的弱校验值进行比对,得到与滚动文件块弱校验值相同的第三文件块;
计算与所述第三文件块弱校验值相同的滚动文件块的强校验值,将与所述第三文件块弱校验值相同的滚动文件块的强校验值与所述第三文件块的强校验值进行比对,若相同,则确定所述第三文件块为与所述滚动文件块内容相同的文件块。
E26、根据E24或E25所述的客户端,其中,所述第一发送模块进一步适于:将内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及所述内容增加的连续字节发送给服务器,以供服务器重构所述文件。
E27、根据E21-E26任一项所述的客户端,其中,所述校验文件还包括:文件的校验值;所述校验模块还适于:根据所述文件的校验值判断客户端是否存储有相同的文件;
所述客户端还包括:提示模块,适于在所述校验模块判断出客户端存储有相同的文件,则显示客户端无需上传文件的提示消息。
F28、一种服务器,用于在Web环境下接收客户端上传的文件,其包括:
第二接收模块,适于接收客户端发送的包含文件标识的文件上传请求;
查找模块,适于根据所述文件标识查找到与待上传的文件对应的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
第二发送模块,适于将所述校验文件返回给所述客户端,以供所述客户端根据所述校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
重构模块,适于根据所述第二接收模块接收到的所述不同的文件内容重构所述文件。
F29、根据F28所述的服务器,其中,所述第二接收模块进一步适于:接收所述客户端反馈的内容相同的第一文件块的标识和内容不同的第二文件块及其标识;
所述重构模块进一步适于:根据所述第一文件块的标识查找服务器端存储的第一文件块,将所述第一文件块和所述第二文件块依标识组合在一起,得到所述文件。
F30、根据F28所述的服务器,其中,所述第二接收模块进一步适于:接收所述客户端反馈的内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及所述内容增加的连续字节;
所述重构模块进一步适于:根据所述第一文件块的标识查找服务器端存储的第一文件块,将所述第一文件块、第二文件块和内容增加的连续字节组合在一起,得到所述文件。
G31、一种Web环境下的文件上传系统,其包括:至少一E21-E27任一项所述的客户端以及至少一F28-F30任一项所述的服务器。
H32、一种服务器,用于在Web环境下向客户端提供下载文件,其包括:
第一接收模块,适于接收客户端发送的用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
校验模块,适于根据所述校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
第一发送模块,适于根据校验结果,向客户端反馈不同的文件内容,以供客户端根据所述不同的文件内容重构所述文件。
H33、根据H32所述的服务器,其中,所述校验模块进一步适于:
对服务器存储的待下载的文件计算以预设值为长度的文件块的弱校验值和强校验值,所述预设值为所述文件块的长度值;
对于每个文件块,判断所述校验文件中该文件块的弱校验值是否与服务器计算的文件块的弱校验值相同;
若所述校验文件中该文件块的弱校验值与服务器计算的文件块的弱校验值不同,则将该文件块作为所述第二文件块;
若所述校验文件中该文件块的弱校验值与服务器计算的文件块的弱校验值相同,则判断所述校验文件中该文件块的强校验值与服务器计算的文件块的强校验值是否相同;
若所述校验文件中该文件块的强校验值与服务器计算的文件块的强校验值不同,则将该文件块作为所述第二文件块;
若所述校验文件中该文件块的强校验值与服务器计算的文件块的强校验值不同,则将该文件块作为所述第一文件块。
H34、根据H32或H33所述的服务器,其中,所述第一发送模块进一步适于:将内容相同的第一文件块的标识和内容不同的第二文件块及其标识反馈给客户端,以供客户端重构所述文件。
H35、根据H32所述的服务器,其中,所述校验模块进一步适于:
对服务器存储的待下载的文件计算以字节为粒度、以预设值为长度的各个滚动文件块的弱校验值,所述预设值为所述文件块的长度值;
将所述校验文件包括的各个文件块的弱校验值与服务器计算得到的各个滚动文件块的弱校验值进行比对,得到与滚动文件块内容相同的文件块作为第一文件块、与滚动文件块内容不同的文件块作为第二文件块和内容增加的连续字节。
H36、根据H35所述的服务器,其中,所述校验模块进一步适于:
通过将所述校验文件包括的各个文件块的弱校验值与服务器计算得到的各个滚动文件块的弱校验值进行比对,得到与滚动文件块弱校验值相同的第三文件块;
计算与所述第三文件块弱校验值相同的滚动文件块的强校验值,将与所述第三文件块弱校验值相同的滚动文件块的强校验值与所述第三文件块的强校验值进行比对,若相同,则确定所述第三文件块为与所述滚动文件块内容相同的文件块。
H37、根据H35或H36所述的服务器,其中,所述第一发送模块进一步适于:将内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及所述内容增加的连续字节反馈给客户端,以供客户端重构所述文件。
H38、根据H32-H37任一项所述的服务器,其中,所述校验文件还包括:文件的校验值;
所述校验模块还适于:根据所述文件的校验值判断服务器是否存储有相同的文件;
所述第一发送模块还适于:在所述校验模块判断出服务器存储有相同的文件,则向客户端发送无需下载文件的通知消息。
I39、一种客户端,用于在Web环境下从服务器处下载文件,其包括:
第二发送模块,适于向服务器发送用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;以供所述服务器根据所述校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
第二接收模块,适于接收所述服务器反馈的不同的文件内容;
重构模块,适于根据所述不同的文件内容重构所述文件。
I40、根据I39所述的客户端,其中,所述第二接收模块进一步适于:接收所述服务器反馈的内容相同的第一文件块的标识和内容不同的第二文件块及其标识;
所述重构模块进一步适于:根据所述第一文件块的标识查找客户端存储的第一文件块,将所述第一文件块和所述第二文件块依标识组合在一起,得到所述文件。
I41、根据I39所述的客户端,其中,所述第二接收模块进一步适于:接收所述服务器反馈的内容相同的第一文件块的标识、内容不同的第二文件块及其标识以及所述内容增加的连续字节;
所述重构模块进一步适于:根据所述第一文件块的标识查找客户端存储的第一文件块,将所述第一文件块、第二文件块和内容增加的连续字节组合在一起,得到所述文件。
J42、一种Web环境下的文件下载系统,其包括:至少一H32-H38任一项所述的服务器以及至少一I39-I41任一项所述的客户端。

Claims (10)

1.一种Web环境下的文件上传方法,其包括:
将包含文件标识的文件上传请求发送至服务器,用以请求与待上传的文件对应的校验文件;
接收服务器返回的所述校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
根据所述校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
根据校验结果,向服务器反馈不同的文件内容,以供服务器根据所述不同的文件内容重构所述文件。
2.一种Web环境下的文件上传方法,其包括:
接收客户端发送的包含文件标识的文件上传请求;
根据所述文件标识查找到与待上传的文件对应的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
将所述校验文件返回给所述客户端,以供所述客户端根据所述校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
接收所述客户端反馈的不同的文件内容,根据所述不同的文件内容重构所述文件。
3.一种Web环境下的文件下载方法,其包括:
接收客户端发送的用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
根据所述校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
根据校验结果,向客户端反馈不同的文件内容,以供客户端根据所述不同的文件内容重构所述文件。
4.一种Web环境下的文件下载方法,其包括:
向服务器发送用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;以供所述服务器根据所述校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
接收所述服务器反馈的不同的文件内容,根据所述不同的文件内容重构所述文件。
5.一种客户端,用于在Web环境下向服务器上传文件,其包括:
第一发送模块,适于将包含文件标识的文件上传请求发送至服务器,用以请求与待上传的文件对应的校验文件;
第一接收模块,适于接收服务器返回的所述校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
校验模块,适于根据所述校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
所述第一发送模块还适于:根据校验结果,向服务器反馈不同的文件内容,以供服务器根据所述不同的文件内容重构所述文件。
6.一种服务器,用于在Web环境下接收客户端上传的文件,其包括:
第二接收模块,适于接收客户端发送的包含文件标识的文件上传请求;
查找模块,适于根据所述文件标识查找到与待上传的文件对应的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
第二发送模块,适于将所述校验文件返回给所述客户端,以供所述客户端根据所述校验文件包括的各个文件块的弱校验值和强校验值,对客户端存储的待上传的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
重构模块,适于根据所述第二接收模块接收到的所述不同的文件内容重构所述文件。
7.一种Web环境下的文件上传系统,其包括:权利要求5所述的客户端以及权利要求6所述的服务器。
8.一种服务器,用于在Web环境下向客户端提供下载文件,其包括:
第一接收模块,适于接收客户端发送的用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;
校验模块,适于根据所述校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
第一发送模块,适于根据校验结果,向客户端反馈不同的文件内容,以供客户端根据所述不同的文件内容重构所述文件。
9.一种客户端,用于在Web环境下从服务器处下载文件,其包括:
第二发送模块,适于向服务器发送用于下载文件的校验文件,所述校验文件包括将文件分块处理后得到的各个文件块的标识、弱校验值以及强校验值;以供所述服务器根据所述校验文件包括的各个文件块的弱校验值和强校验值,对服务器存储的待下载的文件进行校验,得到内容相同的第一文件块和内容不同的第二文件块;
第二接收模块,适于接收所述服务器反馈的不同的文件内容;
重构模块,适于根据所述不同的文件内容重构所述文件。
10.一种Web环境下的文件下载系统,其包括:权利要求8所述的服务器以及权利要求9所述的客户端。
CN201510547505.4A 2015-08-31 2015-08-31 Web环境下的文件上传/下载方法及系统、服务器、客户端 Active CN105208108B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510547505.4A CN105208108B (zh) 2015-08-31 2015-08-31 Web环境下的文件上传/下载方法及系统、服务器、客户端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510547505.4A CN105208108B (zh) 2015-08-31 2015-08-31 Web环境下的文件上传/下载方法及系统、服务器、客户端

Publications (2)

Publication Number Publication Date
CN105208108A true CN105208108A (zh) 2015-12-30
CN105208108B CN105208108B (zh) 2019-02-19

Family

ID=54955532

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510547505.4A Active CN105208108B (zh) 2015-08-31 2015-08-31 Web环境下的文件上传/下载方法及系统、服务器、客户端

Country Status (1)

Country Link
CN (1) CN105208108B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105635324A (zh) * 2016-03-17 2016-06-01 新浪网技术(中国)有限公司 用于浏览器或服务器的大文件上传、续传方法和装置
CN107613031A (zh) * 2017-11-08 2018-01-19 杭州亿方云网络科技有限公司 一种文件传输系统
CN107623710A (zh) * 2016-07-15 2018-01-23 深圳市斑点猫信息技术有限公司 一种文件上传方法及终端
CN107632993A (zh) * 2016-07-19 2018-01-26 深圳市斑点猫信息技术有限公司 一种快速排重方法及终端
CN111651421A (zh) * 2020-06-05 2020-09-11 南方电网科学研究院有限责任公司 一种改进的Rsync方法、装置及信息同步系统
CN113132055A (zh) * 2019-12-31 2021-07-16 深圳云天励飞技术有限公司 文件传输方法及相关产品
CN114584556A (zh) * 2022-03-14 2022-06-03 中国工商银行股份有限公司 文件传输方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060101009A1 (en) * 2002-06-20 2006-05-11 Dominik Weber System and method for searching for static data in a computer investigation system
CN102571709A (zh) * 2010-12-16 2012-07-11 腾讯科技(北京)有限公司 文件上传的方法、客户端、服务器及系统
CN102739791A (zh) * 2012-06-28 2012-10-17 奇智软件(北京)有限公司 一种文件的下载、上传方法及装置
CN103428242A (zh) * 2012-05-18 2013-12-04 阿里巴巴集团控股有限公司 一种增量同步的方法、装置及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060101009A1 (en) * 2002-06-20 2006-05-11 Dominik Weber System and method for searching for static data in a computer investigation system
CN102571709A (zh) * 2010-12-16 2012-07-11 腾讯科技(北京)有限公司 文件上传的方法、客户端、服务器及系统
CN103428242A (zh) * 2012-05-18 2013-12-04 阿里巴巴集团控股有限公司 一种增量同步的方法、装置及系统
CN102739791A (zh) * 2012-06-28 2012-10-17 奇智软件(北京)有限公司 一种文件的下载、上传方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘洋: "《信息存储技术原理分析》", 31 December 2014 *
百度文库: ""数据同步算法研究"", 《HTTPS://WENKU.BAIDU.COM/VIEW/82AD90500740BE1E650E9AFA.HTML,数据同步算法研究》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105635324A (zh) * 2016-03-17 2016-06-01 新浪网技术(中国)有限公司 用于浏览器或服务器的大文件上传、续传方法和装置
CN107623710A (zh) * 2016-07-15 2018-01-23 深圳市斑点猫信息技术有限公司 一种文件上传方法及终端
CN107632993A (zh) * 2016-07-19 2018-01-26 深圳市斑点猫信息技术有限公司 一种快速排重方法及终端
CN107632993B (zh) * 2016-07-19 2021-06-18 深圳市斑点猫信息技术有限公司 一种快速排重方法及终端
CN107613031A (zh) * 2017-11-08 2018-01-19 杭州亿方云网络科技有限公司 一种文件传输系统
CN113132055A (zh) * 2019-12-31 2021-07-16 深圳云天励飞技术有限公司 文件传输方法及相关产品
CN111651421A (zh) * 2020-06-05 2020-09-11 南方电网科学研究院有限责任公司 一种改进的Rsync方法、装置及信息同步系统
CN114584556A (zh) * 2022-03-14 2022-06-03 中国工商银行股份有限公司 文件传输方法和装置

Also Published As

Publication number Publication date
CN105208108B (zh) 2019-02-19

Similar Documents

Publication Publication Date Title
CN105208108A (zh) Web环境下的文件上传/下载方法及系统、服务器、客户端
CN102833258B (zh) 网址访问方法及系统
CN105389191A (zh) 一种基于局域网的软件升级方法、装置和系统
KR101901911B1 (ko) 악성 프로그램을 탐지하는 방법 및 장치
CN102946436B (zh) 一种下载系统
CN104219316A (zh) 一种分布式系统中的调用请求处理方法及装置
CN102970284B (zh) 用户信息处理方法和服务器
CN102984230B (zh) 远程协助中的数据传输装置及方法
CN109391673A (zh) 一种管理更新文件的方法、系统及终端设备
CN101405723A (zh) 初始动态呈现控件数据估计
CN105515900A (zh) 一种获取终端在线状态的方法及装置
CN105553727A (zh) 一种更新配置信息的方法、装置及系统
US20160344763A1 (en) Fuzzing server responses to malicious client devices
CN104683303A (zh) App管理方法
CN104486361A (zh) 建立网游连接的方法、游戏终端及系统
US20120331038A1 (en) Systems and methods for processing web service piped network requests
CN103634410B (zh) 基于内容分发网络cdn的数据同步方法,客户端及服务器
CN105554094A (zh) 数据交互方法及装置
CN113411404A (zh) 一种文件下载方法、装置、服务器及存储介质
CN103560997A (zh) 应用程序下载管理的方法、装置及下载服务器
CN104580361A (zh) 数据下载的方法、装置及系统
CN104125294A (zh) 一种大数据安全管理方法和系统
CN104537022A (zh) 浏览器信息分享的方法、浏览器客户端和装置
CN103248627A (zh) 实现访问网站资源的方法、正向代理服务器和系统
CN110582776A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220712

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co., Ltd