发明内容
本发明的一个主要目的是提供一种文件上传控制方法,以减少用户文件上传等待的时间,且避免网络资源和系统资源的浪费。
此外,本发明还提供一种文件上传控制系统,以减少用户文件上传等待的时间,且避免网络资源和系统资源的浪费。
一种文件上传控制方法,该方法包括步骤:监控并响应待上传文件的上传指令,锁定待上传文件;分析是否有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件;在有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件时,将与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件提供给发出上传指令的用户以代替待上传的文件;在没有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件时,接收并存储待上传的文件。
优选地,于监控并响应待上传文件的上传指令的步骤之前,该方法还包括:预存各个已上传文件对应的用于进行文件相似度比对的多个哈希值。
优选地,所述分析是否有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件的步骤包括:将锁定的待上传文件分割成多个部分,计算分割的各个部分对应的哈希值;将计算的哈希值与预存的各个已上传文件对应的多个哈希值进行比对;根据哈希值比对结果分析是否有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件。
优选地,所述将锁定的待上传文件分割成多个部分的步骤为:将待上传文件分割成预设数量的多个部分;
优选地,所述将锁定的待上传文件分割成多个部分的步骤包括:将待上传文件与预设阀值进行比较;对大小大于预设阀值的待上传文件,分割成第一预设数量的多个部分;对大小小于等于预设阀值的待上传文件,分割成第二预设数量的多个部分。
优选地,所述相似度指计算的哈希值中与预存的每一个已上传文件对应的哈希值相同的哈希值的数量占计算的哈希值总数的百分比。
优选地,所述将与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件提供给发出上传指令的用户以代替待上传文件的步骤包括:侦测并分析发出上传指令的用户是否选择接受提供的已上传文件;在发出上传指令的用户选择接受提供的已上传文件时,为发出上传指令的用户存储提供的已上传文件以代替待上传的文件;在发出上传指令的用户拒绝接受提供的已上传文件时,接收并存储待上传的文件。
一种文件上传控制系统,该系统包括:哈希值计算模块,用于监控并响应待上传文件的上传指令,锁定待上传文件;相似度匹配模块,用于分析是否有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件;及上传控制模块,用于在有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件时,将与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件提供给发出上传指令的用户以代替待上传的文件,在没有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件时,接收并存储待上传的文件。
优选地,所述哈希值计算模块还用于:预存各个已上传文件对应的用于进行文件相似度比对的多个哈希值。
优选地,所述哈希值计算模块,还用于将锁定的待上传文件分割成多个部分,计算分割的各个部分对应的哈希值;所述相似度匹配模块,还用于将计算的哈希值与预存的各个已上传文件对应的多个哈希值进行比对,根据哈希值比对结果分析是否有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件。
优选地,所述哈希值计算模块用于:将待上传文件分割成预设数量的多个部分;
优选地,所述哈希值计算模块用于:将待上传文件与预设阀值进行比较;对大小大于预设阀值的待上传文件,分割成第一预设数量的多个部分;对大小小于等于预设阀值的待上传文件,分割成第二预设数量的多个部分。
优选地,所述相似度指计算的哈希值中与预存的每一个已上传文件对应的哈希值相同的哈希值的数量占计算的哈希值总数的百分比。
优选地,所述上传控制模块用于:侦测并分析发出上传指令的用户是否选择接受提供的已上传文件;在发出上传指令的用户选择接受提供的已上传文件时,为发出上传指令的用户存储提供的已上传文件以代替待上传的文件;在发出上传指令的用户拒绝接受提供的已上传文件时,接收并存储待上传的文件。
相较现有技术,本发明通过在用户上传文件时分析待上传文件与已上传文件的相似度,在有已上传文件与待上传文件的相似度大于预设相似度阀值时,将与待上传文件的相似度大于预设相似度阀值的已上传文件提供给用户以代替待上传文件,有效减少了用户文件上传等待的时间,且避免了不同程度网络资源和系统资源的浪费。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,为本发明实现文件上传控制的服务器较佳实施例的运行环境图。该服务器1通过网络2与至少一个终端3(图中以3个为例)通信连接。该服务器1用于接收并存储终端3的用户上传的文件,在网络意义上来说,所述用户指代表终端3的使用者的标识信息(例如,通常意义上的会员制,所述用户指代表终端3的使用者的账号及/或密码)。
在本实施例中,该服务器1还与至少一个存储端4通信链接,存储端4用于存储终端3上传的文件,服务器1与存储端4为文件接收端,服务器1接收终端3上传的文件并将接收的文件存储入存储端4;在本发明的其他实施例中,所述终端3上传的文件存储于服务器1中,服务器1为文件接收端,服务器1接收并存储终端3上传的文件。
所述网络2可以是互联网、移动通信网或其他任意适用的通信网络。所述终端3可以是手机、计算机、平板电脑、个人数字助理(PersonalDigital Assistant,PDA)或其他任意适用的数据处理设备。
如图2所示,为图1中服务器较佳实施例的硬件架构图。该服务器1包括文件上传控制系统11、处理单元10及存储单元13。
该存储单元13,用于存储该文件上传控制系统11及该文件上传控制系统11的运行数据。
该处理单元10,用于调用并执行该文件上传控制系统11,以在用户上传文件时,找出已有的替代文件予以替代,或者,在没有替代文件供替代时接收并存储用户上传的文件。
如图3所示,为图2中文件上传控制系统较佳实施例的功能模块图。该文件上传控制系统11包括哈希值计算模块110、相似度匹配模块111及上传控制模块112。
该文件上传控制系统11用于在用户上传文件时分析待上传文件与已上传文件的相似度,在有已上传文件与待上传文件的相似度大于预设相似度阀值时,将与待上传文件的相似度大于预设相似度阀值的已上传文件提供给用户以代替待上传文件。
对本领域的技术人员来说,计算两个文件的相似度的已有的方式有多种。在本较佳实施例中,提供的一种新的计算文件相似度的方式为:将文件分割成多个部分;分别计算分割的各部分的哈希值;将两个文件对应的多个哈希值进行异同比对,进而根据比对结果判定两个文件的相似度。
该哈希值计算模块110,用于预存各个已上传文件对应的用于进行文件相似度比对的多个哈希值。在本实施例中,因为是将文件分割以分别计算分割的各部分的哈希值,再以哈希值进行相似度比对,因此,该哈希值计算模块110需要预先存储各个已上传文件对应的用于进行文件相似度比对的多个哈希值。
示例一:
该哈希值计算模块110按照如下步骤预存各个已上传文件对应的用于进行文件相似度比对的多个哈希值:在用户上传文件时,将用户上传的文件分割成多个部分;计算分割的各个部分对应的哈希值;在存储用户上传的文件时,一并存储用户上传的文件对应的多个哈希值。
示例二:
该哈希值计算模块110按照如下步骤预存各个已上传文件对应的用于进行文件相似度比对的多个哈希值:在未对已上传文件计算对应的用于进行文件相似度比对的多个哈希值时,将各个已上传的文件分割成多个部分;计算分割的各个部分对应的哈希值;存储各个已上传文件对应的多个哈希值。
需要强调的是,该哈希值计算模块110将文件分割成多个部分的方式不是唯一的,以下以两个方式来代表性阐述:
方式一:不考虑文件的大小,将各个文件分割成预设数量的多个部分。
方式二:将各个待上传文件或者已上传文件的大小与预设阀值进行比较;对大小大于预设阀值的文件,分割成第一预设数量的多个部分;对大小小于等于预设阀值的文件,分割成第二预设数量的多个部分。
上述方式一及方式二所述的分割可以是平均等分的分割,也可以是满足特定规则的非平均等分的分割。所述非平均等分的分割,例如可以是,相邻的两个等分,后一等分是前一等分与一特定值之和或之差。
该哈希值计算模块110,还用于监控并响应待上传文件的上传指令,锁定待上传文件。
进一步地,在本实施例中,因为是将文件分割以分别计算分割的各部分的哈希值,再以哈希值进行相似度比对,因此,该哈希值计算模块110,还用于将锁定的待上传文件分割成多个部分,计算分割的各个部分对应的哈希值。所述哈希值例如可以为MD5值及/或SHA1值。
该相似度匹配模块111,用于分析是否有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件。
在本实施例中,因为是将文件分割以分别计算分割的各部分的哈希值,再以哈希值进行相似度比对,因此,该相似度匹配模块111,用于将计算的哈希值与预存的各个已上传文件对应的多个哈希值进行比对,根据哈希值比对结果分析是否有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件。在本实施例中,该相似度匹配模块111通过分析计算的哈希值中与预存的每一个已上传文件对应的哈希值相同的哈希值的数量占计算的哈希值总数的百分比,来判断锁定的待上传文件与每一个已上传文件的相似度。例如,计算的哈希值(总共20个)为:A、B、C、D、E、F、G、H,、、、、、、;若有一个已上传文件对应的哈希值(总共20个)为:A、b、C、D、E、F、G、H,、、、、、、,则计算的哈希值中与该已上传文件对应的哈希值相同的哈希值的数量为19(除了B不等于b以外),因而,锁定的待上传文件与该已上传文件的相似度为(19/20)*100%。
该上传控制模块112,用于在有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件时,将与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件提供给发出上传指令的用户以代替待上传的文件,在没有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件时,接收并存储待上传的文件。
为了进一步达成一个更佳的技术效果,优选地,该上传控制模块112还用于侦测并分析发出上传指令的用户是否选择接受提供的已上传文件,在发出上传指令的用户选择接受提供的已上传文件时,为发出上传指令的用户存储提供的已上传文件以代替待上传的文件,在发出上传指令的用户拒绝接受提供的已上传文件时,接收并存储待上传的文件。在本优选方案中,该上传控制模块112提供选择项供用户选择是否接受提供的已上传文件。
如图4所示,为本发明文件上传控制方法较佳实施例的具体实施流程图。
需要强调的是:图4所示流程图仅为一个较佳实施例,本领域的技术人员当知,任何围绕本发明思想构建的实施例都不应脱离于如下技术方案涵盖的范围:
监控并响应待上传文件的上传指令,锁定待上传文件;分析是否有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件;在有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件时,将与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件提供给发出上传指令的用户以代替待上传的文件;在没有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件时,接收并存储待上传的文件。
以下是结合本实施例逐步实现在用户上传文件时,找出已有的替代文件予以替代,或者,在没有替代文件供替代时接收并存储用户上传的文件。
步骤S10,该哈希值计算模块110预存各个已上传文件对应的用于进行文件相似度比对的多个哈希值。
实施例一:
该哈希值计算模块110按照如下步骤预存各个已上传文件对应的用于进行文件相似度比对的多个哈希值:在用户上传文件时,将用户上传的文件分割成多个部分;计算分割的各个部分对应的哈希值;在存储用户上传的文件时,一并存储用户上传的文件对应的多个哈希值。
实施例二:
该哈希值计算模块110按照如下步骤预存各个已上传文件对应的用于进行文件相似度比对的多个哈希值:在未对已上传文件计算对应的用于进行文件相似度比对的多个哈希值时,将各个已上传的文件分割成多个部分;计算分割的各个部分对应的哈希值;存储各个已上传文件对应的多个哈希值。
需要强调的是,该哈希值计算模块110将文件分割成多个部分的方式不是唯一的,以下以两个方式来代表性阐述:
方式一:不考虑文件的大小,将各个文件分割成预设数量的多个部分。
方式二:将各个待上传文件或者已上传文件的大小与预设阀值进行比较;对大小大于预设阀值的文件,分割成第一预设数量的多个部分;对大小小于等于预设阀值的文件,分割成第二预设数量的多个部分。
上述方式一及方式二所述的分割可以是平均等分的分割,也可以是满足特定规则的非平均等分的分割。所述非平均等分的分割,例如可以是,相邻的两个等分,后一等分是前一等分与一特定值之和或之差。
步骤S11,该哈希值计算模块110监控并响应待上传文件的上传指令,锁定待上传文件。
步骤S12,该哈希值计算模块110将锁定的待上传文件分割成多个部分。
步骤S13,该哈希值计算模块110计算分割的各个部分对应的哈希值。所述哈希值例如可以为MD5值及/或SHA1值。
步骤S15,该相似度匹配模块111将计算的哈希值与预存的各个已上传文件对应的多个哈希值进行比对。
步骤S16,该相似度匹配模块111根据哈希值比对结果分析是否有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件。在本实施例中,该相似度匹配模块111通过分析计算的哈希值中与预存的每一个已上传文件对应的哈希值相同的哈希值的数量占计算的哈希值总数的百分比,来判断锁定的待上传文件与每一个已上传文件的相似度。例如,计算的哈希值(总共20个)为:A、B、C、D、E、F、G、H,、、、、、、;若有一个已上传文件对应的哈希值(总共20个)为:A、b、C、D、E、F、G、H,、、、、、、,则计算的哈希值中与该已上传文件对应的哈希值相同的哈希值的数量为19(除了B不等于b以外),因而,锁定的待上传文件与该已上传文件的相似度为(19/20)*100%。
在有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件时,转入执行下述步骤S17,或者,在没有与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件时,转入执行下述步骤S20。
步骤S17,该上传控制模块112将与锁定的待上传文件的相似度大于预设相似度阀值的已上传文件提供给发出上传指令的用户以代替待上传的文件。
步骤S20,该上传控制模块112接收并存储待上传的文件。
为了进一步达成一个更佳的技术效果,优选地,步骤S17包括如下步骤:
步骤S18,该上传控制模块112还用于侦测并分析发出上传指令的用户是否选择接受提供的已上传文件。
在发出上传指令的用户选择接受提供的已上传文件时,转入执行下述步骤S19,或者,在发出上传指令的用户拒绝接受提供的已上传文件时,转入执行上述步骤S20。
步骤S19,该上传控制模块112为发出上传指令的用户存储提供的已上传文件以代替待上传的文件。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。