发明内容
本发明所要解决的技术问题是:针对上述存在的问题,提供一种基于云存储的文件压缩方法,能够避免客户端在下载文件时出现资源浪费的现象。
为了解决上述技术问题,本发明采用的技术方案是提供一种基于云存储的文件压缩方法,包括:客户端请求云端压缩目标文件,其中,所述目标文件由第一数据块和第二数据块组成,所述第一数据块属于第一备份文件,所述第二数据块属于第二备份文件,所述第一备份文件和第二备份文件存于云端;所述云端查询预先生成的云端用户字典和云字典,如果所述云端用户字典中存在第一备份文件和第二备份文件的特征码,则所述云端确认客户端存在与第一备份文件相同的第一用户文件和与第二备份文件相同的第二用户文件,并将所述第一备份文件和第二备份文件的特征码以及所述云字典中第一数据块和第二数据块的区域信息记录到云压缩文件,其中,所述第一备份文件和第二备份文件的特征码由客户端同步到云端,所述云端用户字典和云字典通过特征码相关联;所述客户端从云端下载云压缩文件后,根据第一备份文件和第二备份文件的特征码在预先生成的本地用户字典中查找第一用户文件和第二用户文件,以及根据第一数据块的区域信息从第一用户文件获取第一数据块和根据第二数据块的区域信息从第二用户文件获取第二数据块,将所述第一数据块和第二数据块组成所述目标文件,其中,所述本地用户字典包括第一用户文件和第二用户文件的特征码。
优选地,所述文件压缩方法还包括:如果所述云端用户字典中仅存在第一备份文件的特征码,则所述云端确认客户端仅存在与第一备份文件相同的第一用户文件,并将所述第一备份文件的特征码、所述云字典中第一数据块的区域信息、第二数据块的内容数据压缩到云压缩文件,其中,所述第一备份文件的特征码由客户端同步到云端,所述云端用户字典和云字典通过特征码相关联;所述客户端从云端下载云压缩文件后,根据第一备份文件的特征码在预先生成的本地用户字典中查找第一用户文件,根据第一数据块的区域信息从第一用户文件获取第一数据块以及从云压缩文件解压第二数据块的内容数据得到第二数据块,将所述第一数据块和第二数据块组成所述目标文件,其中,所述本地用户字典包括第一用户文件的特征码。
优选地,所述客户端从云端下载云压缩文件时,如果连接所述云端的另一客户端存在所述第二数据块,所述客户端通过P2P加速方式从所述另一客户端下载所述第二数据块。
优选地,所述客户端请求云端压缩目标文件的步骤之前,所述文件压缩方法还包括:所述客户端对本地的全部用户文件进行杀毒,并将杀毒过程中得到的全部用户文件的特征码上传至云端,并将每一用户文件的特征码记录到所述本地用户字典;所述云端根据每一用户文件的特征码查找与所述用户文件相同的备份文件,并将备份文件的特征码记录到所述云端用户字典,以使得所述本地用户字典和所述云端用户字典中记录的特征码保持同步。
优选地,所述文件压缩方法还包括:所述云端将云端的全部备份文件的数据块信息记录到所述云字典,并将所述云端用户字典中备份文件的特征码与云字典中相应备份文件的数据块信息相关联,其中,所述数据块信息至少包括数据块的区域信息。
优选地,所述客户端在将全部用户文件的特征码上传至云端时,还同时上传每一用户文件的分类信息,所述文件压缩方法还包括:所述云端按照所述分类信息对所述云端用户字典中的特征码进行分类,以及按照所述分类信息对云字典中的数据块信息进行分类。
优选地,所述云端根据每一用户文件的特征码查找与所述用户文件相同的备份文件之后,在将备份文件的特征码记录到所述云端用户字典之前,所述文件压缩方法还包括:所述云端查询所述备份文件的安全扫描结果,如果所述安全扫描结果为安全,进行将备份文件的特征码记录到所述云端用户字典的步骤并将所述安全扫描结果发送至客户端,以使得所述客户端将所述安全扫描结果记录到所述本地用户字典。
优选地,如果所述安全扫描结果不为安全,将所述安全扫描结果发送至所述客户端,以使得所述客户端将相应的用户文件删除或者隔离。
优选地,所述客户端对本地的全部用户文件进行杀毒时,生成用户文件索引,用于搜索用户文件。
优选地,所述文件压缩方法还包括:所述客户端将用户输入的目标文件的评价信息上传至云端;所述云端将所述评价信息与所述目标文件的特征码相关联。
综上所述,由于采用了上述技术方案,本发明的有益效果是:客户端在下载云端的目标文件时,云端提供的云压缩文件的内容仅仅包括特征码和数据块的区域信息,云压缩文件的数据量可以足够小,几乎可以忽略不计,但是客户端可以根据云压缩文件从客户端的用户文件中获取数据块,将获取的数据块组成目标文件,客户端依靠已有的用户文件得到目标文件,既不会重复下载,下载的云压缩文件也不重复占用存储空间,从而解决了现有技术中存在的问题,能够避免客户端在下载文件时出现资源浪费的现象,可以优化网络传输,给用户带来良好体验。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
如图1所示,是本发明基于云存储的文件压缩方法一实施例的流程示意图。本实施例的基于云存储的文件压缩方法包括以下步骤:
S11:客户端请求云端压缩目标文件,其中,目标文件由第一数据块和第二数据块组成,第一数据块属于第一备份文件,第二数据块属于第二备份文件,第一备份文件和第二备份文件存于云端。
其中,目标文件由云端推送到互联网中,客户端可以向云端发送压缩请求来请求压缩目标文件,压缩请求可以由用户操作触发。比如,云端提供压缩选项,用户点击压缩选项客户端即发送压缩请求。当然,也可以是其它的操作触发方式,可根据实际应用设置。
第一备份文件和第二备份文件各由多个数据块组成,但第一备份文件中的一个数据块刚好是第一数据块,第二备份文件中的一个数据块刚好是第二数据块。第一备份文件和第二备份文件均是云端存储的文件。
S12:云端查询预先生成的云端用户字典和云字典,如果云端用户字典中存在第一备份文件和第二备份文件的特征码,则云端确认客户端存在与第一备份文件相同的第一用户文件和与第二备份文件相同的第二用户文件,并将第一备份文件和第二备份文件的特征码以及云字典中第一数据块和第二数据块的区域信息记录到云压缩文件,其中,第一备份文件和第二备份文件的特征码由客户端同步到云端,云端用户字典和云字典通过特征码相关联。
其中,第一备份文件和第一用户文件相同,那么第一备份文件和第一用户文件的特征码相同,同样的,第二备份文件和第二用户文件的特征码相同。云端用户字典和云字典都是预先生成的。云字典中具有第一数据块和第二数据块的区域信息。客户端将第一用户文件和第二用户文件的特征码同步到云端,而云端又存在第一备份文件和第二备份文件,那么,云端用户字典中就具有第一备份文件和第二备份文件的特征码。云端用户字典和云字典通过特征码相关联后,通过第一备份文件和第二备份文件的特征码就可以索引至第一备份文件和第二备份文件,从而通过第一备份文件和第二备份文件的特征码就可以关联至第一数据块和第二数据块的区域信息。在本实施例中,第一备份文件和第二备份文件的特征码可以是MD5(Message Digest Algorithm,消息摘要算法第五版)值。
S13:客户端从云端下载云压缩文件后,根据第一备份文件和第二备份文件的特征码在预先生成的本地用户字典中查找第一用户文件和第二用户文件,以及根据第一数据块的区域信息从第一用户文件获取第一数据块和根据第二数据块的区域信息从第二用户文件获取第二数据块,将第一数据块和第二数据块组成目标文件,其中,本地用户字典包括第一用户文件和第二用户文件的特征码。
其中,由于云压缩文件中仅仅包括第一备份文件和第二备份文件的特征码和第一数据块和第二数据块的区域信息,这些内容的数据量很小,通常都在几十KB大小,客户端下载云压缩文件时可以实现即时下载。本地用户字典是预先生成的,本地用户字典具有第一用户文件和第二用户文件的特征码,而第一用户文件和第二用户文件又位于客户端,那么通过第一备份文件和第二备份文件的特征码就可以通过本地用户字典查找到第一用户文件和第二用户文件,进而根据第一数据块和第二数据块的区域信息从第一用户文件和第二用户文件中取出第一数据块和第二数据块。
在一些实际应用中,云端还在云压缩文件中还记录第一数据块和第二数据块的获取方式。云端根据第一数据块和第二数据块的区域信息取出第一数据块和第二数据块时需要根据获取方式来获取。获取方式可以是直接复制,也可以是复制后进行特定变换,或者是其它的处理方式。
本发明实施例的基于云存储的文件压缩方法中,由于不直接对组成目标文件的数据块压缩,而是将数据块的区域信息以及该数据块所属备份文件的特征码记录到云压缩文件,云压缩文件的数据量可以足够小,几乎可以忽略不计,客户端可以根据特征码查找与备份文件相同的本地的用户文件,进而根据数据块的区域信息获取数据块,将获取的数据块组成目标文件,客户端依靠已有的用户文件得到目标文件,不会重复下载,下载的云压缩文件也不重复占用存储空间,也就不会造成资源浪费,优化了网络传输,给用户带来了良好体验。
在本实施例中,文件压缩方法还包括:
S12a:如果云端用户字典中仅存在第一备份文件的特征码,则云端确认客户端仅存在与第一备份文件相同的第一用户文件,并将第一备份文件的特征码、云字典中第一数据块的区域信息、第二数据块的内容数据压缩到云压缩文件,其中,第一备份文件的特征码由客户端同步到云端,云端用户字典和云字典通过特征码相关联。
其中,云端用户字典中仅存在第一备份文件的特征码,则客户端仅同步了第一用户文件的特征码到云端,说明客户端不存在与第二备份文件相同的第二用户文件。由于客户端没有第二用户文件,云端将第二数据库的内容数据记录到云压缩文件。
S13b:客户端从云端下载云压缩文件后,根据第一备份文件的特征码在预先生成的本地用户字典中查找第一用户文件,根据第一数据块的区域信息从第一用户文件获取第一数据块以及从云压缩文件解压第二数据块的内容数据得到第二数据块,将第一数据块和第二数据块组成目标文件,其中,本地用户字典包括第一用户文件的特征码。
其中,云压缩文件由于包括第二数据块的内容数据,云压缩文件的数据量会相应增大,但客户端没有第二数据块,所以下载第二数据块不会造成重复下载,仍然能够避免客户端在下载文件时出现资源浪费的现象。
可选地,客户端从云端下载云压缩文件时,如果连接云端的另一客户端存在第二数据块,客户端通过P2P加速方式从另一客户端下载第二数据块。传统的P2P加速方式是针对一个完整的文件,而且一旦该文件移动后,P2P加速方式也就失去作用。本实施例中,客户端开启P2P加速方式后,就会加入P2P网络。只要P2P网络中的其它客户端的用户文件中包括第二数据块,客户端就可以使用P2P加速方式下载第二数据块,下载速度更快,可以为用户节省更多时间。
可选地,本实施例的文件压缩方法还包括:客户端将用户输入的目标文件的评价信息上传至云端;云端将评价信息与目标文件的特征码相关联。其中,
传统的提供文件下载的网站中,用户不能快速地提交任意文件的评价信息,而是这类网站让用户在文件的下载页面来评价。这就存在一个弊端,用户下载完文件后,可能不会马上使用,或者即使使用,在较短的时间内对下载的文件也不会马上产生完善的体验,再或者用户使用一段时间后,需要进行评价时,可能忘记下载文件的网站。最后的结果就是在文件的下载页面上要么没有评价信息,要么评价信息不真实不准确。而本实施例中,用户可任何时候都可以对文件进行评价,而不用去寻找提供文件下载的网站,评价信息可以是用户充分使用文件后给出的,更真实更准确。用户提交目标文件的评价信息后,客户端将评价信息发送给云端,云端根据特征码查找目标文件。再将评价信息和目标文件关联起来。因此,用户可以在任意时间对目标文件进行评价。
如图2所示,是本发明基于云存储的文件压缩方法另一实施例的流程示意图。本实施例的基于云存储的文件压缩方法包括以下步骤:
S21:客户端对本地的全部用户文件进行杀毒,并将杀毒过程中得到的全部用户文件的特征码上传至云端,并将每一用户文件的特征码记录到本地用户字典。
其中,客户端杀毒时采用杀毒软件,杀毒软件查杀每个用户文件时,计算得到用户文件的特征码。客户端可以查杀所有用户文件后上传特征码到云端,也可以没查杀一个用户文件就将该用户文件的特征码上传云端。如果客户端处于离线状态,用户可以在客户端查杀所有用户文件后,用U盘等存储介质将特征码拷贝到其它连接到云端的客户端上,然后上传云端。
在本实施例中,客户端对本地的全部用户文件进行杀毒时,生成用户文件索引,用于搜索用户文件。用户文件索引可以是用户文件的文件名。
S22:云端根据每一用户文件的特征码查找与用户文件相同的备份文件,并将备份文件的特征码记录到云端用户字典,以使得本地用户字典和云端用户字典中记录的特征码保持同步。
其中,如果用户文件和备份文件相同,用户文件和备份文件的特征码相同,云端根据客户端上传的特征码就可以在云存储系统中查询与用户文件相同的备份文件。云端用户字典中的特征码既是备份文件的特征码又是用户文件的特征码,所以本地用户字典和云端用户字典可以保持同步。可选地,云端在云存储系统中查询到备份文件时,还可以将云端存在备份文件的备份信息发送至客户端,客户端可以将备份信息也记录到本地用户字典。当客户端需要上传一个用户文件到云端时,首先查询该用户文件是否存在备份信息,如果存在,客户端向云端发送上传请求,云端就可以将备份文件与该客户端相关联,可以达到秒传的效果。
在本实施例中,云端根据每一用户文件的特征码查找与用户文件相同的备份文件之后,在将备份文件的特征码记录到云端用户字典之前,文件压缩方法还包括:云端查询备份文件的安全扫描结果,如果安全扫描结果为安全,进行将备份文件的特征码记录到云端用户字典的步骤并将安全扫描结果发送至客户端,以使得客户端将安全扫描结果记录到本地用户字典。
可选地,如果安全扫描结果不为安全,将安全扫描结果发送至客户端,以使得客户端将相应的用户文件删除或者隔离。其中,由于只有安全扫描结果为安全的用户文件的特征码才会被客户端记录到本地用户字典,考虑现有技术的杀毒软件,现有技术的杀毒软件具备一个病毒库,记录了已知病毒的特征码,客户端将用户文件的特征码与病毒库比较,确定是否为已知病毒的特征码。由于病毒在不断繁衍,所以病毒库需要频繁更新,因此,病毒库的大小可能达到几百MB。但是,大多数已知的病毒经过一段时间后,将逐渐消失不再出现,这些病毒的特征码不仅没有作用,还会占用大量存储空间。而本地用户字典记录的信息量只是安全的用户文件的特征码,能够减少存储空间的占用。
S23:云端将云端的全部备份文件的数据块信息记录到云字典,并将云端用户字典中备份文件的特征码与云字典中相应备份文件的数据块信息相关联,其中,数据块信息至少包括数据块的区域信息。
在本实施例中,客户端在将全部用户文件的特征码上传至云端时,还同时上传每一用户文件的分类信息。文件压缩方法还包括:云端按照分类信息对云端用户字典中的特征码进行分类,以及按照分类信息对云字典中的数据块信息进行分类。其中,云字典中的数据块信息分类后,可以方便地和云端用户字典进行比对,快速地分析客户端是否可以解压云压缩文件。举例来说,如果一个分类中的数据块信息满足相关条件后,记录一个标识,比如该分类的完整度为100%或是99%,云端即确认客户端可以解压云压缩文件。
S24:客户端请求云端压缩目标文件,其中,目标文件由第一数据块和第二数据块组成,第一数据块属于第一备份文件,第二数据块属于第二备份文件,第一备份文件和第二备份文件存于云端。
S25:云端查询云端用户字典和云字典,如果云端用户字典中存在第一备份文件和第二备份文件的特征码,则云端确认客户端存在与第一备份文件相同的第一用户文件和与第二备份文件相同的第二用户文件,并将第一备份文件和第二备份文件的特征码以及云字典中第一数据块和第二数据块的区域信息记录到云压缩文件,其中,第一备份文件和第二备份文件的特征码由客户端同步到云端,云端用户字典和云字典通过特征码相关联。
S26:客户端从云端下载云压缩文件后,根据第一备份文件和第二备份文件的特征码在本地用户字典中查找第一用户文件和第二用户文件,以及根据第一数据块的区域信息从第一用户文件获取第一数据块和根据第二数据块的区域信息从第二用户文件获取第二数据块,将第一数据块和第二数据块组成目标文件,其中,本地用户字典包括第一用户文件和第二用户文件的特征码。
其中,步骤S23、S24、S25具有与前述实施例的文件压缩方法的步骤S11、S12、S13相同的技术特征,此处不再赘述。
通过上述方式,本发明基于云存储的文件压缩方法中,客户端在下载云端的目标文件时,云端提供的云压缩文件的内容仅仅包括特征码和数据块的区域信息,云压缩文件的数据量可以足够小,几乎可以忽略不计,但是客户端可以根据云压缩文件从客户端的用户文件中获取数据块,将获取的数据块组成目标文件,客户端依靠已有的用户文件得到目标文件,既不会重复下载,下载的云压缩文件也不重复占用存储空间,从而解决了现有技术中存在的问题,能够避免客户端在下载文件时出现资源浪费的现象,可以优化网络传输,给用户带来良好体验。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。