文件上传系统和文件上传方法

文档序号:7946257阅读:198来源:国知局

专利名称::文件上传系统和文件上传方法
技术领域
:本发明涉及计算机
技术领域
,尤其涉及一种文件上传系统和文件上传方法。
背景技术
:目前互联网用户上传数据采用的是单点上传的方式。单点上传存在的问题有某个用户上传一个文件到服务器后,另外一个用户可能会上传同一个文件至该服务器,即服务器可能会重复多次存储同一个文件,这样势必会浪费服务器的存储空间。
发明内容有鉴于此,有必要针对单点上传方式浪费服务器存储空间的问题,提供一种能有效节省服务器存储空间的文件上传系统。一种文件上传系统,包括索引服务器和至少一个上传服务器;所述索引服务器用于接收客户端的上传请求,判断是否有上传服务器存储了客户端请求上传的文件,如果是,则向所述客户端发送提示信息;如果否,则分配一个上传服务器供所述客户端上传文件。优选的,所述上传请求包括客户端请求上传的文件的文件散列,所述文件散列是通过散列算法对文件进行计算而得出的唯一标识字符串。优选的,所述散列算法是MD5算法或SHA-1算法。优选的,所述索引服务器存储有文件存储信息表,所述文件存储信息表包括所有上传服务器存储的全部文件的文件散列、完整性、存储地址,所述完整性用于描述对应的文件的完整性,所迷存储地址用于描述对应的文件所存储的上传服务器。优选的,所述完整性用0和1标识,O表示对应的文件是不完整的,l表示对应的文件是完整的。优选的,所述索引服务器还用于判断所述上传服务器存储的客户端请求上传的文件是否完整,如果是,所述提示信息为请求上传的文件已存在;如果否,所述提示信息为存储所述文件的上传服务器地址。优选的,所述上传服务器存储有与客户端请求上传的文件对应的文件上传状态表,所述文件上传状态表包括分片散列、完整性、分片起始偏移量、分片长度、已上传长度;所述分片散列用于标识该客户端请求上传的文件的文件分片,所述完整性用于描述对应的文件分片的完整性,所述分片起始偏移量用于描述对应的文件分片在原始文件中的起始偏移量,所述分片长度用于描述对应的文件分片的总长度,所述已上传长度用于描述对应的文件分片已经上传的部分。优选的,所述完整性用0和1标识,O表示对应的文件分片是不完整的,1表示对应的文件分片是完整的。此外,还提供一种文件上传方法。一种文件上传方法,包括接收客户端的上传请求;判断是否有上传服务器存储了客户端请求上传的文件;如果是,则向所述客户端发送提示信息;如果否,则分配一个上传服务器供所述客户端上传文件。优选的,如果上传服务器存储了客户端请求上传的文件,还包括判断所述文件是否完整,如果是,所述提示信息为请求上传的文件已存在;如果否,所述提示信息为存储所述文件的上传服务器地址。上述文件上传系统通过索引服务器对上传文件进行管理,控制客户端不重复上传相同的文件,从而保证上传服务器不会重复存储相同的文件,因此可以有效节省上传服务器的存储空间。图l是文件上传系统的示意图。图2是第一种文件上传方法的示意图。图3是第二种文件上传方法的示意图。图4是第三种文件上传方法的示意图。具体实施例方式图1是文件上传系统的示意图。文件上传系统包括索引服务器、多个上传服务器和多个客户端。为了便于描述,图1仅示意了上传服务器和客户端各有三个的情况。三个上传服务器分别命名为上传服务器1、上传JI良务器2和上传服务器3,客户端分別命名为客户端1、客户端2和客户端3。索引服务器用于接收客户端的上传请求,并负责分配一台上传服务器来处理客户端的上传请求。通常情况下,索引服务器只有一台。以图1为例,索引服务器分配上传服务器1来处理客户端3的上传请求,分配上传服务器2来处理客户端1的上传请求,分配上传服务器3来处理客户端2的上传请求。为了实现对上传服务器的分配和管理,索引服务器自行维护一个由文件散列、完整性、存储地址组成的文件存储信息表。其中,文件散列是指通过散列算法对所有上传服务器存储的每个文件进行计算而得出的唯一标识字符串。常用的散列算法有MD5算法和SHA-1算法,用户也可在具体实现时自行指定。完整性用于描迷对应的文件的完整性。完整性用0和l标识,0表示对应的文件是不完整的,l表示对应的文件是完整的。存储地址用于描述对应的文件所存储的上传服务器。当采用SHA1算法时,索引服务器存储的文件存储信息表如表一所示表一文件散列完整性存储地址66a35edl0c264伤5eb796a0bfef2226bb3dled4f1storel.upload.store.qq.com:3901fcefb8dba32ec589bcd0f7786e8c096clf8040630storel.upk)ad.store.qq.com:390117e55b74f152321843377ef29eecait)d0086d9271store2.upload.store.qq.com:3901由表一可知,文件散列66a35edl0c264伤5eb796a0bfef2226bb3dled4f所对应的文件是完整的(即该文件已经上传完毕),存储在地址为storel.upload.store.qq.com、服务端口为3卯1的上传服务器中,而文件散列为fcefb8dba32ec589bcd0f7786e8c096clf804063所对应的文件是不完整的(即该文件没有上传完毕),该文件的上传和存储同样由地址为storel.upload.store.qq.com、服务端口为3卯1的上传服务器负责完成。客户端在上传文件前,会首先向索引服务器发出上传请求,该上传请求中包含客户端请求上传的文件的文件散列,索引服务器会根据该文件散列在文件存储信息表中查询该文件是否已经存在,如果已经存在,则进一步判断该文件是否完整,如果完整,则向客户端发送该文件已存在提示信息,如果不完整则向客户端发送存储该文件的上传服务器地址提示信息。如果在文件存储信息表中没有查询到该文件的记录,则在文件存储信息表中添加相应的信息,并指定上传服务器地址。才艮据该策略,可实现文件上传方案中排重和续传的功能特性,从而保证上传服务器不会重复存储同一个文件,因此可以有效节省上传服务器的存储空间。上传服务器负责具体的文件内容的上传过程。为了分散整个平台的网络压力,避免因单一上传服务器带宽优先而引起用户^:的限制,上传服务器可以包括多台,用户对上传服务器的选择由索引服务器根据其策略决定。上传服务器和客户端把每一个上传文件都分成多个文件分片,在上传过程中是以文件分片作为上传的基本单位的。如果多个客户端同时在上传同一个文件,则上传服务器会进行调度,使得不同的客户端尽量上传不同的文件分片,从而提高针对这个单一文件的上传速度。为此,上传服务器针对每一个上传文件都维护一个文件上传状态表,用以描述该文件的上传情况。当客户端请求上传一个文件时,上传服务器首先检测该文件上传状态表。文件上传状态表由分片散列、完整性、分片起始偏移量、分片长度和已上传长度组成,如表二所示表二<table>tableseeoriginaldocumentpage7</column></row><table>表二中,分片散列用于标识该文件的文件分片,当该文件分片上传完毕,整性表示该文件分片的完整性,完整性用0和1标识,o表示该文件分片是不完整的(即该文件分片没有上传完毕),1表示该文件分片是完整的(即该文件分片已经上传完毕)。分片起始偏移量用于描述该文件分片在原始文件中的起始偏移量。分片长度用于描述该文件分片的总长度。已上传长度用于描述该文件分片已经上传的部分,当某文件分片的完整性为1时,已上传长度应等于分片长度。客户端是文件上传任务的发起者。当发起文件上传任务时,客户端首先对请求上传的文件计算出文件散列和文件上传状态表(每一个文件分片的完整性和已上传长度置为0),把文件散列和文件上传状态表分别提交给索引服务器和上传服务器,随后根据需要传送上传服务器上没有的文件分片,从而完成上传文件的任务。客户端具有文件分片管理功能。客户端可以按着固定的单位长度对文件进行分片,该单位长度可以由用户自由设定。客户端也可以才艮据网络的带宽和文件大小动态的对文件进行分片。在上述实施方式中,索引服务器和上传服务器可以分别位于不同的硬件系统中,通过网络相连;也可以位于同一个硬件系统中。文件上传方法包括多种实施方式,下面具体说明其中的三种实施方式。图2是第一种文件上传方法的示意图。第一种文件上传方法包括以下步骤S101:接收客户端的上传"i青求。S102:判断是否有上传服务器存储了客户端请求上传的文件;如果是,执行S103;如果否,扭Z亍S104。S103:向所述客户端发送提示信息。S104:分配一个上传服务器供所述客户端上传文件。图3是第二种文件上传方法的示意图。第二种文件上传方法包括以下步骤S201:接收客户端的上传请求。S202:判断是否有上传服务器存储了客户端请求上传的文件;如果是,执行S203;如果否,执行S206。S203:判断所述文件是否完整;如果是,执行S204,如果否,执行S205。S204:向所述客户端发送请求上传的文件已存在提示信息。S205:向所述客户端发送存储所述文件的上传服务器地址提示信息。S206:分配一个上传服务器供所述客户端上传文件。图4是第三种文件上传方法的示意图。第三种文件上传方法是一种最完整的上传方法,具有排重、续传、数据验证的功能。第三种文件上传方法包括以下步骤S301:客户端计算请求上传的文件的文件散列,向索引服务器发出上传请求。S302:索引服务器判断是否有上传服务器存储了客户端请求上传的文件;如果是,执行S303;如果否,执行S304。S303:索引服务器判断所述文件是否完整;如果是,执行S313;如果否,执行S305。S304:索引服务器在文件存储信息表中添加一个新记录并分配一个存储地址添加到该记录中,4巴该存储地址发送给客户端,然后执4亍S307。S305:索引服务器取出文件存储信息表中记录的存储地址发送给客户端。S306:客户端把请求上传的文件的文件散列发送给上传月l务器,然后执行S309。S307:客户端计算文件上传状态表,与文件散列一起发送给上传服务器。S308:上传服务器保存文件上传状态表。S309:上传服务器判断客户端请求上传的文件是否上传完毕,如果是,执行S313,如果否,净丸行S310。上传服务器查询其所存储的文件上传状态表,寻找没有上传完的文件分片(即查找文件上传状态表中完整性为O的文件分片)。如果没有找到,即表示上传完毕。如果找到了某个未上传完的文件分片,则表示没有上传完毕。S310:上传服务器计算未上传完的文件分片的上传状态4言息并发送给客户端。上传状态信息包括该文件分片缺少的偏移量和数据长度,缺少的偏移量-分片起始偏移量+已上传长度,数据长度=分片长度-已上传长度。S311:客户端向上传服务器传送未上传完的文件分片。客户端接收响应后,按照上传服务器指定的偏移量和数据长度,发送未上传完的文件分片。S312:上传服务器验证所接收的文件分片是否正确,如果是,执行S309,如果否,执4亍S311。在客户端上传完毕后,上传服务器针对该文件分片,计算其分片散列,并与文件上传状态表中的分片散列进行比较,如果不同,即表示所接收的文件分片不正确;如果相同,即表示所接收的文件分片正确。S313:客户端结束文件上传任务,索引服务器更新文件存储信息表。上传服务器通知客户端已经上传完毕,并通知索引服务器,该文件已经上传完毕,索引服务器相应更新其维护的文件存储信息表。以上所述实施例l又表达了本发明的几种实施方式,其描述4交为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。权利要求1、一种文件上传系统,其特征在于包括索引服务器和至少一个上传服务器;所述索引服务器用于接收客户端的上传请求,判断是否有上传服务器存储了客户端请求上传的文件,如果是,则向所述客户端发送提示信息;如果否,则分配一个上传服务器供所述客户端上传文件。2、根据权利要求1所述的文件上传系统,其特征在于所述上传请求包括客户端请求上传的文件的文件散列,所述文件散列是通过散列算法对文件进行计算而得出的唯一标识字符串。3、根据权利要求2所述的文件上传系统,其特征在于所述散列算法是MD5算法或SHA-1算法。4、根据权利要求2所述的文件上传系统,其特征在于所述索引服务器存储有文件存储信息表,所述文件存储信息表包括所有上传^^务器存储的全部文件的文件散列、完整性、存储地址,所述完整性用于描述对应的文件的完整性,所述存储地址用于描述对应的文件所存储的上传^I良务器。5、根据权利要求4所述的文件上传系统,其特征在于所述完整性用0和l标识,O表示对应的文件是不完整的,l表示对应的文件是完整的。6、根据权利要求1所述的文件上传系统,其特征在于所述索引服务器还用于判断所述上传服务器存储的客户端请求上传的文件是否完整,如果是,所述提示信息为请求上传的文件已存在;如果否,所述提示信息为存储所述文件的上传服务器地址。7、根据权利要求1所述的文件上传系统,其特征在于所述上传服务器存储有与客户端请求上传的文件对应的文件上传状态表,所述文件上传状态表包括分片散列、完整性、分片起始偏移量、分片长度、已上传长度;所述分片散列用于标识该客户端请求上传的文件的文件分片,所述完整性用于描述对应的文件分片的完整性,所述分片起始偏移量用于描述对应的文件分片在原始文件中的起始偏移量,所述分片长度用于描述对应的文件分片的总长度,所述已上传长度用于描述对应的文件分片已经上传的部分。8、根据权利要求7所述的文件上传系统,其特征在于所述完整性用0和l标识,O表示对应的文件分片是不完整的,l表示对应的文件分片是完整的。9、一种文件上传方法,包括接收客户端的上传请求;判断是否有上传服务器存储了客户端请求上传的文件;如果是,则向所述客户端发送提示信息;如果否,则分配一个上传服务器供所述客户端上传文件。10、根据权利要求9所述的文件上传方法,其特征在于如果上传服务器存储了客户端请求上传的文件,还包括判断所述文件是否完整,如果是,所述提示信息为请求上传的文件已存在;如果否,所述提示信息为存储所述文件的上传服务器地址。全文摘要本发明涉及一种文件上传系统和文件上传方法。所述文件上传系统包括索引服务器和至少一个上传服务器;所述索引服务器用于接收客户端的上传请求,判断是否有上传服务器存储了客户端请求上传的文件,如果是,则向所述客户端发送提示信息;如果否,则分配一个上传服务器供所述客户端上传文件。所述文件上传方法包括接收客户端的上传请求;判断是否有上传服务器存储了客户端请求上传的文件;如果是,则向所述客户端发送提示信息;如果否,则分配一个上传服务器供所述客户端上传文件。所述文件上传系统和文件上传方法可以有效节省上传服务器的存储空间。文档编号H04L29/06GK101534322SQ20091003858公开日2009年9月16日申请日期2009年4月13日优先权日2009年4月13日发明者司天歌申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1