一种文件上传方法、装置和海量存储系统的制作方法

文档序号:7704834阅读:150来源:国知局

专利名称::一种文件上传方法、装置和海量存储系统的制作方法
技术领域
:本发明属于存储领域,尤其涉及一种文件上传方法、装置和海量存储系统。
背景技术
:海量存储系统是目前各种大规模应用的核心系统之一,用于存放、管理各种数据。用户通常可以从本地设备,如计算机、手机等终端设备,上传数据到该海量存储系统中进行保存和管理。其中海量存储系统的结构如图l所示,包括终端设备,海量存储服务器,其中终端设备与海量存储服务器之间通过网络设备进行连接。其中海量存储系统中,文件上传的步骤简述如下用户通过终端设备发起文件上传请求,终端设备与海量存储服务器之间建立某种链接后,如网络连接,采用数字化的方式将文件编码信息传递到海量存储服务器中进行保存。在海量存储系统中上传文件时,通常都会受到传输速度的影响,如网络带宽等硬件限制、网络繁忙拥塞情况等环境限制,造成文件传输需要花费很长时间,特别是大数据量的文件传输,并且占用大量的传输资源,如网络带宽等。同时,现有的文件上传方法存在比较大的数据冗余(排除为了降低数据丢失风险而做的数据冗余之外),如保存了不同用户的相同内容的文件(如同样的MP3歌曲)。且除了海量存储服务器内部的数据冗余较大之外,终端设备的数据重复也是比较严重,很多不同的用户都具有相同的数据需要上传(例如从同一个链接下载的MP3歌曲、图片、文档等),造成大量的带宽和存储空间的浪费。现有技术提供了一种并行传输技术,其在发起一个文件上传请求,建立传输通道之后,采用并行的手段(例如多线程上传)同时传输该文件的不同部分,通过提高传输通道(例如网络连接)的使用效率来达到縮短数据传输时间的目的。这种方法虽然可以一定程度上縮短文件上传时间,但当文件容量较大、传输环境恶劣时,该并行传输技术不能从根本上解决文件传输时间长、传输资源消耗大、存储数据冗余多、成本高等问题,且由于需要传输较大容量的文件,有可能导致数据传输错误、网络崩溃等现象。现有技术提供了一种数据压縮技术,其通过某种算法使得需要上传的数据的容量变小,如各种文件压縮算法。这种方法虽然可以通过减少需要传输的数据量来达到縮短数据传输时间的目的,但是这种方法不能从根本上解决文件传输消耗大、存储数据冗余多、成本高等问题。且由于数据压縮算法本身需要经过大量的运算才能完成,因此可能带来额外的计算资源的大量消耗。特别是在文件本身容量较大、传输环境恶劣(不稳定的网络连接、拥塞繁忙的网络环境)下,可能导致数据传输错误、运算设备崩溃等问题。
发明内容本发明实施例的目的在于提供一种文件上传方法,旨在解决现有的文件上传方法存在的数据冗余度高、文件上传速度慢、资源浪费严重的问题。本发明实施例是这样实现的,一种文件上传方法,所述方法包括下述步骤终端设备根据待上传文件,采用预设的摘要信息生成算法生成与待上传文件对应的摘要信息,并将所述摘要信息上传至存储服务器;存储服务器查找是否存在终端设备上传的摘要信息;当存储服务器未查找到所述摘要信息时,终端设备将待上传文件上传至存储服务器。本发明实施例的另一目的在于提供一种文件上传装置,所述装置包括摘要信息生成单元,用于根据待上传文件,采用预设的摘要信息生成算法生成与待上传文件对应的摘要信息,所述摘要信息生成单元设置于终端设备;摘要信息查找单元,用于查找存储服务器中是否存在所述摘要信息生成单元生成的摘要信息,所述摘要信息查找单元设置于存储服务器;文件上传单元,用于将所述摘要信息查找单元未查找到的摘要信息对应的文件上传至存储服务器,所述文件上传单元设置于终端设备。本发明实施例的另一目的在于提供一种海量存储系统,所述系统包括所述文件上传装置。在本发明实施例中,在存储服务器不存在需要上传的文件时,才将需要上传的文件上传至存储服务器,从而降低了存储服务器中的数据冗余,节省了上传文件时的网络资源,加快了文件上传速度。图1是现有技术提供的海量存储系统的结构框图;图2是本发明实施例提供的文件上传方法的实现流程图;图3是本发明另一实施例提供的文件上传方法的实现流程图;图4是本发明实施例提供的文件上传装置的结构框图。具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。在本发明实施例中,终端设备通过采用预设的摘要信息生成算法生成与待上传文件对应的摘要信息,并将该摘要信息上传至存储服务器,存储服务器查询是否存在该摘要信息,并在不存在该摘要信息时,将待上传文件上传至存储服务器,存储服务器建立并存储待上传文件及其摘要信息之间的对应关系,从而降低了存储服务器中的数据冗余,节省了上传文件时的网络资源,加快了文件上传速度。图2示出了本发明实施例提供的文件上传方法的实现流程,详述如下在步骤S101中,终端设备采用预设的摘要信息生成算法对待上传文件进行处理,生成与待上传文件对应的摘要信息,并将该摘要信息上传至存储服务器。其中文件与摘要信息之间是一一对应的,即采用预设的摘要信息生成算法对待上传文件进行处理后,生成的与待上传文件对应的摘要信息是唯一的。且根据文件对应的摘要信息是否相同,即可判断文件内容是否相同。即当两个文件对应的摘要信息相同时,则两5个文件的内容一定是相同的,当两个文件对应的摘要信息不同时,则两个文件的内容一定是不相同的。在本发明实施例中预设的摘要信息生成算法可以是现有的任意一种摘要信息生成算法,如信息-摘要算法(Message-DigestAlgorithm5,MD5)、安全哈希算法(SecureHashAlgorithm1,SHA-1)、循环冗余校验(CyclicalRedundancyCheck,CRC)算法等。当采用MD5算法时,生成的与待上传文件对应的摘要信息为MD5摘要信息。其中MD5算法是指把一个任意长度字节串的文件通过其不可逆的字符串变换算法变换成一定长的大整数(称为MD5摘要信息)的算法。根据不同的字节串产生的MD5摘要信息均是不相同的。MD5算法的作用是将大容量信息縮减为一种小容量的保密的格式。由于MD5算法的具体过程属于现有技术,在此不再赘述。在步骤S102中,存储服务器查找是否存在终端设备上传的摘要信息,如果是,执行步骤S105,否则,执行步骤S103。在本发明实施例中,当终端设备将文件对应的摘要信息上传至存储服务器时,存储服务器将存储文件对应的摘要信息,通过查找已经存储的摘要信息中是否存在终端设备上传的摘要信息,即可判断是否查找到终端设备上传的摘要信息。在步骤S103中,终端设备将待上传文件上传至存储服务器。其中终端设备将待上传文件上传至存储服务器的具体方式可以为现有技术中的任意一种方式,如建立与存储服务器之间的传输通道后,采用串行的方式将待上传文件上传至存储服务器,或者采用并行的方式同时传输待上传文件的不同部分,以提高传输通道的使用效率,从而縮短文件上传时间。也可以采用现有的任意一种文件压縮技术先对待上传文件进行压縮,再建立与存储服务器之间的传输通道,采用串行或者并行的方式将待上传文件上传至存储服务器,以降低需要传输的文件的大小,从而縮短文件上传时间。当然还可以采用现有的其他文件上传方式将待上传文件上传至存储服务器中,在此不再赘述。在步骤S104中,存储服务器存储终端设备上传的文件,同时建立并存储终端设备上传的文件以及该文件对应的摘要信息之间的对应关系。在本发明实施例中,存储服务器在接收到终端设备上传的文件以及该文件对应的摘要信息后,建立并存储文件以及该文件对应的摘要信息之间的对应关系,以便以后在上传文件时做查询。表l.l是本发明实施例提供的文件以及该文件对应的摘要信息之间的对应关系表的一个示例,但不以该示例为限。表1.1<table>tableseeoriginaldocumentpage6</column></row><table>其中Filel可以为该文件的唯一标识,M1为该文件对应的摘要信息或者摘要信息的唯一标识。通过建立并存储文件与摘要信息之间的对应关系,当存储服务器接收到终端设备上传的摘要信息时,通过查找文件与摘要信息之间的对应关系,即可判断是否存在终端设备上传的摘要信息,如果不存在,则表示存储服务器中没有存储终端设备需要上传的文件,此时,通过执行步骤S103和步骤S104,即可将需要上传的文件上传至存储服务器在步骤S105中,存储服务器向终端设备的用户开放该摘要信息对应的文件的访问权限。在本发明实施例中,当存储服务器中存在终端设备上传的摘要信息时,则表示存储服务器中已经存储了待上传文件,为了减少数据冗余、降低资源浪费、提高文件上传速率,终端设备不再向存储服务器上传待上传文件。但为了使用户可以对该文件进行操作,在本发明实施例中,存储服务器向终端设备的用户开放该摘要信息对应的文件的访问权限,从而在不重复上传同一文件时,用户同样可以访问该文件,在满足用户对文件操作需求的同时,减少了数据冗余、减少了资源浪费、提高了文件上传速率。当需要上传的两个文件之间仅有少部分数据不同时,如果针对整个文件采用预设的摘要信息生成方法生成与该文件对应的摘要信息,则生成的两个摘要信息不相同,从而导致仅有少部分数据不同的文件,也需要完整的将两个文件上传至存储服务器,从而增加了数据冗余、浪费了资源、降低了文件上传速率。为了避免上述问题,图3示出了本发明另一实施例提供的文件上传方法的实现流程,详述如下在步骤S201中,终端设备对待上传文件进行分段处理,得到多个文件段,并针对每一个文件段采用预设的摘要信息生成算法生成对应的摘要信息,将生成的摘要信息上传至存储服务器。其中文件与摘要信息之间是一一对应的,即根据待上传文件,采用预设的摘要信息生成算法生成的与待上传文件对应的摘要信息是唯一的。且根据文件对应的摘要信息是否相同,即可判断文件内容是否相同。即当两个文件对应的摘要信息相同时,则两个文件的内容一定是相同的,当两个文件对应的摘要信息不同时,则两个文件的内容一定是不相同的。在本发明实施例中,预设的摘要信息生成算法可以是现有的任意一种摘要信息生成算法,如MD5算法、SHA-1算法、CRC算法等,当采用MD5算法时,生成的与待上传文件对应的摘要信息为MD5摘要信息。举例说明如下从文件头开始,将待上传文件分成多个大小为10M的文件段,并针对每个文件段采用预设的摘要信息生成算法生成与该文件段对应的摘要信息。根据不同的文件段,生成的与该文件段对应的摘要信息各不相同。即文件段与摘要信息之间是一一对应的,在步骤S202中,存储服务器查找是否存在终端设备上传的摘要信息,如果是,执行步骤S205,否则,执行步骤S203。在步骤S203中,终端设备将摘要信息对应的文件段上传至存储服务器。其具体的上传过程如上所述,在此不再赘述。在步骤S204中,存储服务器存储终端设备上传的文件段,同时建立并存储终端设备上传的文件段以及该文件段对应的摘要信息之间的对应关系。在本发明实施例中,存储服务器在接收到终端设备上传的文件段以及该文件段对应的摘要信息后,建立并存储文件段以及该文件段对应的摘要信息之间的对应关系,以便以后在上传文件时做查询。在步骤S205中,终端设备不再上传该摘要信息对应的文件段,并向终端用户开放该摘要信息对应的文件段的访问权限。在本发明实施例中,通过将待上传文件分为多个文件段,对于已经存储在存储服务器中的文件段,不再上传,对于存储服务器中没有存储的文件段,采用现有的任意一种文件上传方式上传至存储服务器中,从而极大的降低了文件的上传时间和上传的数据量,节约了无效的带宽消耗,最大限度的降低了数据的冗余度。图4示出了本发明实施例提供的文件上传装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。该文件上传装置可以是内置于海量存储系统中的软件单元、硬件单元或者软硬件相结合的单元,或者作为独立的挂件集成到海量存储系统或者海量存储系统的应用系统中。其中摘要信息生成单元31根据待上传文件,采用预设的摘要信息生成算法生成与待上传文件对应的摘要信息。其中文件与摘要信息之间是一一对应的,即根据待上传文件,采用预设的摘要信息生成算法生成的与待上传文件对应的摘要信息是唯一的。且根据文件对应的摘要信息是否相同,即可判断文件内容是否相同。即当两个文件对应的摘要信息相同时,则两个文件的内容一定是相同的,当两个文件对应的摘要信息不同时,则两个文件的内容一定是不相同的。在本发明实施例中预设的摘要信息生成算法可以是现有的任意一种摘要信息生成算法,如MD5算法、SHA-1算法、CRC算法等,当采用MD5算法时,生成的与待上传文件对应的摘要信息为MD5摘要信息。具体实现时,该摘要信息生成单元31设置于终端设备中,该终端设备是指需要将文件上传至存储服务器进行存储的终端设备,如计算机、移动终端等。摘要信息查找单元32查找存储服务器中是否存在摘要信息生成单元31生成的摘要信息。具体实现时,该摘要信息查找单元32设置于存储服务器中。其中存储服务器是指用于存储并管理终端设备上传的文件的服务器。文件上传单元33将摘要信息查找单元32未查找到的摘要信息对应的文件上传至存储服务器。其中文件上传单元33将摘要信息查找单元32未查找到的摘要信息对应的文件上传至存储服务器的具体方式可以为现有技术中的任意一种方式,如建立与存储服务器之间的传输通道后,采用串行的方式将待上传文件上传至存储服务器,或者采用并行的方式同时传输待上传文件的不同部分,以提高传输通道的使用效率,从而縮短文件上传时间。也可以采用现有的任意一种文件压縮技术先对待上传文件进行压縮,再建立与存储服务器之间的传输通道,采用串行或者并行的方式将待上传文件上传至存储服务器,以降低需要传输的文件的大小,从而縮短文件上传时间。当然还可以采用现有的其他文件上传方式将待上传文件上传至存储服务器中,在此不再赘述。具体实现时,该文件上传单元33设置于终端设备。文件存储单元34存储文件上传单元33上传的文件,同时建立并存储文件上传单元33上传的文件以及摘要信息生成单元31生成的该文件对应的摘要信息之间的对应关系。具体实现时,该文件存储单元34设置于存储服务器中。在本发明另一实施例中,该装置还包括访问权限设置单元35。该访问权限设置单元35在存储服务器中存储有需要上传的文件时,向用户开放该文件的访问权限。从而在不重复上传同一文件时,用户同样可以访问该文件,在满足用户对文件操作需求的同时,减少了数据冗余、减少了资源浪费、提高了文件上传速率。具体实现时,该访问权限设置单元35设置于存储服务器中。当需要上传的两个文件之间仅有少部分数据不同时,如果针对整个文件采用预设的摘要信息生成方法生成与该文件对应的摘要信息,则生成的两个摘要信息不相同,从而导致仅有少部分数据不同的文件,也需要完整的将两个文件上传至存储服务器,从而增加了数据冗余、浪费了资源、降低了文件上传速率。为了避免上述问题,在本发明另一实施例中,该装置还包括文件分段处理单元36。该文件分段处理单元36对待上传文件进行分段处理,得到多个文件段。其中每个文件段的大小可以预先设置。具体实现时,该文件分段处理单元36设置于终端设备中。此时,摘要信息生成单元31根据文件分段处理单元36得到的多个文件段,采用预设的摘要信息生成算法生成与每个文件段对应的摘要信息。文件上传单元33将摘要信息查找单元32未查找到的摘要信息对应的文件段上传至存储服务器。其具体的上传方式同上,在此不再赘述。文件存储单元34存储文件上传单元33上传的文件段,同时建立并存储文件上传单元33上传的文件段以及摘要信息生成单元31生成的该文件段对应的摘要信息之间的对应关系。在本发明实施例中,通过采用预设的摘要信息生成算法生成文件的摘要信息,通过该摘要信息判断存储服务器中是否存储该文件,如果未存储,才将该文件上传至存储服务器,从而最大限度的降低了数据的冗余度,节省了上传文件时的网络资源,加快了文件上传速度。通过对文件进行分段处理,得到多个文件段,当存储服务器中不存在该文件段时,才将该文件段上传至存储服务器,从而极大的降低了文件的上传时间和上传的数据量,节约了无效的带宽消耗,最大限度的降低了数据的冗余度。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。9权利要求一种文件上传方法,其特征在于,所述方法包括下述步骤终端设备根据待上传文件,采用预设的摘要信息生成算法生成与待上传文件对应的摘要信息,并将所述摘要信息上传至存储服务器;存储服务器查找是否存在终端设备上传的摘要信息;当存储服务器未查找到所述摘要信息时,终端设备将待上传文件上传至存储服务器。2.如权利要求1所述的方法,其特征在于,在所述终端设备将待上传文件上传至存储服务器的步骤之后,所述方法还包括下述步骤存储服务器存储终端设备上传的文件,同时建立并存储终端设备上传的文件以及文件对应的摘要信息之间的对应关系。3.如权利要求1所述的方法,其特征在于,当存储服务器查找到终端设备上传的摘要信息时,所述方法还包括下述步骤存储服务器向终端设备的用户开放该摘要信息对应的文件的访问权限。4.如权利要求1所述的方法,其特征在于,所述方法还包括下述步骤终端设备对待上传文件进行分段处理,得到多个文件段;此时,所述终端设备根据待上传文件,采用预设的摘要信息生成算法生成与待上传文件对应的摘要信息,并将所述摘要信息上传至存储服务器的步骤具体包括针对每一个文件段采用预设的摘要信息生成算法生成对应的摘要信息,将生成的摘要信息上传至存储服务器。5.如权利要求4所述的方法,其特征在于,所述当存储服务器未查找到所述摘要信息时,终端设备将待上传文件上传至存储服务器的步骤具体包括当存储服务器未查找到所述摘要信息时,终端设备将摘要信息对应的文件段上传至存储服务器。6.如权利要求1至5任一权利要求所述的方法,其特征在于,所述预设的摘要信息生成算法为信息_摘要算法、安全哈希算法、循环冗余校验算法。7.—种文件上传装置,其特征在于,所述装置包括摘要信息生成单元,用于根据待上传文件,采用预设的摘要信息生成算法生成与待上传文件对应的摘要信息,所述摘要信息生成单元设置于终端设备;摘要信息查找单元,用于查找存储服务器中是否存在所述摘要信息生成单元生成的摘要信息,所述摘要信息查找单元设置于存储服务器;文件上传单元,用于将所述摘要信息查找单元未查找到的摘要信息对应的文件上传至存储服务器,所述文件上传单元设置于终端设备。8.如权利要求7所述的装置,其特征在于,所述装置还包括文件存储单元,用于存储所述文件上传单元上传的文件,同时建立并存储所述文件上传单元上传的文件以及摘要信息生成单元生成的文件对应的摘要信息之间的对应关系,所述文件存储单元设置于存储服务器。9.如权利要求7所述的装置,其特征在于,所述装置还包括访问权限设置单元,用于在存储服务器中存储有需要上传的文件时,向用户开放该文件的访问权限,所述访问权限设置单元设置于存储服务器中。10.如权利要求7所述的装置,其特征在于,所述装置还包括文件分段处理单元,用于对待上传文件进行分段处理,得到多个文件段,所述文件分段处理单元设置于终端设备;此时,所述摘要信息生成单元根据所述文件分段处理单元得到的多个文件段,采用预设的摘要信息生成算法生成与每个文件段对应的摘要信息;所述文件上传单元将所述摘要信息查找单元未查找到的摘要信息对应的文件段上传至存储服务器。11.一种海量存储系统,所述系统包括权利要求7至10任一权利要求所述的文件上传装置。全文摘要本发明适用于存储领域,提供了一种文件上传方法、装置和海量存储系统,所述方法包括下述步骤终端设备根据待上传文件,采用预设的摘要信息生成算法生成与待上传文件对应的摘要信息,并将所述摘要信息上传至存储服务器;存储服务器查找是否存在终端设备上传的摘要信息;当存储服务器未查找到所述摘要信息时,终端设备将待上传文件上传至存储服务器。在本发明实施例中,在存储服务器不存在需要上传的文件时,才将需要上传的文件上传至存储服务器,从而降低了存储服务器中的数据冗余,节省了上传文件时的网络资源,加快了文件上传速度。文档编号H04L29/08GK101699822SQ200910109278公开日2010年4月28日申请日期2009年8月6日优先权日2009年8月6日发明者张程申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1