基于文件内容哈希值的分布式存储方法与流程哈希娱乐
哈希游戏作为一种新兴的区块链应用,它巧妙地结合了加密技术与娱乐,为玩家提供了全新的体验。万达哈希平台凭借其独特的彩票玩法和创新的哈希算法,公平公正-方便快捷!万达哈希,哈希游戏平台,哈希娱乐,哈希游戏
本发明涉及计算机存储技术领域,特别是一种基于文件内容哈希值的分布式存储方法。
在互联网应用中,文件存储是比较常用的一个服务模块,无论是图片、音频、视频、excel或pdf文档都会用到文件存储服务,由此可见,文件存储服务模块在互联网应用的广泛性和重要性。而传统的文件存储方法是按照文件上传日期创建目录存储,文件存储的位置比较集中,这样对磁盘的读写压力比较大,文件存储服务器负载也会很高,造成文件存储吞吐量低,在文件读或写高峰的时候,容易达到系统瓶颈。
针对上述技术缺陷,本发明的目的在于提供一种解决上述技术问题的基于文件内容哈希值的分布式存储方法。
为解决上述技术问题,本发明提供的基于文件内容哈希值的分布式存储方法,包括:步骤1,客户端通过哈希算法得到所要上传的文件内容的第一哈希值,向文件应用服务器发送带有第一哈希值的写请求;
步骤2,文件应用服务器接收来自客户端带有第一哈希值的写请求,查找文件记录数据库中的映射表;若己存在该文件的映射记录,则向客户端返回该文件已上传过的结果及该文件在文件存储数据库中的访问地址;若不存在该文件的映射记录,则同意客户端向文件应用服务器上传该文件;
步骤3,文件应用服务器通过哈希算法得到该文件内容的第二哈希值,并将第二哈希值与第一哈希值进行比较;若第二哈希值与第一哈希值的值不同,则将第二哈希值与第一哈希值的值不同的结果返回客户端并返回步骤1,若第二哈希值与第一哈希值的值相同,则进入步骤4;
步骤4,文件应用服务器查找文件存储数据库中的映射表;若己存在该文件的映射记录,则向客户端返回该文件已上传过的结果;若不存在该文件的映射记录,则将该文件写入文件存储数据库。
步骤4.1.1,文件应用服务器根据该文件的第二哈希值或第一哈希值的前2位字符和文件存储数据库中的文件存储服务器的id和存储空间情况,计算得到可写入的文件存储服务器;
步骤4.1.2,文件应用服务器根据该文件的第二哈希值或第一哈希值的前3位至6位字符计算得到该文件存储服务器中用于写入该文件的存储目录。
步骤4.2中,将该文件写入该存储目录下;若写入失败,则向客户端返回写入失败的结果,若写入成功,则向客户端返回写入成功的结果。
步骤4.2中,写入成功的结果包括该文件内容的哈希值,文件存储服务器的id、存储目录、保存成功的结果和该文件的访问地址。
1)基于文件内容的哈希值的,相同的文件多次上传,只存储一次,节省存储空间;
2)根据文件内容哈希值计算的服务器和存储目录,存储的服务器和位置比较分散,这样文件的存储效率高,读取的时候压力也分散,有效降低机器负载,大大提高文件存储系统吞吐量。
3)根据哈希值计算的存储服务器和存储目录都是保存在数据库中的,这样文件存储系统容易扩展。
4)客户端访问文件是根据文件哈希值来访问的,这样有利益于系统快速定位服务器和存储目录,加快文件读取速度。
5)文件内容的哈希值是预先在客户端计算过,相同的大文件不要重复传输,节省带宽和传输成本。
1、客户端选择上传文件,客户端根据要上传的文件内容,计算该文件内容的sha1值(哈希值);
2、客户端把通过上传文件内容的sha1值,请求查询文件应用服务器,文件应用服务器根据将要上传文件内容的sha1,到文件上传记录的文件记录数据库中查询该上传文件是否已经上传;
3、若该上传文件已经上传过,文件应用服务器直接返回已上传过结果及该文件的访问地址;
4、若改上传文件未上传过,文件应用服务器告诉客户端未上传过,客户端将要上传的文件及其内容的sha1值通过http接口传输到文件应用服务器;
5、根据该上传文件内容计算该文件内容的sha1值,文件应用服务器将得到sha1值与客户端传输的该文件内容的sha1值进行比对;
7、若sha1值一致,向文件存储数据库查询该sha1值的文件是否上传过,若上传过,直接返回该文件已上传结果给客户端;
8、若未上传过,根据上传文件内容的sha1值的前2位字符和文件存储数据库中文件存储服务器的列表和存储空间大小,计算得到该上传文件应该存储的文件存储服务器;
9、根据文件内容的sha1值的3到6位字符计算在文件在该文件存储服务器的存储目录;
10、得到存储该文件存储目录之后,将该上传文件以sha1值为名字保存在该文件存储目录下;
11、若该上传文件保存失败,最大尝试3次,若最终失败,把失败结果返回客户端。
12、若该上传文件保存成功,文件应用服务器把该上传文件sha1值,文件存储服务器id和存储目录保存到数据中,把保存成功结果和上传文件访问地址一并返回给客户端。
以上已对本发明创造的较佳实施例进行了具体说明,但本发明并不限于实施例,熟悉本领域的技术人员在不违背本发明创造精神的前提下还可作出种种的等同的变形或替换,这些等同的变形或替换均包含在本技术:的范围内。
一种基于文件内容哈希值的分布式存储方法,包括:步骤1,客户端通过哈希算法得到所要上传的文件内容的第一哈希值,向文件应用服务器发送带有第一哈希值的写请求;步骤2,文件应用服务器接收来自客户端带有第一哈希值的写请求,查找文件记录数据库中的映射表;步骤3,文件应用服务器通过哈希算法得到该文件内容的第二哈希值,并将第二哈希值与第一哈希值进行比较;步骤4,文件应用服务器查找文件存储数据库中的映射表;若己存在该文件的映射记录,则向客户端返回该文件已上传过的结果;若不存在该文件的映射记录,则将该文件写入文件存储数据库。本发明具有如下优势:节省存储空间;有效降低机器负载,大大提高文件存储系统吞吐量。
如您需求助技术专家,请点此查看客服电线.机电一体化产品开发 4.机械工程测试技术 5.逆向工程技术研究
1.振动信号时频分析理论与测试系统设计 2.汽车检测系统设计 3.汽车电子控制系统设计