CN104247376B - 云存储的文件上传方法、客户端、应用服务器及云存储系统 - Google Patents
云存储的文件上传方法、客户端、应用服务器及云存储系统 Download PDFInfo
- Publication number
- CN104247376B CN104247376B CN201380000286.7A CN201380000286A CN104247376B CN 104247376 B CN104247376 B CN 104247376B CN 201380000286 A CN201380000286 A CN 201380000286A CN 104247376 B CN104247376 B CN 104247376B
- Authority
- CN
- China
- Prior art keywords
- file
- client
- file destination
- server
- uploading
- 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
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
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,图1是现有技术一种向云存储上传文件的流程示意图。该流程包括以下步骤:S101,客户端向应用服务器上传文件;S102,应用服务器校验文件的特征数据;S103,如果校验通过,应用服务器转发文件至文件服务器;S104,文件服务器存储文件,然后向应用服务器返回处理结果;S105,如果校验不通过,应用服务器删除文件;S106,应用服务器向客户端返回上传结果。
由于客户端是面向应用服务器,文件的相关数据由应用服务器转发,所以文件会在网络中传输多次,并且客户端需要将文件全部上传完成之后才能得到校验结果,如果校验不通过,需要删除文件,因此不仅造成流量浪费,还增加处理时间。
请参阅图2,图2是现有技术另一种向云存储上传文件的流程示意图。该流程包括以下步骤:S111,客户端向文件服务器上传文件;S112,文件服务器存储文件,然后向客户端返回文件的特征数据;S113,客户端向应用服务器提交特征数据;S114,应用服务器校验特征数据;S115,如果校验通过,应用服务器保存特征数据;S116,如果校验不通过,应用服务器调用文件服务器删除文件;S117,应用服务器向客户端返回上传结果。
与前一种上传方式不同的是,客户端面向的是文件服务器,然而,虽然客户端上传的文件可以直接存储在文件服务器中,不需由应用服务器转发,但是客户端仍然需要将文件全部上传完成之后才能得到校验结果,如果校验不通过,还是需要删除文件,因此,该上传方式也将造成流量浪费,而且,如果在步骤S113中,客户端因为某种原因不提交特征数据,将导致文件服务器上产生大量冗余文件,造成存储空间浪费,这些冗余文件需要通过其他手段来清理,比较麻烦。众所周知,云存储的空间是十分宝贵的,空间浪费现象是业界极力避免发生的。
发明内容
有鉴于此,本申请提供了一种云存储的文件上传方法、客户端、应用服务器及云存储系统,以解决现有技术中应用服务器不能在客户端上传文件之前进行校验的问题。
为解决上述问题,本申请第一方面提供一种云存储的文件上传方法,其包括:提取待上传的目标文件的特征值;向应用服务器提交包含特征值的上传请求,以供应用服务器根据上传请求判断是否需要客户端上传目标文件;接收应用服务器根据判断结果发出的执行指令;如果执行指令为上传指令,则根据上传指令上传目标文件至文件服务器。
结合第一方面,在第一种可能的实现方式中,特征值包括目标文件的大小、类型和名称中的一项或多项,以供应用服务器判断目标文件是否符合用户上传权限,或初步判断目标文件与文件服务器已保存的既有文件是否相同。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,特征值进一步包括目标文件的初始校验值,以供应用服务器初步判断目标文件与文件服务器已保存的既有文件是否相同。
结合第一方面,在第三种可能的实现方式中,文件上传方法还包括:如果执行指令为结束指令,则根据结束指令终止上传目标文件。
结合第一方面、第一方面的第一种可能的实现方式或第二种可能的实现方式,在第四种可能的实现方式中,文件上传方法还包括:如果执行指令为验证指令,则根据验证指令计算目标文件的验证校验值;提交验证校验值至文件服务器,以供文件服务器根据验证校验值最终判断目标文件与文件服务器已保存的既有文件是否相同,并将最终判断结果反馈给应用服务器。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,初始校验值和验证校验值分别为对应目标文件不同字节范围的MD5值或SHA1值。
结合第一方面的第四种可能的实现方式,在第六种可能的实现方式中,文件上传方法还包括:如果从应用服务器进一步接收到共享指令,则共享既有文件,并终止上传目标文件。
结合第一方面的第四种可能的实现方式,在第七种可能的实现方式中,文件上传方法还包括:如果从应用服务器进一步接收到上传指令,则根据上传指令上传目标文件至文件服务器。
结合第一方面的第一种可能的实现方式,在第八种可能的实现方式中,根据上传指令上传目标文件至文件服务器的步骤具体包括:根据上传指令将目标文件划分为若干实体,依次将每一实体上传至文件服务器,其中,上传每一实体时,均从已上传的前一实体开始继续上传后一实体,直至上传完所有实体。
为解决上述问题,本申请第二方面提供一种云存储的文件上传方法,其包括:接收客户端提交的上传请求,上传请求包含客户端待上传的目标文件的特征值;根据上传请求判断是否需要客户端上传目标文件;如果需要客户端上传目标文件,向客户端发出上传指令,以供客户端根据上传指令上传目标文件至文件服务器。
结合第二方面,在第一种可能的实现方式中,特征值包括目标文件的大小、类型和名称中的一项或多项,根据上传请求判断是否需要客户端上传目标文件的步骤具体包括:根据特征值判断目标文件是否符合用户上传权限;如果符合用户上传权限,则判断为需要客户端上传目标文件。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,文件上传方法还包括:在判断到符合用户上传权限之后,再根据特征值在文件服务器中初步判断目标文件与文件服务器已保存的既有文件是否相同;如果初步判断结果为不相同,则判断为需要客户端上传目标文件。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,特征值进一步包括目标文件的初始校验值,根据特征值在文件服务器中初步判断目标文件与文件服务器已保存的既有文件是否相同的步骤具体包括:根据目标文件的大小、类型和名称中的一项或多项以及初始校验值在文件服务器中初步判断目标文件与文件服务器已保存的既有文件是否相同。
结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,文件上传方法还包括:如果不符合用户上传权限,则判断为不需要客户端上传目标文件,向客户端发出结束指令,以供客户端根据结束指令终止上传目标文件。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,文件上传方法还包括:如果初步判断结果为相同,则向客户端发出验证指令,以供客户端根据验证指令计算目标文件的验证校验值,使得文件服务器根据验证校验值最终判断目标文件与既有文件是否相同。
结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,文件上传方法还包括:根据文件服务器反馈的最终判断目标文件与既有文件相同的结果向客户端发出共享指令,以供客户端根据共享指令共享既有文件,并终止上传目标文件。
结合第二方面的第五种可能的实现方式,在第七种可能的实现方式中,文件上传方法还包括:根据文件服务器反馈的最终判断目标文件与既有文件不相同的结果向客户端发出上传指令。
结合第二方面的第六种可能的实现方式或第七种可能的实现方式,在第八种可能的实现方式中,如果符合用户上传权限,在根据特征值在文件服务器中初步判断目标文件与文件服务器已保存的既有文件是否相同的步骤之前,文件上传方法还包括:对上传请求进行预处理。
结合第二方面的第八种可能的实现方式,在第九种可能的实现方式中,预处理的操作包括:根据目标文件的大小预先扣除用户存储空间以及为特征值添加预处理标识。
结合第二方面的第九种可能的实现方式,在第十种可能的实现方式中,向客户端发出结束指令后或者进一步接收文件服务器返回的目标文件上传失败的提示后,根据目标文件的大小还原用户存储空间,并删除特征值。
结合第二方面的第十种可能的实现方式,在第十一种可能的实现方式中,文件上传方法还包括:向客户端发出共享指令后或者进一步接收文件服务器返回的目标文件上传成功的提示后,将预处理标识变更为后处理标识。
结合第二方面的第十一种可能的实现方式,在第十二种可能的实现方式中,如果在预定期限内特征值没有被删除或预处理标识没有变更为后处理标识,则执行根据目标文件的大小还原用户存储空间,并删除特征值的步骤。
为解决上述问题,本申请第三方面提供一种云存储的客户端,其包括文件计算单元、文件上传单元和指令接收单元,其中,文件计算单元,用于提取待上传的目标文件的特征值,并将特征值传输给文件上传单元;文件上传单元,用于从文件计算单元获取特征值,以及向应用服务器提交包含特征值的上传请求,以供应用服务器根据上传请求判断是否需要客户端上传目标文件;指令接收单元,用于接收应用服务器根据判断结果发出的执行指令,如果执行指令为上传指令,则将上传指令传输给文件上传单元;文件上传单元进一步用于根据上传指令上传目标文件至文件服务器。
结合第三方面,在第一种可能的实现方式中,特征值包括目标文件的大小、类型和名称中的一项或多项,以供应用服务器判断目标文件是否符合用户上传权限,或初步判断目标文件与文件服务器已保存的既有文件是否相同。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,特征值进一步包括目标文件的初始校验值,以供应用服务器初步判断目标文件与文件服务器已保存的既有文件是否相同。
结合第三方面,在第三种可能的实现方式中,如果执行指令为结束指令,指令接收单元将结束指令传输给文件上传单元,文件上传单元进一步用于根据结束指令终止上传目标文件。
结合第三方面、第三方面的第一种可能或第二种可能的实现方式,在第四种可能的实现方式中,如果执行指令为验证指令,指令接收单元将验证指令传输给文件计算单元,文件计算单元进一步用于根据验证指令计算目标文件的验证校验值,并将验证校验值传输给文件上传单元;文件上传单元进一步用于从文件计算单元获取验证校验值,并提交验证校验值至文件服务器,以供文件服务器根据验证校验值最终判断目标文件与文件服务器已保存的既有文件是否相同,并将最终判断结果反馈给应用服务器。
结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,初始校验值和验证校验值分别为对应目标文件不同字节范围的MD5值或SHA1值。
结合第三方面的第四种可能的实现方式,在第六种可能的实现方式中,如果指令接收单元从应用服务器进一步接收到共享指令,则指令接收单元还将共享指令传输给文件上传单元,文件上传单元还用于从指令接收单元获取共享指令,根据共享指令共享既有文件,并终止上传目标文件。
结合第三方面的第四种可能的实现方式,在第七种可能的实现方式中,如果指令接收单元从应用服务器进一步接收到上传指令,则指令接收单元还将上传指令传输给文件上传单元,文件上传单元还用于从指令接收单元获取上传指令,根据上传指令上传目标文件至文件服务器。
结合第三方面,在第八种可能的实现方式中,文件上传单元具体用于根据上传指令将目标文件划分为若干实体,依次将每一实体上传至文件服务器,其中,上传每一实体时,均从已上传的前一实体开始继续上传后一实体,直至上传完所有实体。
为解决上述问题,本申请第四方面提供一种云存储的应用服务器,其包括应用存储单元、应用检测单元和应用处理单元,其中,应用存储单元,用于接收客户端提交的上传请求,并将上传请求传输给应用检测单元,上传请求包含客户端待上传的目标文件的特征值;应用检测单元,用于从应用存储单元获取上传请求,并根据上传请求判断是否需要客户端上传目标文件;应用处理单元,用于接收应用检测单元发送的需要客户端上传目标文件的判断结果,向客户端发出上传指令,以供客户端根据上传指令上传目标文件至文件服务器。
结合第四方面,在第一种可能的实现方式中,特征值包括目标文件的大小、类型和名称中的一项或多项,应用检测单元包括权限判断模块和执行模块,权限判断模块用于根据特征值判断目标文件是否符合用户上传权限;执行模块用于在权限判断模块的判断结果为是时,向应用处理单元发送需要客户端上传目标文件的判断结果。
结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,应用检测单元还包括初步判断模块,初步判断模块用于在权限判断模块的判断结果为是时,进一步根据特征值在文件服务器中初步判断目标文件与文件服务器已保存的既有文件是否相同;执行模块用于在初步判断模块的判断结果为否时,向应用处理单元发送需要客户端上传目标文件的判断结果。
结合第四方面的第二种可能的实现方式,在第三种可能的实现方式中,特征值进一步包括目标文件的初始校验值,初步判断模块具体用于根据目标文件的大小、类型和名称中的一项或多项以及初始校验值在文件服务器中初步判断目标文件与文件服务器已保存的既有文件是否相同。
结合第四方面的第二种可能的实现方式,在第四种可能的实现方式中,执行模块还用于在权限判断模块的判断结果为否时,向应用处理单元发送不需要客户端上传目标文件的判断结果;应用处理单元还用于接收执行模块发送的不需要客户端上传所述目标文件的判断结果,向客户端发出结束指令,以供客户端根据结束指令终止上传目标文件。
结合第四方面的第四种可能的实现方式,在第五种可能的实现方式中,应用处理单元还用于在初步判断模块的判断结果为是时,向客户端发出验证指令,以供客户端根据验证指令计算目标文件的验证校验值,使得文件服务器根据验证校验值最终判断目标文件与既有文件是否相同。
结合第四方面的第五种可能的实现方式,在第六种可能的实现方式中,应用处理单元还用于根据文件服务器反馈的最终判断目标文件与既有文件相同的结果向客户端发出共享指令,以供客户端根据共享指令共享既有文件,并终止上传目标文件。
结合第四方面的第五种可能的实现方式,在第七种可能的实现方式中,应用处理单元还用于根据文件服务器反馈的最终判断目标文件与既有文件不相同的结果向客户端发出上传指令。
结合第四方面的第六种可能或第七种可能的实现方式,在第八种可能的实现方式中,应用服务器还包括预处理单元,预处理单元用于在权限判断模块判断到符合用户上传权限时,对上传请求进行预处理。
结合第四方面的第八种可能的实现方式,在第九种可能的实现方式中,预处理的操作包括:根据目标文件的大小预先扣除用户存储空间以及为特征值添加预处理标识。
结合第四方面的第九种可能的实现方式,在第十种可能的实现方式中,预处理单元具体用于在应用处理单元向客户端发出结束指令后或者进一步接收文件服务器返回的目标文件上传失败的提示后,根据目标文件的大小还原用户存储空间,并删除特征值。
结合第四方面的第十种可能的实现方式,在第十一种可能的实现方式中,预处理单元具体用于在应用处理单元向客户端发出共享指令后或者进一步接收文件服务器返回的目标文件上传成功的提示后,将预处理标识变更为后处理标识。
结合第四方面的第十一种可能的实现方式,在第十二种可能的实现方式中,预处理单元设置有预定期限,如果在预定期限内特征值没有被删除或预处理标识没有变更为后处理标识,预处理单元根据目标文件的大小还原用户存储空间,并删除特征值。
为解决上述问题,本申请第四方面提供一种云存储系统,其包括上述任一种的客户端和上述任一种的应用服务器。
本申请云存储的文件上传方法、客户端、应用服务器及云存储系统通过先提取目标文件的特征值,将包含特征值的上传请求提交给应用服务器,在应用服务器根据上传请求判断需要客户端上传目标文件时,客户端才上传目标文件,从而解决了现有技术中应用服务器不能在客户端上传文件之前进行校验的问题,优化了上传过程,能够避免流量浪费,降低应用服务器的消耗,提升上传效率。
附图说明
图1是现有技术一种向云存储上传文件的流程示意图;
图2是现有技术另一种向云存储上传文件的流程示意图;
图3是本申请云存储的文件上传方法第一实施方式的流程示意图;
图4是本申请云存储的文件上传方法第二实施方式的流程示意图;
图5是本申请云存储的文件上传方法第三实施方式的流程示意图;
图6是本申请云存储的文件上传方法第四实施方式的流程示意图;
图7是本申请云存储的文件上传方法第五实施方式的流程示意图;
图8是本申请云存储的文件上传方法第六实施方式的流程示意图;
图9是本申请云存储的文件上传方法第七实施方式的流程示意图;
图10是本申请云存储的客户端一实施方式的结构示意图;
图11是本申请云存储的应用服务器一实施方式的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透切理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施方式中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
下面结合附图和具体的实施方式进行说明。本申请中所提及的链路,均是指具有物理连接关系的物理线路。
请参阅图3,图3是本发明云存储的文件上传方法第一实施方式的流程示意图。云存储的文件上传方法包括以下步骤:
步骤S201,提取待上传的目标文件的特征值。
其中,目标文件具有特征值,特征值表征目标文件的基本信息,通过特征值可以映射目标文件。如果存在多个目标文件,那么每个目标文件的特征值可能相同也可能不相同。
步骤S202,向应用服务器提交包含特征值的上传请求,以供应用服务器根据上传请求判断是否需要客户端上传目标文件。
其中,上传请求除了包含特征值之外,还可能包含存储路径,应用服务器如果需要存储特征值,则将特征值存储在存储路径中。在本实施方式中,特征值包括目标文件的大小、类型和名称中的一项或多项,以供应用服务器判断目标文件是否符合用户上传权限,或初步判断目标文件与文件服务器已保存的既有文件是否相同。具体地,判断是否需要客户端上传目标文件就包括了判断目标文件是否符合用户上传权限,或初步判断目标文件与文件服务器已保存的既有文件是否相同。对于前者,通过目标文件的名称、大小或类型中的至少一个,可以获知目标文件是否符合用户上传权限,是否符合用户上传权限例如包括类型是否属于允许上传的类型、大小是否超出允许的范围且是否大于用户享有的可用存储空间以及名称是否符合规范等判断项。对于后者,在应用服务器上保存有很多既有文件的特征值,每个既有文件均保存在文件服务器中,并与应用服务器中的特征值相互映射,将目标文件的特征值与既有文件的特征值对比,则可以初步甄别出与目标文件相同的既有文件。
进一步地,特征值还包括目标文件的初始校验值,以供应用服务器初步判断目标文件与文件服务器已保存的既有文件是否相同。在本实施方式中,初始校验值为对应目标文件一定字节范围的MD5值或SHA1值。MD5(Message Digest Algorithm5,消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,MD5将文件当作一个文本信息,通过其不可逆的字符串变换算法,产生唯一的MD5值,如果任何人对文件做了任何改动,其MD5值都会发生变化。而SHA1(Secure Hash Algorithm,安全哈希算法)与MD5作用类似,也产生唯一的SHA1值。因此,如果说多个不同的既有文件的大小、类型或名称与目标文件的大小、类型或名称相同的概率较大的话,那么初始校验值相同的概率就很小。因此,初始校验值可以较大程度地提高应用服务器初步判断的准确性。
步骤S203,接收应用服务器根据判断结果发出的执行指令。
其中,判断结果包括判断为需要客户端上传目标文件以及判断为不需要客户端上传目标文件。
步骤S204,如果执行指令为上传指令,则根据上传指令上传目标文件至文件服务器。
其中,执行指令为上传指令,说明应用服务器根据上传请求判断为需要客户端上传目标文件。考虑到上传目标文件过程中可能出现中断,在本实施方式中,根据上传指令将目标文件划分为若干实体,依次将每一实体上传至文件服务器,其中,上传每一实体时,均从已上传的前一实体开始继续上传后一实体,直至上传完所有实体。每个实体的字节范围可以不同。由于将整个目标文件分成若干实体进行上传,既可以保证上传速度,又可以避免万一上传中断后需要重新上传整个目标文件的情况,避免了流量浪费,提升了上传效率。
本实施方式云存储的文件上传方法先提交包含特征值的上传请求,在根据上传请求判断到需要客户端上传目标文件时,才上传目标文件,从而解决了现有技术中应用服务器不能在客户端上传文件之前进行校验的问题,优化了上传过程,能够避免流量浪费,降低应用服务器的消耗,提升上传效率,并且,上传目标文件时,将目标文件分为若干实体进行上传,进一步避免了流量浪费,提升了上传效率。
请参阅图4,图4是本申请云存储的文件上传方法第二实施方式的流程示意图。云存储的文件上传方法包括以下步骤:
步骤S301,提取待上传的目标文件的特征值。
步骤S302,向应用服务器提交包含特征值的上传请求,以供应用服务器根据上传请求判断是否需要客户端上传目标文件。
步骤S303,接收应用服务器根据判断结果发出的执行指令。
步骤S304,如果执行指令为上传指令,则根据上传指令上传目标文件至文件服务器。
步骤S301、S302、S303和S304请参照第一实施方式的相关步骤,其在本领域技术人员容易理解的范围内,此处不再赘述。
步骤S305,如果执行指令为结束指令,则根据结束指令终止上传目标文件。
其中,执行指令为结束指令,说明应用服务器根据上传请求判断为不需要客户端上传目标文件。
请参阅图5,图5是本申请云存储的文件上传方法第三实施方式的流程示意图。云存储的文件上传方法包括以下步骤:
步骤S401,提取待上传的目标文件的特征值。
步骤S402,向应用服务器提交包含特征值的上传请求,以供应用服务器根据上传请求判断是否需要客户端上传目标文件。
步骤S403,接收应用服务器根据判断结果发出的执行指令。
步骤S404,如果执行指令为上传指令,则根据上传指令上传目标文件至文件服务器。
步骤S405,如果执行指令为结束指令,则根据结束指令终止上传目标文件。
步骤S401、S402、S403、S404和S405请参照第二实施方式的相关步骤,其在本领域技术人员容易理解的范围内,此处不再赘述。
步骤S406,如果执行指令为验证指令,则根据验证指令计算目标文件的验证校验值。
其中,由前述可知,判断是否需要客户端上传目标文件就包括了判断目标文件是否符合用户上传权限,或初步判断目标文件与文件服务器已保存的既有文件是否相同。这里,执行指令为验证指令由初步判断目标文件与文件服务器已保存的既有文件是否相同的判断结果得来。执行指令为验证指令,说明初步判断目标文件与既有文件相同。
在本实施例中,验证校验值与初始校验值一样,也为对应目标文件一定字节范围的MD5值或SHA1值,但是,验证校验值与初始校验值对应目标文件不同字节范围的MD5值或SHA1值。这里,初始校验值对应目标文件较小字节范围,而验证校验值对应目标文件全部字节范围。
步骤S407,提交验证校验值至文件服务器,以供文件服务器根据验证校验值最终判断目标文件与文件服务器已保存的既有文件是否相同,并将最终判断结果反馈给应用服务器。
其中,对于不是真实存在的目标文件,其对应较小字节范围的初始校验值可以出于某种技术手段而伪造得到,使得上传请求带有欺骗性。如果伪造的初始校验值与既有文件相同字节范围的校验值相同,那么用户就可以不上传真实的目标文件,达到共享既有文件的目的。这将会对云存储带来极大的信息安全隐患。因此,本实施方式中在初始校验值判断通过的情况下,进一步判断验证校验值,就可以防止上述情况发生,因为,对于全部字节范围的验证校验值是难以伪造的。
步骤S408,如果从应用服务器进一步接收到共享指令,则共享既有文件,并终止上传目标文件。
其中,接收到共享指令,说明最终判断的结果为相同,可以共享既有文件,省去上传目标文件的步骤。
步骤S409,如果从应用服务器进一步接收到上传指令,则根据上传指令上传目标文件至文件服务器。
其中,接收到上传指令,说明最终判断的结果为不相同,还是需要上传目标文件。
请参阅图6,图6是本申请云存储的文件上传方法第三实施方式的流程示意图。云存储的文件上传方法包括以下步骤:
步骤S501,接收客户端提交的上传请求,上传请求包含客户端待上传的目标文件的特征值。
其中,接收到上传请求时,从上传请求中解析出特征值。上传请求可能还包含存储路径等,存储路径是客户端申请存储特征值的路径。
步骤S502,根据上传请求判断是否需要客户端上传目标文件。
其中,由于特征值是目标文件的基本信息,可以通过特征值映射目标文件。因此,根据上传请求判断是否需要客户端上传目标文件具体是根据特征值判断是否需要上传目标文件。
步骤S503,如果需要客户端上传目标文件,向客户端发出上传指令,以供客户端根据上传指令上传目标文件至文件服务器。
其中,判断到需要客户端上传目标文件,说明客户端有权限上传,并且待上传的目标文件有效。
本实施方式云存储的文件上传方法通过先根据客户端提交的上传请求判断到需要客户端上传目标文件后,才向客户端发出上传指令,客户端根据上传指令上传目标文件,从而解决了现有技术中上传文件完成后才进行校验的问题,优化了上传过程,能够避免流量浪费,降低应用服务器的消耗,提升上传效率。
请参阅图7,图7是本申请云存储的文件上传方法第五实施方式的流程示意图。云存储的文件上传方法包括以下步骤:
步骤S601,接收客户端提交的上传请求,上传请求包含客户端待上传的目标文件的特征值。
步骤S602,根据特征值判断目标文件是否符合用户上传权限。
其中,特征值包括目标文件的大小、类型和名称中的一项或多项。通过对目标文件的大小、类型和名称中的至少一项进行检测,可以判断出是否符合用户上传权限。
步骤S603,如果符合用户上传权限,则判断为需要客户端上传目标文件。
其中,如果目标文件的大小不超出允许的范围且小于或等于用户享有的可用存储空间、目标文件的类型属于允许上传的类型或者目标文件的名称符合规范,那么就判断出符合用户上传权限。
步骤S604,如果需要客户端上传目标文件,向客户端发出上传指令,以供客户端根据上传指令上传目标文件至文件服务器。
步骤S605,如果不符合用户上传权限,则判断为不需要客户端上传目标文件,向客户端发出结束指令,以供客户端根据结束指令终止上传目标文件。
其中,与步骤S603相对的,如果目标文件的大小超出允许的范围或大于用户享有的可用存储空间、目标文件的类型不属于允许上传的类型或者目标文件的名称不符合规范,那么就判断出不符合用户上传权限。
步骤S601和步骤S604请参照第四实施例的相关步骤,其在本领域技术人员容易理解的范围内,此处不再赘述。
请参阅图8,图8是本申请云存储的文件上传方法第六实施方式的流程示意图。云存储的文件上传方法包括以下步骤:
步骤S611,接收客户端提交的上传请求,上传请求包含客户端待上传的目标文件的特征值。
步骤S612,根据特征值判断目标文件是否符合用户上传权限,若是,则执行步骤S613,若否,则执行步骤S615。
其中,特征值包含目标文件的大小、类型和名称中的一项或多项,但本申请并不限于此,特征值还可以包含目标文件的其他信息,或者还可以进一步包含特征值的存储路径。
云存储的每个用户均具有用户上传权限,可以防止客户端随意上传,加强云存储的安全性。用户上传权限可以用列表表示,例如请参见表1。
表1不同用户的用户上传权限
表1中用户名表示每个用户,对应每个用户名,其具有的用户存储空间包括总空间和已用空间,其允许上传的大小为单体文件的大小。允许上传的类型即文件的类型。在表1中,并未示意出允许上传的名称,而还增加了是否允许覆盖同名文件的权限。
相应地,上传请求也可以以列表方式上传,例如请参见表2,表中包含了特征值和存储路径。
表2客户端提交的不同目标文件的上传请求
表2中,特征值包含了名称、大小、类型、初始校验值和存储路径,它们可以表征一个目标文件的基本信息。将表2中的每一项分别与用户上传权限中相应的项进行比对,即可得出是否符合用户上传权限。以用户名User1为例,其允许上传的大小为1GB,可用空间为3.1GB,而目标文件的大小为100MB,因此,目标文件的大小符合要求。而User1的允许上传的类型包含Image/png,因此,目标类型的类型符合要求。这里,目标文件的名称可以认为没有限制,可以任意选定。如果特征值的存储路径F3:/Path3/a或者F2:/Path2/c是有效且可用的话,那么,该目标文件File1是符合用户上传权限的。
步骤S613,根据特征值在文件服务器中初步判断目标文件与文件服务器已保存的既有文件是否相同,若是,则执行步骤S616,若否,则执行步骤S614。
其中,如表2所述,特征值还包括目标文件的初始校验值,步骤S613具体包括:根据目标文件的大小、类型和名称中的一项或多项以及初始校验值在文件服务器中初步判断目标文件与文件服务器已保存的既有文件是否相同。由于初始校验值参与了初步判断,因此判断的准确性更高。
步骤S614,向客户端发出上传指令,以供客户端根据上传指令上传目标文件至文件服务器。
其中,如果初步判断结果为不相同,说明待上传的目标文件是文件服务器中不存在的,则判断为需要客户端上传目标文件,因此,客户端需要上传目标文件。
步骤S615,向客户端发出结束指令,以供客户端根据结束指令终止上传目标文件。
其中,如果不符合用户上传权限,则判断为不需要客户端上传目标文件,需要客户端终止上传。当然,发出结束指令只是一种方式,本申请还可以采用另外的方式,例如,判断为不需要客户端上传目标文件时,不限制客户端上传目标文件,但拒绝接收目标文件。
步骤S616,如果初步判断结果为相同,则向客户端发出验证指令,以供客户端根据验证指令计算目标文件的验证校验值,使得文件服务器根据验证校验值最终判断目标文件与既有文件是否相同。
其中,虽然初步判断结果相同,但还不能完全认定客户端待上传的目标文件就是既有文件,因此,还需要向客户端发出验证指令。初始校验值和验证校验值均为MD5值或SHA1值,但初始校验值只对应目标文件较小字节范围的数据,而验证校验值对应目标文件全部字节范围的数据。在实际应用中,向客户端发出验证指令后,可以再接收验证校验值,根据验证校验值在文件服务器中最终判断目标文件与既有文件是否相同。但由于文件服务器中存储着既有文件,而且最终判断的过程是在文件服务器中进行,因此,出于减少数据传输次数和处理时间方面的考虑,本实施方式中客户端将验证校验值直接提交至文件服务器,使得文件服务器更直接方便地进行最终判断。
步骤S617,根据文件服务器反馈的最终判断目标文件与既有文件相同的结果向客户端发出共享指令,以供客户端根据共享指令共享既有文件,并终止上传目标文件。
其中,如果目标文件与既有文件确为相同文件,客户端就可以不再上传目标文件,只需要共享既有文件即可。共享既有文件,即用户获得既有文件的使用权,可以随时随地下载既有文件。
步骤S618,根据文件服务器反馈的最终判断目标文件与既有文件不相同的结果向客户端发出上传指令。
其中,如果目标文件与既有文件不相同,仍然需要客户端上传目标文件。在其他实施方式中,最终判断结果为不相同时,可以发出结束指令,以终止本次上传操作。
请参阅图9,图9是本申请云存储的文件上传方法第七实施方式的流程示意图。本实施方式文件上传方法的步骤S621、S622、S623、S624、S625、S626、S627、S628与第六实施方式相关步骤相同,不同之处在于,本实施方式在步骤S622之后、步骤S623之前还包括步骤S631,此外,本实施方式还包括步骤S632和步骤S633。云存储的文件上传方法包括以下步骤:
步骤S621,接收客户端提交的上传请求,上传请求包含客户端待上传的目标文件的特征值。
步骤S622,根据特征值判断目标文件是否符合用户上传权限,若是,则执行步骤S631,若否,则执行步骤S625。
步骤S631,对上传请求进行预处理。
其中,预处理的操作包括:根据目标文件的大小预先扣除用户存储空间以及为特征值添加预处理标识。在某些场合,用户可能会同时提交多个上传请求,所有上传请求对应的目标文件的容量大小可能会超出用户存储空间。因为在大多数情况下,只有用户存储空间的容量大于目标文件时,才可能上传目标文件。因此,预扣用户存储空间可以即时提醒用户其用户存储空间是否足够。
而特征值作为目标文件的基本信息,为特征值添加预处理标识,用以指明目标文件还没有上传,处于待上传状态。
步骤S623,根据特征值在文件服务器中初步判断目标文件与文件服务器已保存的既有文件是否相同,若是,则执行步骤S626,若否,则执行步骤S624。
步骤S624,向客户端发出上传指令,以供客户端根据上传指令上传目标文件至文件服务器。
其中,如果初步判断为是,则判断到需要客户端上传目标文件。
步骤S625,向客户端发出结束指令,以供客户端根据结束指令终止上传目标文件。
其中,如果初步判断为否,判断为不需要客户端上传目标文件,将拒绝客户端上传。
步骤S626,向客户端发出验证指令,以供客户端根据验证指令计算目标文件的验证校验值,使得文件服务器根据验证校验值最终判断目标文件与既有文件是否相同。
步骤S627,根据文件服务器反馈的最终判断目标文件与既有文件相同的结果向客户端发出共享指令,以供客户端根据共享指令共享既有文件,并终止上传目标文件。
步骤S628,根据文件服务器反馈的最终判断目标文件与既有文件不相同的结果向客户端发出上传指令。
步骤S632,向客户端发出共享指令后或者进一步接收文件服务器返回的目标文件上传成功的提示后,将预处理标识变更为后处理标识。
其中,客户端共享既有文件或上传目标文件成功,用户存储空间均已实际减少,由于在步骤S631中已经预扣了用户存储空间,因此,此时不对用户存储空间作更改变动,只将预处理标识变更为后处理标识。后处理标识用以指明特征值映射的文件(目标文件或既有文件)是已经上传的,处于已完成上传状态。
步骤S633,向客户端发出结束指令后或者进一步接收文件服务器返回的目标文件上传失败的提示后,根据目标文件的大小还原用户存储空间,并删除特征值。
其中,客户端终止上传或者上传目标文件失败,用户存储空间实际上并没有减少,但是在步骤S631中已经预扣了用户存储空间,因此,需要还原用户存储空间。由于目标文件不存在于文件服务器中,因此还需要删除特征值。需要指出的是,目标文件上传失败,是指目标文件全部字节范围的数据上传失败,这里,有一个例外,如果目标文件分为若干不同字节范围的实体进行上传,那么如果只是某一个实体上传失败,将只按照没有上传的实体对应的字节范围还原用户存储空间,特征值将继续保留。该目标文件虽然缺少某些实体,是不完整的,但客户端仍然可以下载或编辑,至于该目标文件是否能够正常打开则不在本申请保护范围之内。
在本实施方式中,如果在预定期限内特征值没有被删除或预处理标识没有变更为后处理标识,那么仍然会根据目标文件的大小还原用户存储空间,并删除特征值,也就是说,预处理具有一个期限,如果在期限内还没有进行相应操作,将进行预处理的逆过程。
请参阅图10,图10是本申请云存储的客户端一实施方式的结构示意图。为了清楚说明,图中还一并示出了应用服务器12和文件服务器13。
客户端11包括文件计算单元111、文件上传单元112和指令接收单元113。客户端11作为用户设备,可以是个人计算机、平板电脑、移动终端等设备。
文件计算单元111用于提取待上传的目标文件的特征值,并将特征值传输给文件上传单元112。
文件上传单元112用于从文件计算单元111获取特征值,以及向应用服务器12提交包含特征值的上传请求,以供应用服务器12根据上传请求判断是否需要客户端11上传目标文件。
指令接收单元113用于接收应用服务器12根据判断结果发出的执行指令,如果执行指令为上传指令,则将上传指令传输给文件上传单元112。
文件上传单元112进一步用于根据上传指令上传目标文件至文件服务器13。在本实施方式中,文件上传单元112具体用于根据上传指令将目标文件划分为若干实体,依次将每一实体上传至文件服务器13,其中,上传每一实体时,均从已上传的前一实体开始继续上传后一实体,直至上传完所有实体。
执行指令还可能为其它指令,如果执行指令不是上传指令,而是结束指令,那么指令接收单元113将结束指令传输给文件上传单元112,文件上传单元112进一步用于根据结束指令终止上传目标文件。
本实施方式的客户端11在上传目标文件时,需要先提取目标文件的特征值,将包含特征值的上传请求提交给应用服务器12,在应用服务器12根据上传请求判断需要客户端11上传目标文件时,客户端11才上传目标文件至文件服务器13,从而解决了现有技术中应用服务器不能在客户端上传文件之前进行校验的问题,优化了上传过程,能够避免流量浪费,降低应用服务器的消耗,提升上传效率。
请参阅图10,在本申请云存储的客户端另一实施方式中,特征值作为目标文件的基本信息,其包括目标文件的大小、类型和名称中的一项或多项,以供应用服务器12判断目标文件是否符合用户上传权限,或初步判断目标文件与文件服务器13已保存的既有文件是否相同。进一步地,特征值进一步包括目标文件的初始校验值,以供应用服务器12初步判断目标文件与文件服务器13已保存的既有文件是否相同。
承前所述,如果执行指令不为上传指令,而为验证指令,则指令接收单元113将验证指令传输给文件计算单元111,文件计算单元111进一步用于根据验证指令计算目标文件的验证校验值,并将验证校验值传输给文件上传单元112。文件上传单元112进一步用于从文件计算单元111获取验证校验值,并提交验证校验值至文件服务器13,以供文件服务器13根据验证校验值最终判断目标文件与文件服务器13已保存的既有文件是否相同,并将最终判断结果反馈给应用服务器12。在本实施方式中,初始校验值和验证校验值分别为对应目标文件不同字节范围的MD5值或SHA1值。
由于文件服务器13进行最终判断,因此应用服务器12可能会发出其他指令。如果指令接收单元113从应用服务器12进一步接收到共享指令,则指令接收单元113还将共享指令传输给文件上传单元112,文件上传单元112还用于从指令接收单元113获取所共享指令,根据共享指令共享既有文件,并终止上传目标文件。
如果指令接收单元113从应用服务器12进一步接收到上传指令,则指令接收单元113还将上传指令传输给文件上传单元112,文件上传单元112还用于从指令接收单元113获取上传指令,根据上传指令上传目标文件至文件服务器13。
请参阅图11,图11是本申请云存储的应用服务器一实施方式的结构示意图。为了清楚说明,图中一并示出了客户端22和文件服务器23。
应用服务器21包括应用存储单元211、应用检测单元212和应用处理单元213。应用服务器21作为数据中心,通常为多线机房或BGP机房(Border Gateway Protocol,边界网关协议)。
应用存储单元211用于接收客户端22提交的上传请求,并将上传请求传输给应用检测单元212,上传请求包含客户端22待上传的目标文件的特征值。
应用检测单元212用于从应用存储单元211获取上传请求,并根据上传请求判断是否需要客户端22上传目标文件。
应用处理单元213用于接收应用检测单元212发送的需要客户端22上传目标文件的判断结果,向客户端22发出上传指令,以供客户端22根据上传指令上传目标文件至文件服务器23。
本实施方式的云存储的应用服务器21通过根据客户端22提交的上传请求判断是否需要客户端22上传目标文件,在需要客户端22上传目标文件时,才允许客户端22上传目标文件至文件服务器23,从而解决了现有技术中应用服务器不能在客户端上传文件之前进行校验的问题,优化了上传过程,能够避免流量浪费,降低应用服务器的消耗,提升上传效率。
请继续参阅图11,在本申请云存储的应用服务器另一实施方式中,特征值包括目标文件的大小、类型和名称中的一项或多项,应用检测单元212包括权限判断模块2121和执行模块2122。权限判断模块2121用于根据特征值判断目标文件是否符合用户上传权限。而执行模块2122用于在权限判断模块2121的判断结果为是时,向应用处理单元213发送需要客户端22上传目标文件的判断结果,或者在权限判断模块2121的判断结果为否时,向应用处理单元213发送不需要客户端22上传目标文件的判断结果,应用处理单元213则还用于接收执行模块2122发送的不需要客户端22上传目标文件的判断结果,向客户端22发出结束指令,以供客户端22根据结束指令终止上传目标文件。
也就是说,只有目标文件符合用户上传权限,应用服务器21才同意客户端22上传目标文件,可以提高应用服务器21的可靠性和实用性。
请继续参阅图11,在本申请云存储的应用服务器另一实施方式中,应用检测单元212还包括初步判断模块2123。初步判断模块2123用于在权限判断模块2121的判断结果为是时,进一步根据特征值在文件服务器23中初步判断目标文件与文件服务器23已保存的既有文件是否相同。则执行模块2122用于在初步判断模块2123的判断结果为否时,向应用处理单元213发送需要客户端22上传目标文件的判断结果。
进一步地,特征值还包括目标文件的初始校验值,初步判断模块2123具体用于根据目标文件的大小、类型和名称中的一项或多项以及初始校验值在文件服务器23中初步判断目标文件与文件服务器23已保存的既有文件是否相同。
应用处理单元213还用于在初步判断模块2123的判断结果为是时,向客户端22发出验证指令,以供客户端22根据验证指令计算目标文件的验证校验值,使得文件服务器23根据验证校验值最终判断目标文件与既有文件是否相同。
应用处理单元213还用于根据文件服务器23反馈的最终判断目标文件与既有文件相同的结果向客户端22发出共享指令,以供客户端22根据共享指令共享既有文件,并终止上传目标文件。
应用处理单元213还用于根据文件服务器23反馈的最终判断目标文件与既有文件不相同的结果向客户端22发出上传指令。
本实施方式在权限判断模块2121判断之后初步判断模块2123还要继续判断,可以防止同样的文件重复上传,而浪费空间。
请继续参阅图11,在本申请云存储的应用服务器另一实施方式中,应用服务器21还包括预处理单元214,预处理单元214用于在权限判断模块2121判断到符合用户上传权限时,对上传请求进行预处理。在本实施方式中,预处理的操作包括:根据目标文件的大小预先扣除用户存储空间以及为特征值添加预处理标识。
预处理单元214具体用于在应用处理单元213向客户端22发出结束指令后或者进一步接收文件服务器23返回的目标文件上传失败的提示后,根据目标文件的大小还原用户存储空间,并删除特征值。
预处理单元214还具体用于在应用处理单元213向客户端22发出共享指令后或者进一步接收文件服务器23返回的目标文件上传成功的提示后,将预处理标识变更为后处理标识。
预处理单元214设置有预定期限,如果在预定期限内特征值没有被删除或预处理标识没有变更为后处理标识,预处理单元214根据目标文件的大小还原用户存储空间,并删除特征值。
由于应用服务器21接收上传请求就表明上传过程已经开始,当客户端22同时提交了多个目标文件的上传请求时,可能应用服务器21都允许上传,那么如果用户存储空间不足,那么有一部分目标文件将会无法存储,而造成上传失败,也就造成了流量浪费。而预处理单元214可以在接收到上传请求时就扣除用户存储空间,如果用户存储空间不足,那么自然对于某些上传请求应用服务器21将判断为不符合用户上传权限的,也就避免了上述问题。
本申请还提供了一种云存储系统,云存储系统包括前述实施方式的客户端以及前述实施方式的应用服务器。该云存储系统的具体工作过程请参照前述实施方式的相关描述,云存储系统的其它部分请参照现有技术,此处不再赘述。
应当理解,在本申请提供的所有实施方式中,所揭露的装置和方法,可以通过其它方式实现。例如,以上提供的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以存在另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的功能模块可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能模块可以集成在一个处理单元中,也可以是各个功能模块单独物理存在,也可以两个或两个以上功能模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
通过上述方式,本发明的云存储的文件上传方法、客户端、应用服务器及云存储系统通过在上传目标文件之前先提取目标文件的特征值,将包含特征值的上传请求提交给应用服务器,在应用服务器根据上传请求判断需要客户端上传目标文件时,客户端才上传目标文件,从而解决了现有技术中应用服务器不能在客户端上传文件之前进行校验的问题,优化了上传过程,能够避免流量浪费,降低应用服务器的消耗,提升上传效率。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (29)
1.一种云存储的文件上传方法,其特征在于,所述文件上传方法包括:
提取待上传的目标文件的特征值;
向应用服务器提交包含所述特征值的上传请求,以供所述应用服务器根据所述上传请求判断是否需要客户端上传所述目标文件,其中,所述特征值包括所述目标文件的名称、大小、类型中的至少一种,以供所述应用服务器判断所述目标文件是否符合上传权限,或初步判断所述目标文件与所述文件服务器已保存的既有文件是否相同,所述特征值还包括所述目标文件的初始校验值,以供应用服务器初步判断所述目标文件与文件服务器已保存的文件是否相同;
接收所述应用服务器根据判断结果发出的执行指令;
如果所述执行指令为上传指令,则根据所述上传指令上传所述目标文件至所述文件服务器;
如果所述执行指令为验证指令,则根据所述验证指令计算所述目标文件的验证校验值,并提交所述验证校验值至所述文件服务器,以供所述文件服务器根据所述验证校验值最终判断所述目标文件与所述文件服务器已保存的文件是否相同,并将最终判断结果反馈给所述应用服务器;
其中,初始校验值对应目标文件较小字节范围的MD5值或SHAl值,而验证校验值对应目标文件全部字节范围的MD5值或SHAl值。
2.根据权利要求1所述的文件上传方法,其特征在于,所述文件上传方法还包括:
如果所述执行指令为结束指令,则根据所述结束指令终止上传所述目标文件。
3.根据权利要求1所述的文件上传方法,其特征在于,所述如果所述执行指令为验证指令,则根据所述验证指令计算所述目标文件的验证校验值,并提交所述验证校验值至所述文件服务器,以供所述文件服务器根据所述验证校验值最终判断所述目标文件与所述文件服务器已保存的文件是否相同,并将最终判断结果反馈给所述应用服务器之后,进一步包括:
如果从所述应用服务器进一步接收到共享指令,则共享所述既有文件,并终止上传所述目标文件。
4.根据权利要求1所述的文件上传方法,其特征在于,所述如果所述执行指令为验证指令,则根据所述验证指令计算所述目标文件的验证校验值,并提交所述验证校验值至所述文件服务器,以供所述文件服务器根据所述验证校验值最终判断所述目标文件与所述文件服务器已保存的文件是否相同,并将最终判断结果反馈给所述应用服务器之后,进一步包括:
如果从所述应用服务器进一步接收到所述上传指令,则根据所述上传指令上传所述目标文件至所述文件服务器。
5.根据权利要求1所述的文件上传方法,其特征在于,所述根据所述上传指令上传所述目标文件至文件服务器的步骤具体包括:
根据所述上传指令将所述目标文件划分为若干实体,依次将每一所述实体上传至文件服务器,其中,上传每一所述实体时,均从已上传的前一所述实体开始继续上传后一所述实体,直至上传完所有所述实体。
6.一种云存储的文件上传方法,其特征在于,所述文件上传方法包括:
接收客户端提交的上传请求,所述上传请求包含所述客户端待上传的目标文件的特征值;
根据所述上传请求判断是否需要所述客户端上传所述目标文件,其中,所述特征值包括所述目标文件的名称、大小、类型中的至少一种,以判断所述目标文件是否符合用户上传权限,所述特征值还包括所述目标文件的初始校验值,以初步判断所述目标文件与文件服务器已保存的既有文件是否相同;
如果需要所述客户端上传所述目标文件,向所述客户端发出上传指令,以供所述客户端根据所述上传指令上传所述目标文件至文件服务器;
如果初步判断结果为相同,则向所述客户端发出验证指令,以供所述客户端根据所述验证指令计算所述目标文件的验证校验值,并提交所述验证校验值至所述文件服务器,以供所述文件服务器根据所述验证校验值最终判断所述目标文件与所述文件服务器已保存的文件是否相同,并反馈最终判断结果;
其中,初始校验值对应目标文件较小字节范围的MD5值或SHAl值,而验证校验值对应目标文件全部字节范围的MD5值或SHAl值。
7.根据权利要求6所述的文件上传方法,其特征在于,所述文件上传方法还包括:
如果不符合所述用户上传权限,则判断为不需要所述客户端上传所述目标文件,向所述客户端发出结束指令,以供所述客户端根据所述结束指令终止上传所述目标文件。
8.根据权利要求7所述的文件上传方法,其特征在于,所述文件上传方法还包括:
根据所述文件服务器反馈的最终判断所述目标文件与所述既有文件相同的结果向所述客户端发出共享指令,以供所述客户端根据所述共享指令共享所述既有文件,并终止上传所述目标文件。
9.根据权利要求7所述的文件上传方法,其特征在于,所述文件上传方法还包括:
根据所述文件服务器反馈的最终判断所述目标文件与所述既有文件不相同的结果向所述客户端发出所述上传指令。
10.根据权利要求8或9所述的文件上传方法,其特征在于,如果符合所述用户上传权限,在所述根据所述特征值在所述文件服务器中初步判断所述目标文件与所述文件服务器已保存的既有文件是否相同的步骤之前,所述文件上传方法还包括:
对所述上传请求进行预处理。
11.根据权利要求10所述的文件上传方法,其特征在于,所述预处理的操作包括:
根据所述目标文件的大小预先扣除用户存储空间以及为所述特征值添加预处理标识。
12.根据权利要求11所述的文件上传方法,其特征在于,所述文件上传方法还包括:
向所述客户端发出所述结束指令后或者进一步接收所述文件服务器返回的所述目标文件上传失败的提示后,根据所述目标文件的大小还原所述用户存储空间,并删除所述特征值。
13.根据权利要求12所述的文件上传方法,其特征在于,所述文件上传方法还包括:
向所述客户端发出所述共享指令后或者进一步接收所述文件服务器返回的所述目标文件上传成功的提示后,将所述预处理标识变更为后处理标识。
14.根据权利要求13所述的文件上传方法,其特征在于,如果在预定期限内所述特征值没有被删除或所述预处理标识没有变更为所述后处理标识,则执行根据所述目标文件的大小还原所述用户存储空间,并删除所述特征值的步骤。
15.一种云存储的客户端,其特征在于,所述客户端包括文件计算单元、文件上传单元和指令接收单元,其中,
所述文件计算单元,用于提取待上传的目标文件的特征值,并将所述特征值传输给所述文件上传单元;
所述文件上传单元,用于从所述文件计算单元获取所述特征值,以及向应用服务器提交包含所述特征值的上传请求,以供所述应用服务器根据所述上传请求判断是否需要所述客户端上传所述目标文件,其中,所述特征值包括所述目标文件的名称、大小、类型中的至少一种,以供所述应用服务器判断所述目标文件是否符合上传权限,或初步判断所述目标文件与所述文件服务器已保存的既有文件是否相同,所述特征值还包括所述目标文件的初始校验值,以供应用服务器初步判断所述目标文件与文件服务器已保存的文件是否相同;
所述指令接收单元,用于接收所述应用服务器根据判断结果发出的执行指令,如果所述执行指令为上传指令,则将所述上传指令传输给所述文件上传单元;
所述文件上传单元进一步用于根据所述上传指令上传所述目标文件至所述文件服务器;
如果所述指令接收单元所接收的执行指令为验证指令,则将所述验证指令传输给所述文件上传单元;所述文件上传单元进一步用于从所述文件计算单元获取所述验证校验值,并提交所述验证校验值至所述文件服务器,以供所述文件服务器根据所述验证校验值最终判断所述目标文件与所述文件服务器已保存的文件是否相同,并将最终判断结果反馈给所述应用服务器;
其中,初始校验值对应目标文件较小字节范围的MD5值或SHAl值,而验证校验值对应目标文件全部字节范围的MD5值或SHAl值。
16.根据权利要求15所述的客户端,其特征在于,如果所述执行指令为结束指令,所述指令接收单元将所述结束指令传输给所述文件上传单元,所述文件上传单元进一步用于根据所述结束指令终止上传所述目标文件。
17.根据权利要求15所述的客户端,其特征在于,如果所述指令接收单元从所述应用服务器进一步接收到共享指令,则所述指令接收单元还将所述共享指令传输给所述文件上传单元,所述文件上传单元还用于从所述指令接收单元获取所述共享指令,根据所述共享指令共享所述既有文件,并终止上传所述目标文件。
18.根据权利要求15所述的客户端,其特征在于,如果所述指令接收单元从所述应用服务器进一步接收到所述上传指令,则所述指令接收单元还将所述上传指令传输给所述文件上传单元,所述文件上传单元还用于从所述指令接收单元获取所述上传指令,根据所述上传指令上传所述目标文件至所述文件服务器。
19.根据权利要求15所述的客户端,其特征在于,所述文件上传单元具体用于根据所述上传指令将所述目标文件划分为若干实体,依次将每一所述实体上传至文件服务器,其中,上传每一所述实体时,均从已上传的前一所述实体开始继续上传后一所述实体,直至上传完所有所述实体。
20.一种云存储的应用服务器,其特征在于,所述应用服务器包括应用存储单元、应用检测单元和应用处理单元,其中,
所述应用存储单元,用于接收客户端提交的上传请求,并将所述上传请求传输给所述应用检测单元,所述上传请求包含所述客户端待上传的目标文件的特征值;
所述应用检测单元,用于从所述应用存储单元获取所述上传请求,并根据所述上传请求判断是否需要所述客户端上传所述目标文件,其中,所述特征值包括所述目标文件的名称、大小、类型中的至少一种,以供所述应用服务器判断所述目标文件是否符合用户上传权限,所述特征值还包括所述目标文件的初始校验值,以初步判断所述目标文件与文件服务器已保存的既有文件是否相同;
其中,所述应用检测单元包括权限判断模块和执行模块,所述权限判断模块用于根据所述特征值判断所述目标文件是否符合用户上传权限,所述执行模块用于在所述权限判断模块的判断结果为是时,向所述应用处理单元发送需要所述客户端上传所述目标文件的判断结果;
所述应用处理单元,用于接收所述应用检测单元发送的需要所述客户端上传所述目标文件的判断结果,向所述客户端发出上传指令,以供所述客户端根据所述上传指令上传所述目标文件至文件服务器;
所述应用处理单元,进一步用于在所述初步判断结果为相同时,向所述客户端发出验证指令,以供所述客户端根据所述验证指令计算所述目标文件的验证校验值,并提交所述验证校验值至所述文件服务器,以供所述文件服务器根据所述验证校验值最终判断所述目标文件与所述文件服务器已保存的文件是否相同,并反馈最终判断结果;
其中,初始校验值对应目标文件较小字节范围的MD5值或SHAl值,而验证校验值对应目标文件全部字节范围的MD5值或SHAl值。
21.根据权利要求20所述的应用服务器,其特征在于,所述执行模块还用于在所述权限判断模块的判断结果为否时,向所述应用处理单元发送不需要所述客户端上传所述目标文件的判断结果;
所述应用处理单元还用于接收所述执行模块发送的不需要所述客户端上传所述目标文件的判断结果,向所述客户端发出结束指令,以供所述客户端根据所述结束指令终止上传所述目标文件。
22.根据权利要求21所述的应用服务器,其特征在于,所述应用处理单元还用于根据所述文件服务器反馈的最终判断所述目标文件与所述既有文件相同的结果向所述客户端发出共享指令,以供所述客户端根据所述共享指令共享所述既有文件,并终止上传所述目标文件。
23.根据权利要求21所述的应用服务器,其特征在于,所述应用处理单元还用于根据所述文件服务器反馈的最终判断所述目标文件与所述既有文件不相同的结果向所述客户端发出所述上传指令。
24.根据权利要求22或23所述的应用服务器,其特征在于,所述应用服务器还包括预处理单元,所述预处理单元用于在所述权限判断模块判断到符合所述用户上传权限时,对所述上传请求进行预处理。
25.根据权利要求24所述的应用服务器,其特征在于,所述预处理的操作包括:
根据所述目标文件的大小预先扣除用户存储空间以及为所述特征值添加预处理标识。
26.根据权利要求25所述的应用服务器,其特征在于,所述预处理单元具体用于在所述应用处理单元向所述客户端发出所述结束指令后或者进一步接收所述文件服务器返回的所述目标文件上传失败的提示后,根据所述目标文件的大小还原所述用户存储空间,并删除所述特征值。
27.根据权利要求26所述的应用服务器,其特征在于,所述预处理单元具体用于在所述应用处理单元向所述客户端发出所述共享指令后或者进一步接收所述文件服务器返回的所述目标文件上传成功的提示后,将所述预处理标识变更为后处理标识。
28.根据权利要求27所述的应用服务器,其特征在于,所述预处理单元设置有预定期限,如果在预定期限内所述特征值没有被删除或所述预处理标识没有变更为所述后处理标识,所述预处理单元根据所述目标文件的大小还原所述用户存储空间,并删除所述特征值。
29.一种云存储系统,其特征在于,所述云存储系统包括根据权利要求15至19任一项所述的客户端和根据权利要求20至28任一项所述的应用服务器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/073662 WO2014161157A1 (zh) | 2013-04-02 | 2013-04-02 | 云存储的文件上传方法、客户端、应用服务器及云存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104247376A CN104247376A (zh) | 2014-12-24 |
CN104247376B true CN104247376B (zh) | 2018-06-26 |
Family
ID=51657408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380000286.7A Active CN104247376B (zh) | 2013-04-02 | 2013-04-02 | 云存储的文件上传方法、客户端、应用服务器及云存储系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20160057201A1 (zh) |
EP (1) | EP2958298B1 (zh) |
CN (1) | CN104247376B (zh) |
WO (1) | WO2014161157A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113132426A (zh) * | 2019-12-30 | 2021-07-16 | 同方威视科技江苏有限公司 | 一种基于用户权限的云平台文件管理系统和方法 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100230A (zh) * | 2015-07-09 | 2015-11-25 | 无锡天脉聚源传媒科技有限公司 | 一种文件传输方法和装置 |
US10425477B2 (en) * | 2015-09-15 | 2019-09-24 | Microsoft Technology Licensing, Llc | Synchronizing file data between computer systems |
CN106302641B (zh) * | 2016-07-27 | 2019-10-01 | 北京小米移动软件有限公司 | 一种上传文件的方法、装置和系统 |
CN106453663B (zh) * | 2016-12-13 | 2019-10-22 | 河北思达歌数据科技投资有限公司 | 改进的基于云服务的存储扩容方法及装置 |
CN106790484A (zh) * | 2016-12-13 | 2017-05-31 | 宁夏宁信信息科技有限公司 | 分类型基于云服务的存储扩容方法及装置 |
US10963521B2 (en) * | 2016-12-22 | 2021-03-30 | Vmware, Inc. | Handling large streaming file formats in web browsers |
CN106897098A (zh) * | 2017-02-27 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种模板操作方法及装置 |
EP3603018B1 (en) * | 2017-03-31 | 2023-03-08 | Nokia Solutions and Networks Oy | Optimizations for cloud storage related data flow |
CN107426331A (zh) * | 2017-08-09 | 2017-12-01 | 北京天信瑞安信息技术有限公司 | 一种基于JavaScript的文件上传方法及装置 |
CN111066306B (zh) * | 2018-03-27 | 2022-09-16 | 华为技术有限公司 | 在局域网内共享数据的方法及电子设备 |
CN110392083B (zh) * | 2018-04-20 | 2022-06-24 | 华为技术有限公司 | 文件秒传的控制方法、装置及终端设备 |
CN110213313B (zh) * | 2018-04-28 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 一种文件上传的方法、相关装置及系统 |
CN109067733B (zh) | 2018-07-27 | 2021-01-05 | 成都华为技术有限公司 | 发送数据的方法和装置,以及接收数据的方法和装置 |
CN109660639B (zh) * | 2018-12-11 | 2022-02-25 | 深圳市迅雷网络技术有限公司 | 一种数据上传方法、设备、系统及介质 |
CN110958292A (zh) * | 2019-09-17 | 2020-04-03 | 平安银行股份有限公司 | 文件上传方法、电子装置、计算机设备及存储介质 |
CN112788071A (zh) * | 2019-11-01 | 2021-05-11 | 科美诊断技术股份有限公司 | 一种运行数据的上传方法及装置 |
CN111083143B (zh) * | 2019-12-17 | 2022-10-21 | 北京思维造物信息科技股份有限公司 | 请求响应方法、装置、设备和存储介质 |
CN111782594A (zh) * | 2020-07-02 | 2020-10-16 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种文件存储方法及装置 |
CN112631514A (zh) * | 2020-12-17 | 2021-04-09 | 龙存科技(北京)股份有限公司 | 一种应用于云盘系统中的文件去重方法、系统 |
CN112637354B (zh) * | 2020-12-28 | 2022-10-18 | 同方威视科技江苏有限公司 | 基于云存储的数据传输管理方法、系统与设备 |
CN112667579B (zh) * | 2020-12-30 | 2023-07-28 | 杭州趣链科技有限公司 | 文件存储方法、装置、设备和存储介质 |
CN113810454A (zh) * | 2021-01-15 | 2021-12-17 | 北京沃东天骏信息技术有限公司 | 一种文件传输方法、装置、电子设备及存储介质 |
CN115378930B (zh) * | 2021-05-17 | 2024-08-13 | 成都鼎桥通信技术有限公司 | 文件分发方法及装置 |
CN113630440B (zh) * | 2021-07-08 | 2024-04-26 | 中汽创智科技有限公司 | 一种数据上传的方法、装置、系统、电子设备及存储介质 |
CN114168536A (zh) * | 2021-11-27 | 2022-03-11 | 深圳市连用科技有限公司 | 一种上传文件的方法及终端设备 |
CN114168185A (zh) * | 2021-12-08 | 2022-03-11 | 航天科技控股集团股份有限公司 | 一种车载全液晶仪表上传升级文件的方法 |
CN114390044B (zh) * | 2021-12-29 | 2024-05-14 | 杭州华橙软件技术有限公司 | 一种文件上传方法、系统、设备及存储介质 |
CN114697368B (zh) * | 2022-02-25 | 2023-12-19 | 青岛海尔科技有限公司 | 设备控制文件的确定方法及装置、存储介质、电子装置 |
CN115150388B (zh) * | 2022-06-24 | 2024-04-26 | 中国建设银行股份有限公司 | 文件上传和文件上传状态查询方法及其设备、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546836A (zh) * | 2012-03-09 | 2012-07-04 | 腾讯科技(深圳)有限公司 | 一种上传文件的方法、终端、服务器及系统 |
CN102597997A (zh) * | 2009-10-13 | 2012-07-18 | 谷歌公司 | 基于云的媒体播放器及离线媒体访问 |
CN102833294A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 基于云存储的文件处理方法、系统及服务器集群系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1673924B1 (en) * | 2003-10-16 | 2009-12-09 | NTT DoCoMo, Inc. | Mobile peer-to-peer networking |
US20050256845A1 (en) * | 2004-05-10 | 2005-11-17 | Microsoft Corporation | Data management for a networked multimedia console |
CN100490380C (zh) * | 2005-12-26 | 2009-05-20 | 北大方正集团有限公司 | 轻量级分布式文件存储系统文件上传的方法 |
US20080059519A1 (en) * | 2006-09-02 | 2008-03-06 | Tony Grifftih | System, method, and apparatus for providing storage operations on an online computer system |
CN101552669A (zh) * | 2008-04-02 | 2009-10-07 | 林兆祥 | 数据传输的方法及系统 |
US8620879B2 (en) * | 2009-10-13 | 2013-12-31 | Google Inc. | Cloud based file storage service |
US8140647B1 (en) * | 2009-11-17 | 2012-03-20 | Applied Micro Circuits Corporation | System and method for accelerated data uploading |
US20110134930A1 (en) * | 2009-12-09 | 2011-06-09 | Mclaren Moray | Packet-based networking system |
US20110246294A1 (en) * | 2010-03-30 | 2011-10-06 | Beet, Inc. | System and method for content management and distribution |
US9424433B2 (en) * | 2012-02-13 | 2016-08-23 | Synchronoss Technologies, Inc. | Data storage management |
-
2013
- 2013-04-02 EP EP13880910.8A patent/EP2958298B1/en active Active
- 2013-04-02 WO PCT/CN2013/073662 patent/WO2014161157A1/zh active Application Filing
- 2013-04-02 CN CN201380000286.7A patent/CN104247376B/zh active Active
-
2015
- 2015-09-24 US US14/864,509 patent/US20160057201A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102597997A (zh) * | 2009-10-13 | 2012-07-18 | 谷歌公司 | 基于云的媒体播放器及离线媒体访问 |
CN102833294A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 基于云存储的文件处理方法、系统及服务器集群系统 |
CN102546836A (zh) * | 2012-03-09 | 2012-07-04 | 腾讯科技(深圳)有限公司 | 一种上传文件的方法、终端、服务器及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113132426A (zh) * | 2019-12-30 | 2021-07-16 | 同方威视科技江苏有限公司 | 一种基于用户权限的云平台文件管理系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104247376A (zh) | 2014-12-24 |
US20160057201A1 (en) | 2016-02-25 |
EP2958298B1 (en) | 2020-09-23 |
EP2958298A1 (en) | 2015-12-23 |
WO2014161157A1 (zh) | 2014-10-09 |
EP2958298A4 (en) | 2016-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104247376B (zh) | 云存储的文件上传方法、客户端、应用服务器及云存储系统 | |
US20190236300A1 (en) | Service processing method and apparatus, data sharing system, and storage medium | |
CN103023962B (zh) | 共享媒体文件的技术 | |
CN113196702A (zh) | 使用区块链进行分布式数据存储和传送的系统和方法 | |
US10331613B2 (en) | Methods for enabling direct memory access (DMA) capable devices for remote DMA (RDMA) usage and devices therof | |
CN112868009A (zh) | 使用区块链进行电子文档签名 | |
CN106716335B (zh) | 映射信息的异步处理 | |
CN108683668B (zh) | 内容分发网络中的资源校验方法、装置、存储介质及设备 | |
TW202027456A (zh) | 聯盟鏈的可信度驗證方法、系統、裝置及設備 | |
EP3817333B1 (en) | Method and system for processing requests in a consortium blockchain | |
CN101437000A (zh) | 用于保持和复制聊天记录的系统和方法 | |
EP3816914A1 (en) | Credibility verification method of alliance chain, system, device and apparatus | |
CN113472700B (zh) | 报文处理方法、设备、存储介质及网卡 | |
TW201251384A (en) | System and method for two way push notifications | |
CN105791381A (zh) | 访问控制的方法及装置 | |
CN104618444A (zh) | 一种基于反向代理服务器处理请求的方法和装置 | |
CN105187523A (zh) | 一种目录访问方法及装置 | |
CN112152872B (zh) | 一种网络亚健康检测方法及装置 | |
US10218659B1 (en) | Persistent connections for email web applications | |
US10713279B2 (en) | Enhanced replication | |
CN113243093B (zh) | 用于使用区块链的消息传输和检索的系统和方法 | |
US20160283052A1 (en) | Method, system and recording medium for sorting objects in a messenger platform | |
CN116055403A (zh) | 报文数据的传输方法、装置和服务器 | |
CN106651272B (zh) | 一种配送信息管理的方法和设备以及移动终端 | |
CN107704557B (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 |