基于分离存储的文件信息存储方法和文件信息读写方法

文档序号:6625418阅读:188来源:国知局
基于分离存储的文件信息存储方法和文件信息读写方法
【专利摘要】本发明提供一种基于分离存储的文件信息存储方法和文件信息存储方法,所述文件信息存储方法包括以下步骤:检测记录步骤,检测文件中是否存在元数据存放地址的记录,否则跳至新建记录步骤,是则在记录有效时访问并读回元数据和抽取数据;更新元数据判断步骤,判断元数据文件中的内容是否发生改变,是则更新元数据文件后跳转至回填文件步骤,否则跳至回填文件步骤;回填文件步骤,回填抽取数据至文件中以恢复原文件内容;以及,新建记录步骤,新建一个分离存储的元数据存放地址的记录,在原文件中分出一段空间以存放该元数据存放地址,并将抽取数据与元数据一同分离存放至元数据文件。本发明将元数据分离存储,由文件维护自己的元数据存放记录。
【专利说明】基于分离存储的文件信息存储方法和文件信息读写方法

【技术领域】
[0001]本发明涉及一种文件信息存储方法,尤其涉及一种基于分离存储的文件信息存储方法,并涉及其文件信息读写方法。

【背景技术】
[0002]通用文件系统下的文件存储方法会将文件内容与元数据存放在同一文件系统中。其中元数据主要分为两大部分:文件系统维护的元数据以及由文件本身维护的特定文件类型的元数据,文件系统维护的元数据(如文件大小,文件存放起始扇区号等)会与文件内容分别存放,这一部分由文件系统集中管理,访问文件时,会首先访问文件系统维护的元数据块,通过这些数据块找到文件内容所在的扇区,从而操作文件。另一部分由文件本身所维护的元数据会根据文件类型的不同,存放的内容以及方式也都会有所不同,但通常都是嵌入到文件内容本身,与文件作为一个整体存放在磁盘上。处理这类元数据时会由特定的应用程序解析从而做出相应的处理,如Pdf文件会将书签,文本所属语言,水平或垂直模式书写等信息嵌入文件中,由Pdf阅读器读取之后进行相应处理。
[0003]然而随着各种新兴的技术产生,这种传统的文件存储方式已经不能满足特定的高级文件管理功能了,某些情况下需要在文件外部扩展更多的元数据来描述文件。如在安全领域为了检测文件是否被非法访问,需要引入文件被访问次数等记录来达到目的,一般通过拓展元数据的方式来实现。
[0004]目前拓展元数据的方式主要有三种,一种是利用文件系统提供的接口,将扩展的元数据交给文件系统管理,这种方法的缺点是对扩展的元数据大小有明确限制,只能处理少量的数据,在元数据量较大的情况下无法使用。第二种方式是将扩展的元数据存到指定的磁盘空间(如数据库),同时建立一个文件与相应扩展元数据的对应关系,由一种数据结构记录来维护这种对应关系,此方式的缺点是处理不够灵活,需要维护文件对应关系,并且在处理大量文件时,对应记录的查找会浪费大量时间。第三种方式是写在文件本身,同时修改文件的处理逻辑,比如某些透明加密软件需要将文件扩大以容纳额外加密信息,然后通过修改文件系统调用以隐藏该部分额外占用的空间。该方法需要对不同文件系统进行针对性修改,而且对于非开放的文件系统容易出错。


【发明内容】

[0005]本发明所要解决的技术问题是需要针对以上问题,本发明提出一种将元数据分离存储,由文件维护自己的元数据存放记录的基于分离存储的文件信息存储方法,该文件信息存储方法不需要修改文件系统的行为和数据结构,从而达到透明的管理以及使用元数据的作用,并进一步提出相应的基于分离存储的文件读写方法。
[0006]对此,本发明提供一种基于分离存储的文件信息存储方法,包括以下步骤:
检测记录步骤,在打开文件时,首先检测该文件中是否存在元数据存放地址的记录,如果不存在则直接跳转至新建记录步骤;如果存在则首先判断其是否是有效的记录,当记录有效时则根据记录访问并读回元数据和抽取数据;
更新元数据判断步骤,判断元数据文件中的内容是否发生改变,当访问操作涉及抽取数据的内容改变时,则更新元数据文件中备份的抽取数据后跳转至回填文件步骤;当访问操作涉及元数据的内容改变时,则更新元数据文件中备份的元数据后跳转至回填文件步骤;当元数据文件中的内容没有发生改变时,则直接跳转至回填文件步骤;
回填文件步骤,回填抽取数据至文件中以恢复原文件内容,然后访问原文件;
以及,新建记录步骤,新建一个分离存储的元数据存放地址的记录,在原文件中分出一段空间以存放该记录的元数据存放地址的信息,所述一段空间为抽离区,并将被抽取的抽取数据与元数据一同分离存放至元数据文件中,然后访问原文件;
其中,所述原文件的抽离区用于存放元数据存放地址的信息;所述抽离区原本的原文件数据被抽取出来,得到抽取数据;所述抽取数据与元数据一起存放在元数据文件中。
[0007]本发明在原文件中的任意位置腾出一段空间作为抽离区,比如说在原文件开始的部分腾出一个抽离区,该抽离区用来记录元数据存放地址的信息,从而能够找到对应的元数据记录;同时为了做到不改变原文件的内容,本发明将原文件腾出的抽离区中的数据部分抽取出来,作为元数据的一部分存放于元数据文件中,以确保原文件的完整性;对文件进行操作时,通过读取文件中的元数据存放地址记录,找到元数据及抽取数据,将抽取数据填充到原文件的抽离区以获得完整文件内容,同时还能够对获得的元数据进行操作。
[0008]本发明解决了现有技术中需要拓展元数据的情况下,元数据与文件关系记录处理所造成的系统开销过大和效率低下等问题,同时,本发明还能够做到不改变文件系统的现有行为和数据结构,文件操作对文件系统透明的效果,从而普遍适用于各类文件系统。
[0009]本发明的进一步改进在于,所述元数据存放地址的记录中还包含附加信息,在检测记录步骤中,当记录有效时,需要先提取并处理附加信息以获得完整的地址信息,然后再根据记录访问并读回元数据和抽取数据,所述附加信息包括权限、身份认证、编解码算法和有效性验证中至少一种。
[0010]本发明的进一步改进在于,当所述元数据存放地址的记录以独立文件的形式存放于文件系统中,则该元数据存放地址以文件的绝对路径的形式来实现;当所述元数据存放地址的记录存放在数据库中,则该元数据存放地址以数据库的记录键值来实现;当所述元数据存放地址的记录存放在网上或云端时,则该元数据存放地址以一个URL或者自定义的寻址结构来实现。
[0011]本发明的进一步改进在于,所述元数据用于记录访问信息、记录保密信息和原文件本身的部分数据中至少一种。
[0012]本发明的进一步改进在于,所述元数据用于保存访问次数、上一次访问对象以及文件的data内容,所述文件的data内容随机拆分成随机大小的数据块,并将拆分位置P和拆分长度L存入元数据的信息记录中。
[0013]本发明的进一步改进在于,在原文件中,将拆分位置数据清零或用垃圾数据填充,并将包括元数据文件路径和文件访问次数的安全信息存入至原文件的起始位置,将剩余的有效数据进行加密拆分。
[0014]本发明的元数据存放地址记录的结构和形式取决于该元数据记录的实际存放方式,当元数据存放地址的记录以独立文件的形式存放于文件系统中的话,那么该元数据存放地址可以是文件的绝对路径的形式;如果是存放在数据库中的话,该元数据存放地址可以是数据库的记录键值;如果是存放在网上或云端的话,该元数据存放地址可以是一个URL或者是自定义的某种寻址结构。除了元数据存放地址本身外,该元数据存放地址的记录还可以包含其他和读取元数据记录相关的信息,比如权限、身份认证、编解码算法和有效性验证等等。由于该元数据存放地址的记录所占据的原文件数据内容会被抽取出来并同元数据一同存放,因此原文件中的存放地址记录的大小和内容可以非常灵活,能够很好地适应各种情况。
[0015]另外具体元数据的内容也非常灵活,可以用于记录访问信息、记录加密信息以及文件本身的部分数据。该分离存储的元数据文件的空间可以根据需求用来存放对原文件元数据记录的任意扩充,而无需改变原文件的存放、访问和处理方式。
[0016]在一种基于文件拆分的透明加密系统中使用了本发明,元数据文件中不仅保存了如访问次数和上一次访问对象等描述文件的信息,还将文件的data内容随机拆分成随机大小的块,并记录拆分位置P和拆分长度L存入分离存储的元数据记录中。
[0017]分离存储的元数据记录以文件的形式存放在文件系统中,因此原文件中的元数据存放地址记录就是该元数据文件的路径及相关访问信息,具体到这种实现方式下,原文件的更名和移动等操作就不会影响到元数据存放地址信息;当文件发生其他变化时,需要根据元数据描述的内容,决定是否需要更新元数据。
[0018]原文件中,拆分位置数据清零或用垃圾数据填充,并将元数据文件路径和文件访问次数等安全信息存入原文件起始位置或其他索引位置,将剩余有效数据进行加密拆分;本发明通过这种文件信息存储方法能够达到拆分加密的效果。所述索引位置为文件索引的所在位置,用于实现元数据存储地址的索引。
[0019]本发明还提供一种基于分离存储的文件信息读写方法,采用上述的基于分离存储的文件信息存储方法进行文件存储,所述文件信息读写方法包括以下读取步骤:
判断记录步骤,当文件打开时,读取文件中的元数据存放地址的记录,判断记录是否有效,如果有效则跳转至安全监测判断步骤,如果无效则新建一个记录并跳转至信息保存步骤;
安全监测判断步骤,判断该文件是否进行了加密拆分,若否则直接跳转至信息保存步骤;若是,则访问文件索引中的文件访问计数器与元数据文件中的元数据文件访问计数器,比较两者是否相同,如果两者不同则说明文件被非法访问过,此时进行文件安全处理,并返回打开文件失败的信息;如果两者相同,则跳转至信息保存步骤;
以及,信息保存步骤,在内存中保存记录的相应信息,并打开原文件。
[0020]本发明的进一步改进在于,所述元数据文件路径和元数据文件访问次数的信息存放于内存中维护的一个哈希表里。
[0021]本发明的进一步改进在于,所述文件信息读写方法包括以下写入步骤:
读取步骤,开始写文件操作,读取内存中相应的记录,判断是否存在记录,若否则直接实现写原文件的操作,若是则跳装至更新判断步骤;
更新判断步骤,判断是否需要更新记录,若是则更新记录信息后跳装至写入抽离区判断步骤,若否则直接跳装至写入抽离区判断步骤;
写入抽离区判断步骤,判断是否需要将更新记录写入原文件的抽离区,若是则修改元数据文件后跳转至拆分步骤,若否则直接跳转至拆分步骤;
以及,拆分步骤,拆分要写入的数据,并将拆分部分写入元数据文件,实现写原文件的操作。
[0022]本发明的进一步改进在于,所述元数据文件路径和元数据文件访问次数的信息存放于内存中维护的一个哈希表里,所述下写入步骤中,在写文件时,首先判断哈希表中是否存在该文件的记录,如果不存在,则直接放弃处理;如果存在相应记录,则首先判断该文件是否是初次被写入,如果是则需要将哈希表中的元数据路径和元数据文件访问次数所组成的文件索引写入至原文件的抽离区,并将原来需要写入该抽离区的原文件数据写入至元数据文件中。
[0023]与现有技术相比,本发明的有益效果在于,通过分离存储的方式扩展文件的元数据存储空间,通过替换的方式将分离存储的元数据存放地址的记录信息存放在原文件中,并将其占用的原文件空间中的数据抽取出来作为分离存储的元数据文件的一部分进行备份,从而可以完全恢复出原文件所有信息;而且由于本发明对原文件来讲仅仅涉及到其部分内容的替换改变,与底层文件系统无关,文件的长度大小、扇区分配、数据结构和访问管理等等都不受影响,因此适应性非常广。
[0024]另外,由于分离存储的元数据与原文件分开存放,元数据存放地址的记录可以存放在不同的介质或者服务器上,使得可以将元数据的访问同原文件的访问分别控制起来,扩大了元数据的使用范围,比如可以用于以安全为目的的文件的透明拆分加密。
[0025]本发明将元数据存放地址的记录等信息直接存放在原文件中,无需进行对应关系的集中维护,一方面可以降低分离存储关系的维护成本,另一方面也避免了单点失效的问题,而且原文件进行移动和改名等操作也不会导致记录的更新。与本发明不同的是,现有技术中用数据库集中维护的话,则原文件的移动和改名很可能就需要修改映射记录。
[0026]本发明在极小的操作代价下实现了文件的元数据的任意扩充,扩充出来的元数据空间可以用于任何目的,没有空间和结构上的限制,系统额外开销小;同时,由于没有修改原文件中由操作系统以及特定文件类型维护的已有元数据,扩充了分离元数据的文件与标准文件对于文件系统来说是完全一样的,做到了与任意文件系统的兼容。
[0027]分离存储的元数据文件可以批量存放在本地、服务端或者其他介质,可以提供空间给进行更高级的应用级或系统级的安全管理,或者是其他需要以文件为粒度的额外空间的其他任何目的。

【专利附图】

【附图说明】
[0028]图1是本发明一种实施例的元数据存放示意图;
图2是本发明一种实施例的工作流程示意图;
图3是本发明另一种实施例的工作流程示意图;
图4是本发明再一种实施例的工作流程示意图。

【具体实施方式】
[0029]下面结合附图,对本发明的较优的实施例作进一步的详细说明。
[0030]实施例1: 如图1和图2所示,本例提供一种基于分离存储的文件信息存储方法,包括以下步骤:检测记录步骤,在打开文件时,首先检测该文件中是否存在元数据存放地址的记录,如果不存在则直接跳转至新建记录步骤;如果存在则首先判断其是否是有效的记录,当记录有效时则根据记录访问并读回元数据和抽取数据;
更新元数据判断步骤,判断元数据文件中的内容是否发生改变,当访问操作涉及抽取数据的内容改变时,则更新元数据文件中备份的抽取数据后跳转至回填文件步骤;当访问操作涉及元数据的内容改变时,则更新元数据文件中备份的元数据后跳转至回填文件步骤;当元数据文件中的内容没有发生改变时,则直接跳转至回填文件步骤;
回填文件步骤,回填抽取数据至文件中以恢复原文件内容,然后访问原文件;
以及,新建记录步骤,新建一个分离存储的元数据存放地址的记录,在原文件中分出一段空间以存放该记录的元数据存放地址的信息,所述一段空间为抽离区,并将被抽取的抽取数据与元数据一同分离存放至元数据文件中,然后访问原文件;
其中,所述原文件的抽离区用于存放元数据存放地址的信息;所述抽离区原本的原文件数据被抽取出来,得到抽取数据;所述抽取数据与元数据一起存放在元数据文件中。
[0031]如图1所示,本例在原文件中的任意位置腾出一段空间作为抽离区,比如在原文件开始的部分腾出一个抽离区,该抽离区用来记录元数据存放地址的信息,从而能够找到对应的元数据记录;同时为了做到不改变原文件的内容,本例将原文件腾出的抽离区中的数据部分抽取出来,作为元数据的一部分存放于元数据文件中,以确保原文件的完整性;对文件进行操作时,通过读取文件中的元数据存放地址记录,找到元数据及抽取数据,将抽取数据填充到原文件的抽离区以获得完整文件内容,同时还能够对获得的元数据进行操作。
[0032]本例解决了现有技术中需要拓展元数据的情况下,元数据与文件关系记录处理所造成的系统开销过大和效率低下等问题,同时,本例还能够做到不改变文件系统的现有行为和数据结构,文件操作对文件系统透明的效果,从而普遍适用于各类文件系统。
[0033]现有技术中,提出了一种元数据属性的混合索引方法,这种现有的混合索引方法依据各元数据属性被使用频率、创建时间和最近被访问时间,将元数据属性划分为高频元数据属性和低频元数据属性,针对高频和低频元数据属性的特性,分别使用KD-tree、B-tree树和人工免疫算法建立索引,并给出了新型元数据管理系统的结构,介绍了主要模块的功能和流程,但是这种现有技术在通用文件系统下,这种设计架构繁琐,开销过大,同时当系统中需要处理的文件较少时,这种优化算法显得并不高效。
[0034]现有技术中还有通过多文件驱动技术改变操作系统的数据存储结构,使得所有文件的读取访问都必须按照新构建的过程才能完成;对每一个涉密电子文档赋予一个唯一的、不可分离的数据标识,并以不可分离的方式嵌入到电子文件中;但这种现有技术将拓展的元数据写入文件本身,修改了文件的内容,改变了文件的大小,文件在存储介质中的实际大小与系统记录不一致,需要额外的监控和转换手段防止该不一致影响文件系统的正常工作;另一方面,由于将元数据嵌入文件中,导致元数据无法扩展,无法集中管理元数据,不能用于文件内容安全保密等缺点。
[0035]本例所述元数据存放地址的记录中还优选包含附加信息,在检测记录步骤中,当记录有效时,需要先提取并处理附加信息以获得完整的地址信息,然后再根据记录访问并读回元数据和抽取数据,所述附加信息包括权限、身份认证、编解码算法和有效性验证中至少一种。
[0036]本例当所述元数据存放地址的记录以独立文件的形式存放于文件系统中,则该元数据存放地址以文件的绝对路径的形式来实现;当所述元数据存放地址的记录存放在数据库中,则该元数据存放地址以数据库的记录键值来实现;当所述元数据存放地址的记录存放在网上或云端时,则该元数据存放地址以一个URL或者自定义的寻址结构来实现。所述元数据用于记录访问信息、记录保密信息和原文件本身的部分数据中至少一种。
[0037]本例所述元数据用于保存访问次数、上一次访问对象以及文件的data内容,所述文件的data内容随机拆分成随机大小的数据块,并将拆分位置P和拆分长度L存入元数据的信息记录中。
[0038]本例在原文件中,将拆分位置数据清零或用垃圾数据填充,并将包括元数据文件路径和文件访问次数的安全信息存入至原文件的起始位置,将剩余的有效数据进行加密拆分。
[0039]本例的元数据存放地址记录的结构和形式取决于该元数据记录的实际存放方式,当元数据存放地址的记录以独立文件的形式存放于文件系统中的话,那么该元数据存放地址可以是文件的绝对路径的形式;如果是存放在数据库中的话,该元数据存放地址可以是数据库的记录键值;如果是存放在网上或云端的话,该元数据存放地址可以是一个URL或者是自定义的某种寻址结构。除了元数据存放地址本身外,该元数据存放地址的记录还可以包含其他和读取元数据记录相关的信息,比如权限、身份认证、编解码算法和有效性验证等等。由于该元数据存放地址的记录所占据的原文件数据内容会被抽取出来并同元数据一同存放,因此原文件中的存放地址记录的大小和内容可以非常灵活,能够很好地适应各种情况。
[0040]另外具体元数据的内容也非常灵活,可以用于记录访问信息、记录加密信息以及文件本身的部分数据。该分离存储的元数据文件的空间可以根据需求用来存放对原文件元数据记录的任意扩充,而无需改变原文件的存放、访问和处理方式。
[0041]更为具体的,本例的有益效果在于,通过分离存储的方式扩展文件的元数据存储空间,通过替换的方式将分离存储的元数据存放地址的记录信息存放在原文件中,并将其占用的原文件空间中的数据抽取出来作为分离存储的元数据文件的一部分进行备份,从而可以完全恢复出原文件所有信息;而且由于本例对原文件来讲仅仅涉及到其部分内容的替换改变,与底层文件系统无关,文件的长度大小、扇区分配、数据结构和访问管理等等都不受影响,因此适应性非常广。
[0042]另外,由于分离存储的元数据与原文件分开存放,元数据存放地址的记录可以存放在不同的介质或者服务器上,使得可以将元数据的访问同原文件的访问分别控制起来,扩大了元数据的使用范围,比如可以用于以安全为目的的文件的透明拆分加密。
[0043]本例将元数据存放地址的记录等信息直接存放在原文件中,无需进行对应关系的集中维护,一方面可以降低分离存储关系的维护成本,另一方面也避免了单点失效的问题,而且原文件进行移动和改名等操作也不会导致记录的更新。与本例不同的是,现有技术中用数据库集中维护的话,则原文件的移动和改名很可能就需要修改映射记录。
[0044]本例在极小的操作代价下实现了文件的元数据的任意扩充,扩充出来的元数据空间可以用于任何目的,没有空间和结构上的限制,系统额外开销小;同时,由于没有修改原文件中由操作系统以及特定文件类型维护的已有元数据,扩充了分离元数据的文件与标准文件对于文件系统来说是完全一样的,做到了与任意文件系统的兼容。
[0045]分离存储的元数据文件可以批量存放在本地、服务端或者其他介质,可以提供空间给进行更高级的应用级或系统级的安全管理,或者是其他需要以文件为粒度的额外空间的其他任何目的。
[0046]实施例2:
如图3所示,本例还提供一种基于分离存储的文件信息读写方法,本例采用实施例1所述的基于分离存储的文件信息存储方法进行文件存储,所述文件信息读写方法包括以下读取步骤:
判断记录步骤,当文件打开时,读取文件中的元数据存放地址的记录,判断记录是否有效,如果有效则跳转至安全监测判断步骤,如果无效则新建一个记录并跳转至信息保存步骤;
安全监测判断步骤,判断该文件是否进行了加密拆分,若否则直接跳转至信息保存步骤;若是,则访问文件索引中的文件访问计数器与元数据文件中的元数据文件访问计数器,比较两者是否相同,如果两者不同则说明文件被非法访问过,此时进行文件安全处理,并返回打开文件失败的信息;如果两者相同,则跳转至信息保存步骤;
以及,信息保存步骤,在内存中保存记录的相应信息,并打开原文件。
[0047]本例所述元数据文件路径和元数据文件访问次数的信息存放于内存中维护的一个哈希表里。
[0048]在基于文件拆分的透明加密系统中使用了实施例1或实施例2所述的文件信息存储方法,元数据文件中不仅保存了如访问次数,上一次访问对象等描述文件的信息,还将文件的data内容随机拆分成随机大小的块,并记录拆分位置P和拆分长度L,存入分离存储的元数据记录中。
[0049]分离存储的元数据记录以文件的形式存放在文件系统中,因此原文件中的元数据存放地址的记录就是该元数据文件的路径及相关访问信息。具体到这种实现方式下,原文件的更名和移动等操作就不会影响到元数据存放地址信息。当文件发生其他变化时,需要根据元数据描述的内容,决定是否需要更新元数据。
[0050]原文件中,拆分位置数据清零或用垃圾数据填充,并将元数据文件路径,文件访问次数等安全信息存入原文件起始位置,将剩余有效数据进行加密拆分,本发明可以通过这种文件存放方式,达到拆分加密的效果。
[0051]实施例3:
如图4所述,在实施例2的基础上,本例所述文件信息读写方法包括以下写入步骤:
读取步骤,开始写文件操作,读取内存中相应的记录,判断是否存在记录,若否则直接实现写原文件的操作,若是则跳装至更新判断步骤;
更新判断步骤,判断是否需要更新记录,若是则更新记录信息后跳装至写入抽离区判断步骤,若否则直接跳装至写入抽离区判断步骤;
写入抽离区判断步骤,判断是否需要将更新记录写入原文件的抽离区,若是则修改元数据文件后跳转至拆分步骤,若否则直接跳转至拆分步骤;
以及,拆分步骤,拆分要写入的数据,并将拆分部分写入元数据文件,实现写原文件的操作。
[0052]本例所述下写入步骤中,在写文件时,首先判断哈希表中是否存在该文件的记录,如果不存在,则直接放弃处理;如果存在相应记录,则首先判断该文件是否是初次被写入,如果是则需要将哈希表中的元数据路径和元数据文件访问次数所组成的文件索引写入至原文件的抽离区,并将原来需要写入该抽离区的原文件数据写入至元数据文件中。
[0053]以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属【技术领域】的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
【权利要求】
1.一种基于分离存储的文件信息存储方法,其特征在于,包括以下步骤: 检测记录步骤,在打开文件时,首先检测该文件中是否存在元数据存放地址的记录,如果不存在则直接跳转至新建记录步骤;如果存在则首先判断其是否是有效的记录,当记录有效时则根据记录访问并读回元数据和抽取数据; 更新元数据判断步骤,判断元数据文件中的内容是否发生改变,当访问操作涉及抽取数据的内容改变时,则更新元数据文件中备份的抽取数据后跳转至回填文件步骤;当访问操作涉及元数据的内容改变时,则更新元数据文件中备份的元数据后跳转至回填文件步骤;当元数据文件中的内容没有发生改变时,则直接跳转至回填文件步骤; 回填文件步骤,回填抽取数据至文件中以恢复原文件内容,然后访问原文件; 以及,新建记录步骤,新建一个分离存储的元数据存放地址的记录,在原文件中分出一段空间以存放该记录的元数据存放地址的信息,所述一段空间为抽离区,并将被抽取的抽取数据与元数据一同分离存放至元数据文件中,然后访问原文件; 其中,所述原文件的抽离区用于存放元数据存放地址的信息;所述抽离区原本的原文件数据被抽取出来,得到抽取数据;所述抽取数据与元数据一起存放在元数据文件中。
2.根据权利要求1所述的基于分离存储的文件信息存储方法,其特征在于,所述元数据存放地址的记录中还包含附加信息,在检测记录步骤中,当记录有效时,需要先提取并处理附加信息以获得完整的地址信息,然后再根据记录访问并读回元数据和抽取数据,所述附加信息包括权限、身份认证、编解码算法和有效性验证中至少一种。
3.根据权利要求1所述的基于分离存储的文件信息存储方法,其特征在于,当所述元数据存放地址的记录以独立文件的形式存放于文件系统中,则该元数据存放地址以文件的绝对路径的形式来实现;当所述元数据存放地址的记录存放在数据库中,则该元数据存放地址以数据库的记录键值来实现;当所述元数据存放地址的记录存放在网上或云端时,则该元数据存放地址以一个URL或者自定义的寻址结构来实现。
4.根据权利要求1至3任意一项所述的基于分离存储的文件信息存储方法,其特征在于,所述元数据用于记录访问信息、记录保密信息和原文件本身的部分数据中至少一种。
5.根据权利要求1至3任意一项所述的基于分离存储的文件信息存储方法,其特征在于,所述元数据用于保存访问次数、上一次访问对象以及文件的data内容,所述文件的data内容随机拆分成随机大小的数据块,并将拆分位置P和拆分长度L存入元数据的信息记录中。
6.根据权利要求5所述的基于分离存储的文件信息存储方法,其特征在于,在原文件中,将拆分位置数据清零或用垃圾数据填充,并将包括元数据文件路径和文件访问次数的安全信息存入至原文件的起始位置,将剩余的有效数据进行加密拆分。
7.一种基于分离存储的文件信息读写方法,其特征在于,米用如权利要求1至6任意一项所述的基于分离存储的文件信息存储方法进行文件存储,所述文件信息读写方法包括以下读取步骤: 判断记录步骤,当文件打开时,读取文件中的元数据存放地址的记录,判断记录是否有效,如果有效则跳转至安全监测判断步骤,如果无效则新建一个记录并跳转至信息保存步骤; 安全监测判断步骤,判断该文件是否进行了加密拆分,若否则直接跳转至信息保存步骤;若是,则访问文件索引中的文件访问计数器与元数据文件中的元数据文件访问计数器,比较两者是否相同,如果两者不同则说明文件被非法访问过,此时进行文件安全处理,并返回打开文件失败的信息;如果两者相同,则跳转至信息保存步骤; 以及,信息保存步骤,在内存中保存记录的相应信息,并打开原文件。
8.根据权利要求7所述的基于分离存储的文件信息读写方法,其特征在于,所述元数据文件路径和元数据文件访问次数的信息存放于内存中维护的一个哈希表里。
9.根据权利要求8所述的基于分离存储的文件信息读写方法,其特征在于,所述文件信息读写方法包括以下写入步骤: 读取步骤,开始写文件操作,读取内存中相应的记录,判断是否存在记录,若否则直接实现写原文件的操作,若是则跳装至更新判断步骤; 更新判断步骤,判断是否需要更新记录,若是则更新记录信息后跳装至写入抽离区判断步骤,若否则直接跳装至写入抽离区判断步骤; 写入抽离区判断步骤,判断是否需要将更新记录写入原文件的抽离区,若是则修改元数据文件后跳转至拆分步骤,若否则直接跳转至拆分步骤; 以及,拆分步骤,拆分要写入的数据,并将拆分部分写入元数据文件,实现写原文件的操作。
10.根据权利要求9所述的基于分离存储的文件信息读写方法,其特征在于,所述元数据文件路径和元数据文件访问次数的信息存放于内存中维护的一个哈希表里,所述下写入步骤中,在写文件时,首先判断哈希表中是否存在该文件的记录,如果不存在,则直接放弃处理;如果存在相应记录,则首先判断该文件是否是初次被写入,如果是则需要将哈希表中的元数据路径和元数据文件访问次数所组成的文件索引写入至原文件的抽离区,并将原来需要写入该抽离区的原文件数据写入至元数据文件中。
【文档编号】G06F17/30GK104239438SQ201410437750
【公开日】2014年12月24日 申请日期:2014年8月29日 优先权日:2014年8月29日
【发明者】李大刚, 汪洋, 林信南, 朱晓阳 申请人:北京大学深圳研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1