[发明专利]一种文件滤重储存方法和装置有效
申请号: | 201810072498.0 | 申请日: | 2018-01-25 |
公开(公告)号: | CN110109883B | 公开(公告)日: | 2023-06-27 |
发明(设计)人: | 陈明耀 | 申请(专利权)人: | 卓望数码技术(深圳)有限公司 |
主分类号: | G06F16/172 | 分类号: | G06F16/172;G06F16/22 |
代理公司: | 深圳市恒和大知识产权代理有限公司 44479 | 代理人: | 邹航 |
地址: | 518000 广东省深圳市南山区粤海街*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件 储存 方法 装置 | ||
本发明公开了一种文件滤重储存方法和装置。所述方法包括:获取用户上传文件的的文件特征码和文件指纹信息;根据文件指纹信息生成相应的hash值;根据生成的hash值,在key‑value数据库中查询是否存有内容相同的文件;如果不存有内容相同的文件,则根据hash值生成相应的储存路径和文件名称,并将文件特征码得到的扩展名作为文件的扩展名,来将用户上传的文件储存在key‑value数据库中。本发明通过用户上传文件的文件指纹信息来设置储存路径,避免了名称不同而内容相同文件的重复储存,节省了储存空间;还通过文件指纹信息来判断文件是否相同,避免了将相同名称但内容不同的文件判断成同一文件,保障了文件数据的安全。
技术领域
本发明涉及文件储存技术领域,特别涉及一种文件滤重储存方法和装置。
背景技术
业界涉及到文件上传储存,一般很少判断并识别服务端是否已经存在相同文件;而且文件名通常采用随机字符串方式命名,而计算机的随机数算法是伪随机数,避免不了重复。
在这种情况下,会出现不同文件因为同名被覆盖的情况,还会出现相同文件因不同名而上传了多份,浪费了文件服务器的系统资源的情况。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种文件滤重储存方法和装置。所述技术方案如下:
一方面,本发明实施例提供了一种文件滤重储存方法,所述方法包括:
获取用户上传文件的文件长度,并根据文件长度获取上传文件的文件特征码和文件指纹信息,所述文件指纹信息是指从文件特征码开始,在文件流内间断获取的包含头尾的至少三段文件片段;
根据文件指纹信息生成相应的hash值(即哈希值);
根据生成的hash值,在key-value数据库中查询是否存有内容相同的文件;
如果不存有内容相同的文件,则根据hash值生成相应的储存路径和文件名称,并将文件特征码得到的扩展名作为文件的扩展名,来将用户上传的文件储存在key-value数据库中;
如果存有内容相同的文件,则将储用户上传的文件过滤处理。
在本发明实施例上述的文件滤重储存方法中,所述根据文件指纹信息生成相应的hash值,包括:
将指纹信息中的文件片段拼接后hash出32位长的字符串,来作为相应的hash值。
在本发明实施例上述的文件滤重储存方法中,所述根据hash值生成相应的储存路径和文件名称,并将文件特征码得到的扩展名作为文件的扩展名,来将用户上传的文件储存在key-value数据库中,包括:
将32位长的字符串的前28个字符中每四个字符串分割成一层储存目录,最后4个字符作为文件名,并用文件特征码得到的扩展名作为文件的扩展名,来将用户上传的文件储存在key-value数据库中。
在本发明实施例上述的文件滤重储存方法中,所述根据hash值生成相应的储存路径,并将文件特征码作为用户上传文件的扩展名,来将用户上传的文件储存在key-value数据库中,还包括:
将hash值和文件储存路径均存入key-value数据库。
在本发明实施例上述的文件滤重储存方法中,所述方法还包括:所述根据hash值生成相应的储存路径,并将文件特征码作为用户上传文件的扩展名,来将用户上传的文件储存在key-value数据库中,还包括:
将文件储存路径与业务应用建立关联关系,并保存在key-value数据库中。
另一方面,本发明实施例提供了一种文件滤重储存装置,所述装置包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于卓望数码技术(深圳)有限公司,未经卓望数码技术(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810072498.0/2.html,转载请声明来源钻瓜专利网。