发明内容
为解决上述问题,本发明的目的在于提供一种服务器数据管理方法及系统,在服务器中建立数据库,检索当前服务器上所有资源文件的信息,对待上传的资源文件执行上传操作,其中上传操作包括但不限于上传导入、锁定文件以及新建目录;服务器或客户端拦截上传操作,调用数据库对上传的资源文件执行检索对比,判断资源文件是否重复,若是则禁止上传操作,结束流程,否则允许上传操作;检索上传的资源文件信息,将新增的资源文件信息写入数据库,完成数据库的更新。
本发明解决其问题所采用的技术方案一方面是:一种服务器数据管理方法,其特征在于,包括以下步骤:在服务器中建立数据库,检索当前服务器上所有资源文件的信息,其中资源文件的信息包括MD5值以及文件路径;对待上传的资源文件执行上传操作,其中上传操作包括但不限于上传导入、锁定文件以及新建目录;服务器或客户端拦截上传操作,调用数据库对上传的资源文件执行检索对比,判断资源文件是否重复,若是则禁止上传操作,结束流程,否则允许上传操作;检索当前服务器上所有资源文件的信息,完成数据库的更新。
进一步的,所述在服务器中建立数据库还包括建立白名单,白名单包括已存在服务器中资源文件的信息,其中资源文件的信息包括MD5值。
进一步的,所述服务器或客户端拦截上传操作还包括调用白名单对上传的资源文件执行检索对比,判断上传的资源文件是否位于白名单内,若是则跳过调用数据库对比,直接执行上传操作,否则调用数据库对上传的资源文件执行检索对比,判断资源文件是否重复。有益效果为这个方法可以过滤掉重复率高但是又必须重复入库的文件。
进一步的,所述执行检索对比通过调用数据库中存储的资源文件的信息进行对比,若MD5值和/或文件路径一致,则判断该资源文件已经存在服务器中,禁止上传操作,否则判断该资源文件未存储在服务器中,允许上传操作。
进一步的,对上传操作中的回滚、删除以及移动操作,跳过调用数据库对比,直接执行对应操作。
进一步的,所述判断资源文件是否重复,若是则禁止上传操作,结束流程,否则允许上传操作还包括,对禁止上传操作的资源文件,可以手动选择上传操作,忽略判断结果。
本发明解决其问题所采用的技术方案另一方面是:一种服务器数据管理系统,其特征在于,包括:数据库模块,用于在服务器中建立数据库,检索当前服务器上所有资源文件的信息,其中资源文件的信息包括MD5值以及文件路径;上传模块,用于对待上传的资源文件执行上传操作,其中上传操作包括但不限于上传导入、锁定文件以及新建目录;拦截模块,用于拦截上传操作,并根据对比模块判断是否允许上传操作;对比判断模块,用于调用数据库对上传的资源文件执行检索对比,判断资源文件是否重复,若是则禁止上传操作,结束流程,否则允许上传操作;数据库更新模块,用于在一次上传操作完成后,检索上传的资源文件信息,将新增的资源文件信息写入数据库,完成数据库的更新。
进一步的,所述数据库模块还包括白名单模块,用于在服务器中建立数据库还包括建立白名单,白名单包括已存在服务器中资源文件的信息,其中资源文件的信息包括MD5值。
进一步的,还包括授权模块,用于直接执行上传操作,权限高于拦截模块。
本发明的有益效果是:本发明采用的一种服务器数据管理方法及系统,从源头减少重复资源的产生,大大减少服务器的存储压力,减少不必要的资源浪费,从而提高了游戏开发的效率,降低后期维护的成本,游戏资源的规范管理对于提高游戏的质量是很有帮助的。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。
需要说明的是,如无特殊说明,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。
本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
参照图1所示为根据本发明较佳实施例的方法流程示意图,
在服务器中建立数据库,检索当前服务器上所有资源文件的信息,其中资源文件的信息包括MD5值以及文件路径;
资源文件的信息除了MD5值和文件路径以外,也可以录入包括SHA-1、CRC32等信息。
对待上传的资源文件执行上传操作,其中上传操作包括但不限于上传导入、锁定文件以及新建目录;
设备通过有线或无线连接方式,与服务器建立通信连接,通过传输协议将资源文件上传到服务器,并向服务器发送上传操作请求。
服务器或客户端拦截上传操作,调用数据库对上传的资源文件执行检索对比,判断资源文件是否重复,若是则禁止上传操作,结束流程,否则允许上传操作;
服务器在接收到上传操作的请求后,获取资源文件的信息,其中资源文件的信息包括MD5值以及文件路径,并调用自身存储的数据库进行对比,判断服务器是否有相同的文件存储在服务器中,若是则拒绝设备发送的上传操作请求,否则运行上传操作。
判断资源文件是否一致的方式还可以是随机以文件块的方式从两个文件中抽取一定大小的内容进行对比。
检索上传的资源文件信息,将新增的资源文件信息写入数据库,完成数据库的更新,其中还包括对旧的资源文件的更新,通过与服务器存储的资源文件的存储路径一致判断为该资源文件的新文件,进行覆盖更新。
在完成一次上传流程后,服务器再次统计存储的资源文件信息,对数据库进行更新,方便下次的资源文件上传操作。
其中,设备客户端对服务器除了发送上传操作外,还可以发送诸如上传导入、锁定文件以及新建目录等操作,
上传导入,客户端将设备中的资源文件通过网络传输给服务器的操作;
锁定文件,将服务器中资源文件进行锁定,禁止修改替换;
新建目录,新建服务器中存储文件的路径,用于将资源文件保存在指定路径。
对于客户端发送的回滚、删除以及移动操作请求,服务器在识别请求内容后,跳过对比步骤,直接执行对应操作,
回滚,将被修改后的资源文件回滚到历史文件,即MD5改变,路径不变,更新此文件在数据库的MD5值。;
删除,删除服务器中存储的资源文件,直接删除此文件在数据库的信息。;
移动,将服务器中存储的资源文件更改路径地址,即更改存储路径,MD5不变,路径改变,更新此文件在数据库的文件路径。
参照图2所示为根据本发明较佳实施例的优化步骤流程示意图
在服务器中建立数据库还包括建立白名单,白名单包括已存在服务器中资源文件的信息,其中资源文件的信息包括MD5值。
服务器在接收到客户端发送的上传操作请求后,先调用白名单对上传的资源文件执行检索对比,判断上传的资源文件是否位于白名单内,若是则跳过调用数据库对比,直接执行上传操作,否则调用数据库对上传的资源文件执行检索对比,判断资源文件是否重复。
调用数据库对上传的资源文件执行检索对比,判断资源文件是否重复,若是则禁止上传操作,结束流程,否则允许上传操作;
检索上传的资源文件信息,将新增的资源文件信息写入数据库,完成数据库的更新。
白名单的加入,可以过滤掉重复率高但是又必须重复入库的文件。
结合图1图2的实施例为,
第一步:建立一个数据库,检索目前服务器上所有资源文件的信息,包括MD5值、文件路径等相关信息更新到数据库。
第二步:建立md5的白名单。检查时如果白名单中包含当前文件,则允许直接上传。这个方法可以过滤掉重复率高但是又必须重复入库的文件。
第三步:拦截客户端的import、check in、new file的操作,先检查白名单中是否包含该文件的MD5值。如果包含则检查通过,允许上传。如果不包含,则继续查询数据库是否存在该文件的MD5值,如果不存在则检查通过,允许上传。如果存在则检查不通过,会把查询出来的相同文件列表列出来提示用户,用户可以选择停止上传还是继续上传。
第四步:拦截客户端roll back、delete、move等操作,此步骤不做检查,只更新相关文件的信息至数据库。
参照图3所示为根据本发明较佳实施例的系统模块框图,
包括:
数据库模块,用于在服务器中建立数据库,检索当前服务器上所有资源文件的信息,其中资源文件的信息包括MD5值以及文件路径,数据库模块还包括白名单模块,用于在服务器中建立数据库还包括建立白名单,白名单包括已存在服务器中资源文件的信息,其中资源文件的信息包括MD5值。;
上传模块,用于对待上传的资源文件执行上传操作,其中上传操作包括但不限于上传导入、锁定文件以及新建目录;
拦截模块,用于拦截上传操作,并根据对比模块判断是否允许上传操作;
对比判断模块,用于调用数据库对上传的资源文件执行检索对比,判断资源文件是否重复,若是则禁止上传操作,结束流程,否则允许上传操作;
数据库更新模块,用于在一次上传操作完成后,检索当前服务器上所有资源文件的信息,完成数据库的更新。
授权模块,用于直接执行上传操作,权限高于拦截模块。
当服务器拒绝上传操作时,客户端可在UI界面显示服务器的拒绝上传提醒,并询问操作人员是否手动选择上传操作,这样的方案可以将某些重要的资源文件再次上传到服务器中进行存储管理。
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。