首页> 中国专利> 一种基于云压缩文件的压缩和解压缩方法、装置及系统

一种基于云压缩文件的压缩和解压缩方法、装置及系统

摘要

本发明提供了一种基于云压缩文件的压缩和解压缩方法、装置及系统,以解决现有技术中文件压缩率不够低,限制文件在互联网上交换和分享的问题。所述压缩方法包括:触发云压缩请求;客户端依据所述云压缩请求对要压缩的本地文件数据进行自动压缩,并将压缩后的数据上传至服务器作为云压缩数据存储;服务器依据所述云压缩请求生成对应的云压缩文件,并将该云压缩文件发送给客户端,所述云压缩文件包含云压缩数据的文件标识信息;服务器对云压缩数据建立与云压缩文件的映射关系。本发明可将任意大小的文件转化为云压缩文件,而且压缩率降低到1%以下,几乎不占空间。

著录项

  • 公开/公告号CN102546740A

    专利类型发明专利

  • 公开/公告日2012-07-04

    原文格式PDF

  • 申请/专利权人 奇智软件(北京)有限公司;

    申请/专利号CN201110173792.9

  • 发明设计人 马占凯;

    申请日2011-06-24

  • 分类号H04L29/08(20060101);H04L29/06(20060101);

  • 代理机构11319 北京润泽恒知识产权代理有限公司;

  • 代理人苏培华

  • 地址 100016 北京市朝阳区酒仙桥路14号兆维大厦4层东侧单元

  • 入库时间 2023-12-18 05:47:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-09

    专利权的转移 IPC(主分类):H04L29/08 专利号:ZL2011101737929 登记生效日:20220826 变更事项:专利权人 变更前权利人:北京奇虎科技有限公司 变更后权利人:三六零科技集团有限公司 变更事项:地址 变更前权利人:100088 北京市西城区新街口外大街28号D座112室(德胜园区) 变更后权利人:300000 天津市滨海新区高新区滨海科技园高新六路39号9-3-401号 变更事项:专利权人 变更前权利人:奇智软件(北京)有限公司 变更后权利人:

    专利申请权、专利权的转移

  • 2020-07-21

    专利权的恢复 IPC(主分类):H04L29/08 原决定名称:未缴年费专利权终止 原决定公告日:20200623 申请日:20110624

    专利申请或者专利权的恢复

  • 2020-06-23

    未缴年费专利权终止 IPC(主分类):H04L29/08 授权公告日:20150506 终止日期:20190624 申请日:20110624

    专利权的终止

  • 2015-11-11

    专利权的转移 IPC(主分类):H04L29/08 登记生效日:20151023 变更前: 变更后: 申请日:20110624

    专利申请权、专利权的转移

  • 2015-05-06

    授权

    授权

  • 2012-09-05

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20110624

    实质审查的生效

  • 2012-07-04

    公开

    公开

查看全部

说明书

技术领域

本发明涉及压缩和解压缩技术,特别是涉及一种基于云压缩文件的压缩方法、一种基于云压缩文件的解压缩方法、一种基于云压缩文件的压缩装置、一种基于云压缩文件的解压缩装置及一种基于云压缩文件的系统。 

背景技术

随着互联网技术的发展,网络宽带的速度越来越快,人们利用网络交换、分享文件的行为越来越多,如使用电子邮箱、即时通讯工具等方式。 

但是,在很多情况下人们分享文件仍然有很多不方便的地方,制约了文件在互联网上的交换和分享。例如: 

把一个25M大小的文件发到一个论坛里供大家下载,但是论坛只支持5M大小的附件; 

把一个35M大小的文件发邮件给别人,但是邮件的附件最大只支持15M; 

把一个20M大小的文件发给msn上的好友,但是双方网络不通畅,速度只有几k,传输极慢; 

等等。 

压缩软件的出现在一定程度上缓解了上述问题。用传统的压缩软件可以把一个文件(由于一个文件和多个文件与文件夹的集合类似,本文均以一个文件代表所有形式的文件与文件夹的不同集合)压缩到原来体积的百分之几十到100%,压缩后的文件体积缩小很多,节省了带宽,方便了分享。 

但是,普通的文件压缩率常在50%到100%之间。即使以50%的超低压缩率,上面所列的几种情况在使用压缩软件压缩后,仍然不能被解决,因为以超低压缩率压缩后的文件体积仍大于论坛或邮箱允许的附件大小。 

因此,现有的文件压缩由于压缩率不够低,仍然限制了文件在互联网上的交换和分享。 

发明内容

本发明所要解决的技术问题是提供一种基于云压缩文件的压缩和解压缩方法、装置及系统,以解决现有技术中文件压缩率不够低,限制文件在互联网上交换和分享的问题。 

为了解决上述问题,本发明公开了一种基于云压缩文件的压缩方法,包括: 

触发云压缩请求; 

客户端依据所述云压缩请求对要压缩的本地文件数据进行自动压缩,并将压缩后的数据上传至服务器作为云压缩数据存储; 

服务器依据所述云压缩请求生成对应的云压缩文件,并将该云压缩文件发送给客户端,所述云压缩文件包含云压缩数据的文件标识信息; 

服务器对云压缩数据建立与云压缩文件的映射关系。 

其中,所述云压缩文件包含文件标识信息和/或文件目录结构,其中所述文件标识信息对应服务器中云压缩数据的基本文件信息,所述基本文件信息包含文件目录结构。 

其中,所述要压缩的本地文件数据为单个文件,或者为多个文件,或者为单个文件夹,或者为多个文件夹。 

优选的,如果所述云压缩请求为先压缩并上传数据,再生成云压缩文件,则所述服务器在客户端上传完毕之后,再依据所述请求生成对应的云压缩文件;如果所述云压缩请求为先生成云压缩文件,则所述服务器在接收到所述请求后依据所述请求生成对应的云压缩文件,并将该云压缩文件立即发送给客户端,同时接收客户端上传的云压缩数据。 

优选的,如果所述云压缩请求为先生成云压缩文件,则还包括:在客户端未上传完毕的时候,另一客户端通过点击云压缩文件从所述服务器下载已经上传的部分云压缩数据。 

优选的,所述触发云压缩请求之后,还包括:客户端将要压缩的本地文件的基本文件信息上传给服务器;服务器根据所述基本文件信息查询是否存储了相同的文件,并将查询结果返回给客户端,所述查询结果中包含服务器未存储的部分文件的基本文件信息;客户端依据所述查询结果,将服务器未存储的本地文件数据进行自动压缩,并将压缩后的云压缩数据上传至服务器存储;如果服务器已存储客户端要压缩的所有文件,则服务器直接将对应的云压缩文件发送给客户端。 

优选的,客户端将压缩后的云压缩数据分块上传至服务器存储;若客户 端上传部分数据后发生上传失败,则所述方法还包括:客户端重新开始上传数据,如果服务器上存在相同的数据块,则客户端不再上传所述相同的数据块;或者,客户端在上传失败的断点处做标记,然后从所述标记的断点处继续上传数据。 

优选的,所述触发云压缩请求之后,还包括:客户端在压缩前添加密码和/或注释信息;或者,服务器存储云压缩数据时添加密码和/或注释信息。 

优选的,所述触发云压缩请求之后,还包括:客户端智能判断压缩率并自动调整压缩级别进行压缩。 

本发明还提供了一种基于云压缩文件的解压缩方法,包括: 

通过打开云压缩文件触发云解压请求,所述云压缩文件包含云压缩数据的文件标识信息; 

客户端从所述云压缩文件中获取基本文件信息,所述基本文件信息包含文件目录结构; 

客户端根据所述云压缩文件,从服务器上下载对应的云压缩数据; 

客户端依据所述基本文件信息对下载到本地的云压缩数据进行解压,得到原始文件数据。 

优选的,所述客户端从所述云压缩文件中获取基本文件信息后,还包括:客户端根据所述云压缩文件,从服务器指定的其他客户端上下载对应的云压缩数据;客户端依据所述基本文件信息对下载到本地的云压缩数据进行解压,得到原始文件数据。 

其中,所述云压缩文件包含文件标识信息和/或文件目录结构,其中所述文件标识信息对应服务器中云压缩数据的基本文件信息,所述基本文件信息包含文件目录结构。 

优选的,所述客户端下载全部或部分云压缩数据。 

本发明还提供了一种基于云压缩文件的压缩装置,包括:客户端装置和服务器装置,其中, 

所述客户端装置包括: 

云压缩触发单元,用于触发云压缩请求; 

云压缩单元,用于依据所述云压缩请求对要压缩的本地文件数据进行自动压缩,并将压缩后的数据上传至服务器作为云压缩数据存储; 

云压缩文件接收单元,用于从服务器接收对应的云压缩文件,所述云压 缩文件包含云压缩数据的文件标识信息; 

所述服务器装置包括: 

云压缩数据存储单元,用于存储客户端上传的云压缩数据; 

云压缩文件生成单元,用于依据所述云压缩请求生成对应的云压缩文件,并将该云压缩文件发送给客户端; 

映射单元,用于对云压缩数据建立与云压缩文件的映射关系。 

其中,所述云压缩文件包含文件标识信息和/或文件目录结构,其中所述文件标识信息对应服务器中云压缩数据的基本文件信息,所述基本文件信息包含文件目录结构。 

其中,所述要压缩的本地文件数据为单个文件,或者为多个文件,或者为单个文件夹,或者为多个文件夹。 

优选的,如果所述云压缩请求为先压缩并上传数据,再生成云压缩文件,则所述服务器装置中的云压缩文件生成单元在客户端上传完毕之后,再依据所述请求生成对应的云压缩文件;如果所述云压缩请求为先生成云压缩文件,则所述服务器装置中的云压缩文件生成单元在接收到所述请求后依据所述请求生成对应的云压缩文件,并将该云压缩文件立即发送给客户端,同时所述服务器装置中的云压缩数据存储单元接收客户端上传的云压缩数据并存储。 

优选的,所述客户端装置还包括: 

基本文件信息上传单元,用于将要压缩的本地文件的基本文件信息上传给服务器; 

所述云压缩单元还用于依据服务器的查询结果,将服务器未存储的本地文件数据进行自动压缩,并将压缩后的云压缩数据上传至服务器存储; 

所述服务器装置还包括: 

查询单元,用于根据所述基本文件信息查询是否存储了相同的文件,并将查询结果返回给客户端,所述查询结果中包含服务器未存储的部分文件的基本文件信息;如果服务器已存储客户端要压缩的所有文件,则直接将对应的云压缩文件发送给客户端。 

优选的,所述客户端装置的云压缩单元将压缩后的云压缩数据分块上传至服务器存储;所述客户端装置还包括:断点续传单元,用于当所述云压缩单元上传部分数据后发生上传失败,并重新开始上传数据时,如果服务器上存在相同的数据块,则不再上传所述相同的数据块;或者,在上传失败的断 点处做标记,然后从所述标记的断点处继续上传数据。 

优选的,所述客户端装置还包括: 

加密单元,用于在云压缩单元进行压缩前添加密码; 

和/或,注释单元,用于在云压缩单元进行压缩前添加注释信息。 

优选的,所述服务器装置还包括: 

加密单元,用于存储云压缩数据时添加密码; 

和/或,注释单元,用于存储云压缩数据时添加注释信息。 

优选的,所述客户端装置还包括: 

压缩级别调整单元,用于智能判断压缩率并自动调整压缩级别; 

所述云压缩单元以压缩级别调整单元调整的压缩级别进行压缩。 

本发明还提供了一种基于云压缩文件的解压缩装置,包括:客户端装置和服务器装置,其中, 

所述客户端装置包括: 

云解压触发单元,用于通过打开云压缩文件触发云解压请求,所述云压缩文件包含云压缩数据的文件标识信息; 

基本文件信息获取单元,用于从所述云压缩文件中获取基本文件信息,所述基本文件信息包含文件目录结构; 

下载单元,用于根据所述云压缩文件,从服务器上下载对应的云压缩数据; 

解压缩单元,用于依据所述基本文件信息对下载到本地的云压缩数据进行解压,得到原始文件数据; 

所述服务器装置包括: 

云压缩数据查询单元,用于根据客户端上传的基本文件信息查找对应的云压缩数据,并返回给客户端。 

优选的,所述客户端装置的下载单元还用于根据所述云压缩文件,从服务器指定的其他客户端上下载对应的云压缩数据。 

本发明还提供了一种基于云压缩文件的系统,包括:上述的基于云压缩文件的压缩装置,和,上述的基于云压缩文件的解压缩装置。 

与现有技术相比,本发明包括以下优点: 

首先,本发明提出一种新式的压缩方法,可以将本地文件自动压缩并上传到网络服务器上存储,服务器对应云压缩数据生成云压缩文件再发送给客户端,客户端用户可以把云压缩文件发给其他的客户端用户。用户通过点击所述云压缩文件,就可以直接从网络上下载对应的云压缩数据并进行解压。所述的新型压缩方法可将任意大小的文件转化为云压缩文件,而且压缩率降低到1%以下,几乎不占空间。即任意大小的文件数据,无论是10M还是50M,还是200M,无论是文件还是文件夹,都可以压缩到1K以内的大小。相对于传统的50%-100%的压缩率,所述的新型压缩方法实现的1%以下的超低压缩率是革命性的。因此,如此小体积的云压缩文件可以非常方便地通过邮件、论坛或即时通讯工具发送给他人,不占用空间,节省传输带宽,易于分享。 

其次,本发明与网盘上传文件的方式相比,无需用户手动压缩文件,然后再手动将压缩文件上传至网络,而是将压缩和上传结合在一起一步到位,节省了操作和压缩上传时间,非常方便。 

再次,本发明也无需用户经过打开浏览器、输入网址、登录、上传等复杂的网盘操作步骤,而是在客户端安装云压缩软件,通过直接点击右键菜单或者打开客户端的云压缩软件等方式直接触发云压缩,因此本发明操作起来更加方便直接。 

最后,本发明还具有智能选取压缩级别、支持断点续传、可添加密码和注释信息等等优点,这些优点将在具体实施方式中详细说明。 

附图说明

图1是本发明实施例所述一种基于云压缩文件的压缩方法流程图; 

图2是本发明实施例所述一种基于云压缩文件的解压缩方法流程图; 

图3是本发明实施例所述一种基于云压缩文件的压缩装置结构图; 

图4是本发明实施例所述一种基于云压缩文件的解压缩装置结构图; 

图5.1至5.8是本发明实施例中用系统右键菜单生成云压缩文件的过程示意图; 

图6.1和6.2是本发明实施例中用系统右键菜单一键生成云压缩文件的过程示意图; 

图7.1和7.2是本发明实施例中用云压缩软件主窗口生成云压缩文件的过程示意图; 

图8.1至8.3是本发明实施例中用户打开一个云压缩文件的过程示意图; 

图9.1至9.4是本发明实施例中系统右键菜单解压一个云压缩文件的过程示意图; 

图10.1至10.3是本发明实施例中云压缩软件主窗口解压一个云压缩文件的过程示意图; 

图11是本发明实施例中要进行云压缩的文件示意图。 

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。 

传统的文件压缩率多年来没有太大进步,普通文件的压缩率达到50%或者40%已经非常难得,达到20%-30%的很少,极少数文件压缩才能达到10%或者百分之几的压缩率。 

本发明提出一种新式的压缩方法,可以将本地文件自动压缩并上传到网络服务器上存储,服务器对应云压缩数据生成云压缩文件再发送给客户端,客户端用户可以把云压缩文件发给其他的客户端用户。用户通过点击所述云压缩文件,就可以直接从网络上下载对应的云压缩数据并进行解压。 

以下均把这种采用将数据流上传到服务器并生成云压缩文件的新型压缩方式称为云压缩,将通过云压缩由服务器生成的压缩文件称为云压缩文件 

下面通过实施例对这种新型压缩方式进行详细说明。 

参照图1,是本发明实施例所述一种基于云压缩文件的压缩方法流程图。 

步骤11,触发云压缩请求; 

一般通过用户操作触发云压缩请求,用户在客户端选择要进行云压缩的本地文件数据,然后通过一定的操作触发对该文件数据进行云压缩。 

其中,所述“一定的操作”可以是点击右键菜单,选择“添加到云压缩文件”选项进行触发;也可以是打开客户端安装的云压缩软件主窗口,选择文件并点击“云压缩”选项进行触发;或者,也可以是其他的操作触发方式,可根据实际应用进行具体实现。 

用户在客户端触发云压缩请求后,客户端和服务器分别进行步骤121和步骤122的处理: 

步骤121,客户端依据所述云压缩请求对要压缩的本地文件数据进行自动压缩,并将压缩后的数据上传至服务器作为云压缩数据存储; 

即客户端将压缩和上传结合在一起自动完成; 

其中,所述要压缩的本地文件数据可以为单个文件,也可以为多个文件,还可以为单个文件夹或多个文件夹。即可以将单个文件或多个文件、单个文件夹或多个文件夹自动压缩为一个压缩后文件,并在服务器上进行存储。该压缩后文件中可能包含多个文件或文件夹的压缩包。上述的云压缩数据可以指所述的压缩后文件。但是,需要说明的是,所述压缩后文件是将本地文件数据进行压缩并上传到服务器存储的压缩包数据,并不是步骤122中服务器生成的云压缩文件,该云压缩文件是依据基本文件信息而生成,并不包含实际的文件数据。 

进一步的,要压缩的本地文件数据可以是压缩前的文件或文件夹,还可以是在本地已经进行过压缩的文件。 

步骤122,服务器依据所述云压缩请求生成对应的云压缩文件,并将该云压缩文件发送给客户端,所述云压缩文件包含云压缩数据的文件标识信息; 

服务器会对应每个云压缩数据生成唯一的云压缩文件,并把这个云压缩文件发给请求的客户端。 

本实施例中,所述云压缩文件是一个很小的文件,这个云压缩文件可以包含文件标识信息和文件目录结构,其中文件标识信息对应服务器中云压缩数据的基本文件信息,所述文件标识信息可以是唯一云压缩文件序列号。此外,所述云压缩文件中还可以包含文件名、文件大小、网络服务器地址(用于客户端找到对应的服务器)等信息,这些信息由客户端上传给服务器。但是所述云压缩文件中并不包含实际的文件数据,因此,所述云压缩文件和原始文件或压缩后的数据相比非常小,多数将不到1k大小。 

其中,唯一云压缩文件序列号可采用哈希(Hash)算法或MD5等算法生成,如果是哈希算法则可以直接用Hash值表示。所述唯一云压缩文件序列号对应服务器中云压缩数据的基本文件信息,即对应着服务器上数据库中的压缩后文件的基本文件信息。所述基本文件信息包括文件的序列号(通常以Hash值为序列号)、文件的名称、文件夹的目录结构、文件的大小等信息。 

进一步的,服务器生成的云压缩文件还可以仅包含一个唯一的云压缩文件序列号,而不含文件名,例如内容【cloudzip=75b9c0f7】,这种云压缩文件称为极小云压缩文件,其体积将小到惊人的十几字节。而客户端上传的其他基本文件信息可以保存到服务器上。 

根据实际应用的不同,上述步骤121和122可以同时进行,也可以先后进行,这将在后面的内容中进行详细说明。 

服务器生成云压缩文件后,服务器还继续执行步骤13。 

步骤13,服务器对云压缩数据建立与云压缩文件的映射关系。 

即在服务器上建立压缩后的文件数据与云压缩文件的对应关系。 

经过上述步骤的处理,可以把一个文件数据压缩成为一个很小的云压缩文件,并可以把该云压缩文件发送给其他的客户端用户。客户端用户点击该云压缩文件,就可以直接从网络上下载对应的云压缩数据并进行解压,从而利用互联网实现了文件分享。所述的新型压缩方法可将任意大小的文件转化为云压缩文件,而且压缩率降低到1%以下,几乎不占空间。即任意大小的文件数据,无论是10M还是50M、100M、500M,还是1G,无论是文件还是文件夹,只要服务器空间足够大,带宽足够高,都可以压缩到1K以内的大小。相对于传统的50%-100%的压缩率,所述的新型压缩方法实现的1%以下的超低压缩率是革命性的。因此,如此小体积的云压缩文件可以非常方便地通过邮件、论坛或即时通讯工具发送给他人,不占用空间,节省传输带宽,易于分享。 

此外,将上述实施例所述方法与网盘上传文件的方式相比,还具有以下区别及优点: 

第一,网盘上传文件的方式在多数情况下为了节省传输时间,需要用户先手动使用传统的压缩软件对本地文件进行压缩,生成一个压缩包,然后再手动使用网盘上传压缩包。而本发明实施例将压缩和上传结合在一起一步到位,用户点击云压缩后就可以获得一个云压缩文件,无需手动压缩文件然后再手动上传等操作,节省了操作和压缩上传时间,非常方便。 

第二,网盘上传文件的方式需要用户注册,用户需经过打开浏览器、输入网址、登录、上传等复杂的网盘操作步骤。而本发明实施例所述方法是在客户端安装云压缩软件,通过直接点击右键菜单或者打开客户端的云压缩软件等方式直接触发云压缩,因此本发明操作起来更加方便直接。 

基于图1所示实施例的内容,本发明还可实现更多的功能,并具有更多的优点,下面分别说明。 

1、步骤121和122可以同时执行,也可以先后执行; 

如果所述请求为先压缩并上传数据,再生成云压缩文件,则所述服务器 在客户端上传完毕之后,再依据所述请求生成对应的云压缩文件;即步骤121先执行,待步骤121执行完毕之后,步骤122再开始执行; 

如果所述请求为先生成云压缩文件,则所述服务器在接收到所述请求后依据所述请求生成对应的云压缩文件,并将该云压缩文件立即发送给客户端,同时接收客户端上传的云压缩数据;即步骤121和122可以同时执行,也可以先执行步骤122再执行步骤121。 

对于上述第二种情况,在未将云压缩过程中的数据流上传到服务器上时,可以先生成云压缩文件,然后再继续上传数据流,否则对于一些较大文件,可能要等待十几分钟才能得到云压缩文件。例如把客户端的云压缩软件最小化到托盘在后台慢慢传输,用户不用等待就可以先把云压缩文件发邮件给其他人,其他人看到该邮件时,数据流已经传输完毕,可以正常解压。 

例如,生成云压缩文件时如果100M的文件压缩到50M大小,50M大小的数据在1Madsl宽带下需要传输8分钟左右。在先生成云压缩文件后传输数据(或同时传输数据)的情况下,只需要十几秒就可以生成云压缩文件,然后用户A可以立即把云压缩文件用邮件发给别人,同时云压缩在后台再用8分钟传输数据,而用户B在几小时后查看邮件时数据已经传输完毕可以解压。这样云压缩的用户A节约了8分钟时间。 

2、边压缩上传边解压; 

如果所述请求为先生成云压缩文件,则还可以包括: 

在客户端未上传完毕的时候,另一客户端通过点击云压缩文件从所述服务器下载已经上传的部分云压缩数据。 

在先生成云压缩文件,然后再继续上传数据流的方式中,可以在未上传完毕时,解压云压缩文件的人可以下载上传了部分的数据流进行解压操作。这样能够让制作云压缩文件的人和解压云压缩文件的人在最短的时间内实现压缩和解压。 

例如,在边上传云压缩数据流边下载数据流进行解压的情况下,用户A在把100M的文件花十几秒云压缩后,立即把云压缩文件用邮件附件发给用户B,此时云压缩边上传数据流,用户B可以立即对已经上传的部分数据流进行下载解压,双方都不需要等待。 

3、服务器避免重复存储的问题; 

当使用云压缩的人特别多之后,服务器上的已存储文件(即指云压缩数据)会有很多重复的。为了避免这种问题,可以在服务器上对文件进行Hash 值计算,如果Hash值相同,那么两个文件完全相同,则可以只在服务器上保存一个文件。在本地客户端上,对文件进行Hash值计算,通过与服务器上的Hash表进行对比,如果有相同的值,即服务器上已经有相同的文件,则不进行传输该文件,进而节省服务器空间和带宽。 

而且,服务器在生成云压缩文件时,如果有用户已经进行过相同文件的云压缩,则服务器上已经存在相同的文件,那么可以省去传输该文件,可以瞬间完成云压缩,只需1秒。例如一个用户A云压缩过100M的“忍者猫.rmvb”,则服务器上已经存在了“忍者猫.rmvb”文件,则用户B云压缩“忍者猫.rmvb”时,由于省去了该文件的传输过程,仅需1秒即可得到云压缩文件。 

上述内容可以通过以下步骤实现: 

在所述触发云压缩请求之后,还包括: 

1)客户端将要压缩的本地文件的基本文件信息(包含Hash值)上传给服务器; 

2)服务器根据所述基本文件信息查询是否存储了相同的文件,并将查询结果返回给客户端,所述查询结果中包含服务器未存储的部分文件的基本文件信息; 

即通过Hash值的比较查询是否存储相同文件,查询结果一般包括三种: 

第一种是客户端要压缩的所有文件都已在服务器上存储; 

第二种时客户端要压缩的所有文件都没有在服务器上存储; 

第三种是客户端要压缩的所有文件中,有部分文件在服务器上存储,还有剩余部分的文件没有在服务器上存储。 

3)客户端依据所述查询结果,将服务器未存储的本地文件数据进行自动压缩,并将压缩后的云压缩数据上传至服务器存储; 

4)如果服务器已存储客户端要压缩的所有文件,则服务器直接将对应的云压缩文件发送给客户端。 

4、断点续传; 

压缩上传过程可以支持断点续传,即断开网络后,重新连上时可以从断点处继续进行云压缩。 

由于文件很大时会有网络断开的情况,会造成云压缩中断,造成传输的部分数据流白传输而需要重新传输。针对这种问题,可以对大文件的数据进行分块处理,例如进行分块Hash值计算,如果服务器上存在相同的数据块 Hash值,则该部分将不用再传输,从而实现断点续传,即以断点续传来实现断点续压。此外,也可以直接在断点处做上数据标记,实现断点续传的云压缩。 

上述内容可以通过以下步骤实现: 

客户端将压缩后的云压缩数据分块上传至服务器存储; 

若客户端上传部分数据后发生上传失败,则所述方法还包括: 

客户端重新开始上传数据,如果服务器上存在相同的数据块,则客户端不再上传所述相同的数据块; 

或者,客户端在上传失败的断点处做标记,然后从所述标记的断点处继续上传数据。 

5、添加密码; 

云压缩可以选择加密,以实现对云压缩文件的加密,进行解压云压缩文件的人需要输入密码才可以打开,提高了私密性。选择添加密码既可以在本地压缩时加密然后上传,也可以在服务器接收到上传的数据后再加密。 

上述内容可以通过以下步骤实现: 

所述触发云压缩请求之后,还包括: 

客户端在压缩前添加密码; 

或者,服务器存储云压缩数据时添加密码。 

6、添加注释; 

在进行云压缩时可以选择添加注释,以实现对云压缩文件的注释,注释可以包括:制作云压缩文件的作者、相关说明等信息,方便下载者查看。这些注释信息即可以在客户端压缩文件时存储在云压缩文件内,也可以由客户端发送到服务器上并在服务器上存储。 

上述内容可以通过以下步骤实现: 

所述触发云压缩请求之后,还包括: 

客户端在压缩前添加注释信息; 

或者,服务器存储云压缩数据时添加注释信息。 

7、以不同的压缩级别进行压缩; 

在进行文件压缩时,可以选用不同的压缩级别进行压缩。并且,还可以智能判断压缩率而自动以不同的压缩级别进行压缩,例如存储、最快、标准等压缩级别。例如对于一些压缩率很低的文件,如rmvb、mp4、mp3等文件,可以直接以存储压缩方式上传数据流,不耗费CPU。 

上述内容可以通过以下步骤实现: 

所述触发云压缩请求之后,还包括: 

客户端智能判断压缩率并自动调整压缩级别进行压缩。 

8、云压缩确认。 

由于用户可能会误操作,例如误把“添加到云压缩”文件命令执行,从而误将私密文件上传到服务器而造成隐私泄露,因此在执行云压缩之前可以让用户确认是否云压缩该文件,以提高操作的准确性。 

针对上述的云压缩方法,本发明实施例还提供了相应的解压缩方法,如图2所示。 

参照图2,是本发明实施例所述一种基于云压缩文件的解压缩方法流程图。 

步骤201,通过打开云压缩文件触发云解压请求; 

所述云压缩文件包含云压缩数据的文件标识信息,所述文件标识信息可以是唯一云压缩文件序列号; 

步骤202,客户端从所述云压缩文件中获取基本文件信息,所述基本文件信息包含文件目录结构; 

如前所述,所述云压缩文件中可以包含唯一云压缩文件序列号(通常以Hash值为序列号)、文件目录结构、文件名和文件大小等基本文件信息,客户端可以直接读取云压缩文件内含的基本文件信息。客户端根据基本文件信息可以获得文件目录结构和文件属性(文件名、文件大小等)。 

在实际应用中,用户在浏览器中单击云压缩文件打开后可以看到该云压缩文件的内部目录、文件名、文件大小等基本文件信息,这些基本文件信息即是从云压缩文件中获得的。这样,用户可以打开云压缩文件先查看该云压缩文件的内部文件目录再决定是否下载并解压,对于认为没有价值的文件用户可以不选择下载并解压,这样就不必下载解压完再进行删除了。 

当然,如果是默认设置,则所述基本文件信息也可以不展示给用户。 

步骤203,客户端根据所述云压缩文件,从服务器上下载对应的云压缩数据; 

服务器可以根据云压缩文件中的唯一云压缩文件序列号查找到对应的云压缩数据的基本文件信息,然后依据所述基本文件信息再查找到对应的压缩数据。 

进一步的,客户端可以根据文件目录结构和文件属性向服务器发出下载请求,客户端可以选择所述文件目录结构中的全部文件下载,也可以选择部分文件下载。 

服务器根据所述下载请求查找对应的云压缩文件,并传输给客户端。如果客户端请求下载部分文件,则服务器根据客户端请求的文件的序列号或文件名称等信息,查找到对应的文件并传给客户端。 

上述步骤202和步骤203没有必然的先后顺序。 

步骤204,客户端依据所述基本文件信息对下载到本地的云压缩数据进行解压,得到原始文件数据。 

客户端选择存放目录,并按照所述服务器返回的文件目录结构,在本地的存放目录下创建目录结构,并进行解压。 

在上述解压过程中,如果所述云压缩文件设置了密码,在步骤202之前,还需要用户输入密码,然后服务器进行验证,验证通过后,才继续执行步骤202。 

基于图2所示的解压缩方法,优选的,如果很多用户同时压缩生成过相同文件的云压缩文件,那么这些用户在各自的客户端本地可能拥有相同的压缩前或解压后的文件。因此,在解压云压缩文件时,数据流可以不只来自于服务器,同样可以来自于拥有相同原始文件的用户客户端上。即相当于构建了一个以压缩后的文件为节点的P2P网络,并在服务器上维护每个压缩后文件的所有客户端的列表,同时还需要在客户端本地保存云压缩文件和原始文件目录数据。这种处理方式将极大减少服务器带宽占用和提高用户的下载速度。 

上述内容可以通过以下步骤实现: 

所述通过打开云压缩文件触发云解压请求后,还包括: 

客户端根据所述云压缩文件,从服务器指定的其他客户端上下载对应的云压缩数据并进行下载;所述服务器指定的其他客户端即是服务器所维护的列表中的客户端; 

客户端依据所述基本文件信息对下载到本地的云压缩数据进行解压,得到原始文件数据。 

此外,优选的,客户端可以下载全部或部分的云压缩数据。如前所述,在先生成云压缩文件,然后再继续上传数据流的方式中,可以在未上传完毕时,解压云压缩文件的人可以下载上传了部分的数据流进行解压操作。即边 进行压缩上传,边进行下载解压,这种情况下,客户端下载的就是部分的云压缩数据;当上传完毕后,就可以全部下载下来。还有一种下载部分云压缩数据的情况,就是客户端用户根据基本文件信息(文件目录结构)只选择了其中的部分文件进行下载,这种情况下服务器根据客户端请求的文件的序列号或文件名等信息可以查找到对应的文件,并发送给客户端。 

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。 

为了使本领域技术人员更加了解本发明的内容,下面通过图5至图10的操作进行说明。 

1、用系统右键菜单生成云压缩文件的过程: 

选择即将云压缩的文件,如图11所示: 

点击右键菜单,选择【添加到云压缩文件】,如图5.1所示; 

点击则弹出生成云压缩对话框,如图5.2所示; 

压缩方式若选择自动,则将智能调整压缩方式,例如存储、最快、标准等。 

若选择使用密码,则可以添加生成云压缩文件的密码,如图5.3所示; 

若选择使用注释,则可以添加生成云压缩文件的注释,如图5.4所示; 

在上面的准备云压缩窗口中,点击确定,则弹出开始云压缩的进度窗口,如图5.5所示; 

用户可以最小化到托盘,托盘区显示进度,如图5.6所示; 

在开启了先制作云压缩文件,后上传数据时,将立即得到一个云压缩文件,如图5.7所示; 

同时托盘区显示云压缩正在进行上传数据流,如图5.8所示。 

2、用系统右键菜单一键生成云压缩文件的过程: 

选择即将云压缩的文件,点击右键菜单,选择【添加到云压缩文件“电子商务.czip”】,如图6.1所示; 

则显示云压缩过程,如图6.2所示; 

同样的用户可以点击最小化等,同过程1。 

3、用云压缩软件主窗口生成云压缩文件的过程: 

打开云压缩软件主窗口,选择要生成云压缩的文件,点击【云压缩】按钮,如图7.1所示; 

然后弹出【生成云压缩对话框】,如图7.2所示,其余同过程1。 

4、用户打开一个云压缩文件的状态: 

用户在双击一个云压缩文件后,则弹出打开该云压缩文件的内部目录,如图8.1所示; 

当打开一个包含密码的云压缩文件时,弹出密码输入框,如图8.2所示; 

当打开一个包含注释的云压缩文件时,在右侧显示注释,如图8.3所示。 

5、系统右键菜单解压一个云压缩文件的过程: 

选择一个云压缩文件,点击右键菜单,选择解压到,如图9.1所示; 

弹出解压云压缩文件对话框,如图9.2所示; 

点击确定,进行解压,如图9.3所示; 

用户可以最小化,如图9.4所示; 

上面的菜单中,如果用户选择【解压到当前文件夹】或【解压到“电子商务/”】下,则解压到当前文件夹或“电子商务”文件夹下。 

6、云压缩软件主窗口解压一个云压缩文件的过程: 

在云压缩软件的主窗口中,选择一个云压缩文件,选择【云解压】按钮,如图10.1所示; 

弹出解压云压缩文件对话框,如图10.2所示; 

点击确定,进行解压,如图10.3所示; 

其余的和过程5相同。 

基于上述方法实施例的内容,本发明还提供了相应的装置和系统实施例。 

参照图3,是本发明实施例所述一种基于云压缩文件的压缩装置结构图。 

所述压缩装置包括客户端装置31和服务器装置32,其中, 

所述客户端装置31包括: 

云压缩触发单元311,用于触发云压缩请求; 

云压缩单元312,用于依据所述云压缩请求对要压缩的本地文件数据进 行自动压缩,并将压缩后的数据上传至服务器作为云压缩数据存储; 

云压缩文件接收单元313,用于从服务器接收对应的云压缩文件,所述云压缩文件包含云压缩数据的文件标识信息; 

所述服务器装置32包括: 

云压缩数据存储单元321,用于存储客户端上传的云压缩数据; 

云压缩文件生成单元322,用于依据所述云压缩请求生成对应的云压缩文件,并将该云压缩文件发送给客户端; 

映射单元323,用于对云压缩数据建立与云压缩文件的映射关系。 

其中,所述云压缩文件包含文件标识信息和/或文件目录结构,还可以包括文件名、文件大小、服务器地址等信息,其中所述文件标识信息对应服务器中云压缩数据的基本文件信息。具体的,所述文件标识信息可以是唯一云压缩文件序列号,所述唯一云压缩文件序列号对应服务器中云压缩数据的基本文件信息,所述基本文件信息包含文件目录结构、文件的序列号、文件名、文件大小等信息。 

所述云压缩文件也可以仅包含唯一云压缩文件序列号,称为极小云压缩文件,体积更小,更加节省空间。 

所述要压缩的本地文件数据为单个文件,或者为多个文件,或者为单个文件夹,或者为多个文件夹。 

上述压缩装置可将任意大小的文件转化为云压缩文件,而且压缩率降低到1%以下,几乎不占空间。即任意大小的文件数据,无论是10M还是50M、100M、500M,还是1G,无论是文件还是文件夹,只要服务器空间足够大,带宽足够高,都可以压缩到1K以内的大小。相对于传统的50%-100%的压缩率,所述的新型压缩装置实现的1%以下的超低压缩率是革命性的。因此,如此小体积的云压缩文件可以非常方便地通过邮件、论坛或即时通讯工具发送给他人,不占用空间,节省传输带宽,易于分享。 

优选的,如果所述请求为先压缩并上传数据,再生成云压缩文件,则所述服务器装置32中的云压缩文件生成单元322在客户端上传完毕之后,再依据所述请求生成对应的云压缩文件; 

如果所述请求为先生成云压缩文件,则所述服务器装置32中的云压缩文件生成单元322在接收到所述请求后依据所述请求生成对应的云压缩文件,并将该云压缩文件立即发送给客户端,同时所述服务器装置32中的云压缩数据存储单元321接收客户端上传的云压缩数据并存储。 

优选的,为了避免服务器重复存储的问题,所述客户端装置31还包括: 

基本文件信息上传单元314,用于将要压缩的本地文件的基本文件信息上传给服务器; 

所述云压缩单元312还用于依据服务器的查询结果,将服务器未存储的本地文件数据进行自动压缩,并将压缩后的云压缩数据上传至服务器存储; 

所述服务器装置32还包括: 

查询单元324,用于根据所述基本文件信息查询是否存储了相同的文件,并将查询结果返回给客户端,所述查询结果中包含服务器未存储的部分文件的基本文件信息;如果服务器已存储客户端要压缩的所有文件,则直接将对应的云压缩文件发送给客户端。 

优选的,所述压缩装置还具有断点续传功能,如下: 

所述客户端装置31的云压缩单元312将压缩后的云压缩数据分块上传至服务器存储; 

所述客户端装置31还包括: 

断点续传单元315,用于当所述云压缩单元312上传部分数据后发生上传失败,并重新开始上传数据时,如果服务器上存在相同的数据块,则不再上传所述相同的数据块;或者,在上传失败的断点处做标记,然后从所述标记的断点处继续上传数据。 

优选的,所述压缩装置还具有加密和/或添加注释的功能,如下: 

所述客户端装置31还包括: 

加密单元316,用于在云压缩单元进行压缩前添加密码; 

和/或,注释单元317,用于在云压缩单元进行压缩前添加注释信息。 

所述服务器装置32也可以还包括: 

加密单元325,用于存储云压缩数据时添加密码; 

和/或,注释单元326,用于存储云压缩数据时添加注释信息。 

优选的,所述压缩装置还具有以不同的压缩级别进行压缩的功能,如下: 

所述客户端装置31还包括: 

压缩级别调整单元318,用于智能判断压缩率并自动调整压缩级别; 

所述云压缩单元312以压缩级别调整单元调整的压缩级别进行压缩。 

对于上述压缩装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图1方法实施例的部分说明即可。 

参照图4,是本发明实施例所述一种基于云压缩文件的解压缩装置结构 图。 

所述解压缩装置包括客户端装置41和服务器装置42,其中, 

所述客户端装置41包括: 

云解压触发单元411,用于通过打开云压缩文件触发云解压请求,所述云压缩文件包含云压缩数据的文件标识信息; 

基本文件信息获取单元412,用于从所述云压缩文件中获取基本文件信息,所述基本文件信息包含文件目录结构; 

下载单元413,用于根据所述云压缩文件,从服务器上下载对应的云压缩数据; 

解压缩单元414,用于依据所述基本文件信息对下载到本地的云压缩数据进行解压,得到原始文件数据; 

所述服务器装置42包括: 

云压缩数据查询单元421,用于根据客户端上传的基本文件信息查找对应的云压缩数据,并返回给客户端。 

优选的,所述客户端装置41的下载单元413还用于根据所述云压缩文件,从服务器指定的其他客户端上下载对应的云压缩数据。 

对于所述解压缩装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图2方法实施例的部分说明即可。 

基于图3和图4,本发明还提供了一种基于云压缩文件的系统实施例。所述系统包括上述的压缩装置和解压缩装置,由于其与装置实施例基本相似,所以在此不再详述,相关之处参见图3和图4所示实施例的部分说明即可。 

上文中的“和/或”表示本文既包含了“和”的关系,也包含了“或”的关系,其中:如果方案A与方案B是“和”的关系,则表示某实施例中可以同时包括方案A和方案B;如果方案A与方案B是“或”的关系,则表示某实施例中可以单独包括方案A,或者单独包括方案B。 

以上对本发明所提供的一种基于云压缩文件的压缩和解压缩方法、装置及系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号