著录项信息
专利名称 | 一种文件的存储方法、装置及服务器 |
申请号 | CN201310180414.2 | 申请日期 | 2013-05-15 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-11-19 | 公开/公告号 | CN104156376A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F16/13 | IPC分类号 | G;0;6;F;1;6;/;1;3;;;G;0;6;F;1;6;/;1;8;2查看分类表>
|
申请人 | 腾讯科技(深圳)有限公司 | 申请人地址 | 广东省深圳市福田区振兴路赛格科技园2栋东403室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 腾讯科技(深圳)有限公司 | 当前权利人 | 腾讯科技(深圳)有限公司 |
发明人 | 柯向荣 |
代理机构 | 广州三环专利商标代理有限公司 | 代理人 | 郝传鑫;熊永强 |
摘要
本发明适用于互联网通讯技术领域,提供了一种文件的存储方法、装置及服务器,所述方法包括:接收发送客户端上传的文件;按照预设信息摘要算法计算所述文件的摘要值;查询文件索引表中是否存在所述摘要值与文件索引的映射关系;若文件索引表中不存在所述摘要值与文件索引的映射关系,发送所述文件至文件服务器进行存储,并接收所述文件服务器生成的所述文件的文件索引。本发明,实现了服务器上相同文件只存储一份,提高了服务器的存储空间的有效利用率。
一种文件的存储方法、装置及服务器\n技术领域\n[0001] 本发明属于互联网通讯技术领域,尤其涉及一种文件的存储方法、装置及服务器。\n背景技术\n[0002] 目前,即时通讯工具的用户越来越多,用户使用即时通讯工具的频率越来越高,即时通讯服务器需要存储的信息也越来越多,例如当某一个用户在群里面发一张图片时,这个群的用户如果觉得这张图片很有意思,可能就会把这张图片发到另外一个群里面,另外一个群的用户可能还会转发,对于这种不断的转发相同的图片,现有服务器的文件存储方法是用户发什么样的图片文件就存什么样的图片文件,经过粗略统计,仅即时通讯群中图片上传重复率达到50%,在这种情况下,多次重复的文件存储使得服务器的文件存储速度比较慢,存储空间的有效利用率低。\n发明内容\n[0003] 本发明实施例提供了一种文件的存储方法、装置及服务器,旨在解决现有文件的存储方法存在存储空间的有效利用率低、存储速度慢的问题。\n[0004] 一方面,提供一种文件的存储方法,所述方法包括:\n[0005] 接收发送客户端上传的文件;\n[0006] 按照预设信息摘要算法计算所述文件的摘要值;\n[0007] 查询文件索引表中是否存在所述摘要值与文件索引的映射关系;\n[0008] 若文件索引表中不存在所述摘要值与文件索引的映射关系,发送所述文件至文件服务器进行存储,并接收所述文件服务器生成的所述文件的文件索引。\n[0009] 另一方面,提供一种文件的存储装置,所述装置包括:\n[0010] 文件接收单元,用于接收发送客户端上传的文件;\n[0011] 摘要值获取单元,用于按照预设信息摘要算法计算所述文件的摘要值;\n[0012] 查询单元,用于查询文件索引表中是否存在所述摘要值与文件索引的映射关系;\n[0013] 文件存储单元,用于若文件索引表中不存在所述摘要值与文件索引的映射关系,发送所述文件至文件服务器进行存储,并接收所述文件服务器生成的所述文件的文件索引。\n[0014] 再一方面,提供一种服务器,所述服务器包括如上所述的文件的存储装置。\n[0015] 在本发明实施例,接收发送客户端上传的文件;按照预设信息摘要算法计算所述文件的摘要值;查询文件索引表中是否存在所述摘要值与文件索引的映射关系;若文件索引表中不存在所述摘要值与文件索引的映射关系,发送所述文件至文件服务器进行存储,并接收所述文件服务器生成的所述文件的文件索引,本发明,实现了服务器上相同文件只存储一份,提高了服务器的存储空间的有效利用率。\n附图说明\n[0016] 图1是本发明实施例一提供的文件的存储方法的实现流程图;\n[0017] 图2是本发明实施例二提供的文件的存储方法的实现流程图;\n[0018] 图3是本发明实施例三提供的文件的存储装置的具体结构图;\n[0019] 图4是本发明实施例四提供的文件的存储装置的具体结构图。\n具体实施方式\n[0020] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。\n[0021] 在本发明实施例中,接收发送客户端上传的文件;按照预设信息摘要算法计算所述文件的摘要值;查询文件索引表中是否存在所述摘要值与文件索引的映射关系;若文件索引表中不存在所述摘要值与文件索引的映射关系,发送所述文件至文件服务器进行存储,并接收所述文件服务器生成的所述文件的文件索引。\n[0022] 以下结合具体实施例对本发明的实现进行详细描述:\n[0023] 实施例一\n[0024] 图1示出了本发明实施例一提供的文件的存储方法的实现流程,以服务器为执行主体,详述如下:\n[0025] 需要说明的是,消息摘要算法是把任意长度的输入信息进行加密而产生长度固定的伪随机输入的算法,其主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的摘要值,即经过相同的消息摘要算法获得到相同的摘要值时,则相同的摘要值对应的明文相同。在使用相同的消息摘要算法时,摘要值可以作为明文的唯一标识。\n[0026] 在步骤S101中,接收发送客户端上传的文件。\n[0027] 在本实施例中,所述发送客户端通过网络与服务器交互,其中,服务器包括但不限于即使通讯服务器、SNS服务器。所述文件包括但不限于图片、语音、文本文档、应用程序。服务器接收发送客户端上传的文件。当服务器为即时通讯服务器时,发送客户端为即时通讯客户端,即时通讯客户端发送给接收即时通讯客户端的文件需要先上传到即时通讯服务器上存储,接收即时通讯客户端再从即时通讯服务器获取文件。\n[0028] 在步骤S102中,按照预设信息摘要算法计算所述文件的摘要值。\n[0029] 在本实施例中,信息摘要算法用于将任意长度的输入经过处理输出固定长度摘要值的算法,所述预设信息摘要算法包括MD5、SHA-1和Hash算法的任一种。不同信息摘要算法获取的摘要值长度不同,如MD5算法摘要值有128个比特位,用SHA-1算法摘要值有160比特位。不管是使用哪种信息摘要算法,其获得摘要值都可以唯一标识输入的文件。服务器按照预设信息摘要算法计算所述文件的摘要值。\n[0030] 在步骤S103中,查询文件索引表中是否存在所述摘要值与文件索引的映射关系。\n[0031] 在本实施例中,所述文件索引表是服务器上记录的发送客户端在文件服务器上已存储文件的文件索引和已存储文件的摘要值之间映射关系的表,其中文件索引与摘要值一一对应。所述文件索引是用于记录文件服务器上存储文件的相关信息,其包括但不限于文件的存储目录、文件名称,接收客户端可以根据文件索引从文件服务器上获取具体的文件。\n服务器根据计算获得的摘要值查询文件索引表,以获得文件索引表中是否存在所述摘要值与文件索引的映射关系,其中,所述摘要值与文件索引的映射关系可以通过包括但不限于文件摘要值、发送客户端ID、文件索引、近期使用时间的表格来存储。其中,所述近期使用时间用于服务器计算文件服务器上存储文件的有限期限,从而控制该映射关系是否继续存在或者删除,当文件存储或者被下载时,服务器以当前系统时间作为文件索引表中相应摘要值与文件索引的映射关系对应近期使用时间,以达到增加该映射关系对应存储文件续期的目的。例如文件服务器上的存储文件保存期限是1年,通过近期使用时间和系统当前系统时间计算文件已保存时间,如果已保存时间超过1年,则删除该映射关系,同时若没有其他映射关系对应该文件,删除该存储文件。文件索引表如表1所示,\n[0032] 表1:\n[0033]\n[0034] 若文件索引表中不存在所述摘要值与文件索引的映射关系,执行步骤S104。\n[0035] 在步骤S104中,若文件索引表中不存在所述摘要值与文件索引的映射关系,发送所述文件至文件服务器进行存储,并接收所述文件服务器生成的所述文件的文件索引。\n[0036] 在本实施例中,所述文件服务器用于存储服务器发送的文件,在具体实施中,文件服务器和服务器可以部署在同一台服务器,也可以独立部署。由于摘要值可以作为文件的唯一标识,则可以通过对比文件的摘要值来判断文件是否相同。在存储文件之前,服务器查询文件索引表中是否存在所述摘要值与文件索引的映射关系,若不存在,发送所述文件至文件服务器进行存储,并接收所述文件服务器生成的所述文件的文件索引。对于比较大的文件,由于摘要值长度固定且长度短,通过摘要值来对比,计算量小,而且可以保持文件只存储一份,提高了存储空间的利用率。\n[0037] 一种可选方案是,在步骤S104之后,还可以在所述文件索引表中增加所述摘要值与所述文件的文件索引的映射关系。\n[0038] 具体的,通过增加文件索引表中的映射关系实时记录文件服务器中文件的保存情况,可以有效控制文件的重复存储。\n[0039] 另一种可选方案是,在步骤S104之后,还可以发送所述文件索引至接收客户端,以便于所述接收客户端根据所述文件索引下载所述文件。\n[0040] 具体的,所述文件索引是用于记录文件服务器上存储文件的相关信息,其包括但不限于文件的存储目录、文件名称,接收客户端可以根据文件索引从文件服务器上获取文件,同时服务器修改文件索引表中近期使用时间。\n[0041] 其中,以图片和即时通讯服务器为具体目标对象描述本实施例的适用场景,进行描述如下:\n[0042] 发送客户端接收到联系人发送的图片时,发送客户端的用户觉得图片比较有意思,通过发送客户端将该图片转发到其他联系人或者群中,即时通讯服务器接收到发送客户端提交的图片时,使用MD5算法生成该图片的MD5摘要值,同时查询即时通讯服务器的文件索引表中是否已存在该图片的MD5摘要值与文件索引的映射关系,如果不存在该图片的MD5摘要值与文件索引的映射关系,即文件服务器上没有保存相应的图片,即时通讯服务器将图片发送给文件服务器进行存储,同时接收文件服务器生成的文件索引,在文件索引表中保存接收到的文件索引、图片的MD5摘要值和图片的近期使用时间,之后,即时通讯服务器将文件索引通过即时通讯消息发送给接收转发图片的接收客户端,这些接收客户端根据文件索引从文件服务器上下载图片,这样保证了相同的文件在文件服务器中只存储一份。\n[0043] 本实施例,可以达到通过对比信息摘要算法获取的文件的摘要值,确保文件服务器上相同文件只存储一份,提高了文件服务器的存储空间利用率。\n[0044] 实施例二\n[0045] 图2示出了本发明实施例二提供的文件的存储方法的实现流程,以服务器为执行主体,详述如下:\n[0046] 在步骤S201中,接收发送客户端上传的文件。\n[0047] 在步骤S202中,按照预设信息摘要算法计算所述文件的摘要值。\n[0048] 在步骤S203中,查询文件索引表中是否存在所述摘要值与文件索引的映射关系。\n[0049] 具体的,若文件索引表中不存在所述摘要值与文件索引的映射关系,执行步骤S204,若文件索引表中存在所述摘要值与文件索引的映射关系,执行步骤S205。\n[0050] 在步骤S204中,若文件索引表中不存在所述摘要值与文件索引的映射关系,发送所述文件至文件服务器进行存储,并接收所述文件服务器生成的所述文件的文件索引。\n[0051] 在本实施例中,步骤S201~S203的执行和上述实施例一中的步骤S101~S103的执行过程类似,详情参见上述实施例一的描述。\n[0052] 在步骤S205中,若文件索引表中存在所述摘要值与文件索引的映射关系,不存储所述文件,更新所述文件索引表中所述摘要值与文件索引的映射关系。\n[0053] 在本实施例中,所述近期使用时间用于服务器计算文件服务器上存储文件的有限期限,从而控制该映射关系是否继续存在或者删除。文件存储或者被下载时服务器以当前系统时间修改文件索引表中相应摘要值与文件索引的映射关系对应近期使用时间,其中,当前系统时间是服务器的当前时间。在文件索引表中存在所述摘要值与文件索引的映射关系的情况下,说明文件服务器已经存储了相同的文件,不需要重复存储该文件,只要增加或更新服务器上的文件索引表中该摘要值与文件索引的映射关系。当近期使用时间与当前系统时间差超过预设时间时,删除文件服务器存储的文件并删除文件索引表中相应的映射关系。以预设时间为1年来说,当文件被与2012年1月1日首次被存储在文件服务器上之后,\n2012年1月3被发送客户端转发一次并下载,服务器将文件索引表中增加一个发送客户端对应的该文件的近期使用时间为2012年1月3映射关系,如果后续该文件未被其它发送客户端转发时,只需要再增加一个相应的映射关系,而当接受客户端下载该文件,只需要将相应的映射关系的近期使用时间更新当前时间,如果发送客户端转发文件后,没有其它接收客户端下载过该文件,那么到2013年1月3时,服务器会删除文件索引表中该文件的摘要值对应的映射记录,并发送消息给文件服务器使其删除存储的文件。这样可以有效的提高了文件服务器存储空间的利用率。\n[0054] 另一种可选方案是,在步骤S204之后,还可以发送所述文件索引至接收客户端,以便于所述接收客户端根据所述文件索引下载所述文件。\n[0055] 具体的,所述文件索引是用于记录文件服务器上存储文件的相关信息,其包括但不限于文件的存储目录、文件名称,接收客户端可以根据文件索引从文件服务器上获取文件,同时服务器修改文件索引表中近期使用时间。\n[0056] 其中,以图片和社会性网络服务(Social Networking Services,SNS)服务器为具体目标对象描述本实施例的适用场景,进行描述如下:\n[0057] 发送客户端接收到图片时,发送客户端的用户觉得图片比较有意思,通过发送客户端将该图片转发到其他联系人或者社区中,SNS服务器接收到发送客户端提交的图片时,使用MD5算法生成该图片的MD5摘要值,同时查询SNS服务器的文件索引表中是否已存在该图片的MD5摘要值与文件索引的映射关系,,如果已存在该图片的MD5摘要值与文件索引的映射关系,则文件服务器上已存储了与发送客户端提交的图片完全相同的图片,不再存储发送客户端提交的图片,SNS服务器只要以当前系统时间增加或更新文件索引表中该图片的MD5摘要值对应的映射关系中的最新使用时间,同时将文件索引通过即时通讯消息发送给接收转发图片的客户端,这些客户端根据文件索引从文件服务器上下载图片,即使该图片被转发多次,SNS服务器只需要增加或更新相应的映射关系,而文件服务器只存储了一份该图片。\n[0058] 本实施例,可以达到通过对比信息摘要算法获取的文件的摘要值,确保文件服务器上相同文件只存储一份,提高了文件服务器的存储空间利用率,提高了文件存储的效率。\n[0059] 实施例三\n[0060] 图3示出了本发明实施例三提供的文件的存储装置的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。在本实施例中,该文件的存储装置包括:文件接收单元31、摘要值获取单元32、查询单元33、文件存储单元34、索引增加单元35和索引发送单元36。\n[0061] 其中,文件接收单元31,用于接收发送客户端上传的文件;\n[0062] 摘要值获取单元32,用于按照预设信息摘要算法计算所述文件的摘要值;\n[0063] 查询单元33,用于查询文件索引表中是否存在所述摘要值与文件索引的映射关系;\n[0064] 文件存储单元34,用于若文件索引表中不存在所述摘要值与文件索引的映射关系,发送所述文件至文件服务器进行存储,并接收所述文件服务器生成的所述文件的文件索引。\n[0065] 进一步的,所述装置还包括:\n[0066] 索引增加单元35,用于在所述文件索引表中增加所述摘要值与所述文件的文件索引的映射关系。\n[0067] 进一步的,所述装置还包括:\n[0068] 索引发送单元36,用于发送所述文件索引至接收客户端,以便于所述接收客户端根据所述文件索引下载所述文件。\n[0069] 本发明实施例提供的文件的存储装置可以应用在前述对应的方法实施例一中,详情参见上述实施例一的描述,在此不再赘述。\n[0070] 实施例四\n[0071] 图4示出了本发明实施例四提供的文件的存储装置的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。在本实施例中,该文件的存储装置包括:\n[0072] 其中,文件接收单元41,用于接收发送客户端上传的文件;\n[0073] 摘要值获取单元42,用于按照预设信息摘要算法计算所述文件的摘要值;\n[0074] 查询单元43,用于查询文件索引表中是否存在所述摘要值与文件索引的映射关系;\n[0075] 文件存储单元44,用于若文件索引表中不存在所述摘要值与文件索引的映射关系,发送所述文件至文件服务器进行存储,并接收所述文件服务器生成的所述文件的文件索引。\n[0076] 进一步的,所述装置还包括:\n[0077] 索引更新单元45,用于若文件索引表中存在所述摘要值与文件索引的映射关系,不存储所述文件,更新所述文件索引表中所述摘要值与文件索引的映射关系。\n[0078] 进一步的,所述装置还包括:\n[0079] 索引增加单元46,用于在所述文件索引表中增加所述摘要值与所述文件的文件索引的映射关系。\n[0080] 进一步的,所述装置还包括:\n[0081] 索引发送单元47,用于发送所述文件索引至接收客户端,以便于所述接收客户端根据所述文件索引下载所述文件。\n[0082] 本发明实施例提供的文件的存储装置可以应用在前述对应的方法实施例二中,详情参见上述实施例二的描述,在此不再赘述。\n[0083] 值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。\n[0084] 另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。\n[0085] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
法律信息
- 2019-03-26
- 2015-09-23
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201310180414.2
申请日: 2013.05.15
- 2014-11-19
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2008-03-26
|
2007-10-15
| | |
2
| |
2009-10-07
|
2008-04-02
| | |
3
| |
2013-01-02
|
2012-09-25
| | |
4
| |
2012-07-04
|
2012-03-09
| | |
5
| |
2008-03-12
|
2007-10-09
| | |
6
| |
2009-09-16
|
2009-04-13
| | |
7
| |
2010-04-28
|
2009-08-06
| | |
8
| |
2013-01-09
|
2012-10-09
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |