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

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

Info

Publication number
CN104239438B
CN104239438B CN201410437750.5A CN201410437750A CN104239438B CN 104239438 B CN104239438 B CN 104239438B CN 201410437750 A CN201410437750 A CN 201410437750A CN 104239438 B CN104239438 B CN 104239438B
Authority
CN
China
Prior art keywords
file
metadata
record
information
original
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410437750.5A
Other languages
English (en)
Other versions
CN104239438A (zh
Inventor
李大刚
汪洋
林信南
朱晓阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University Shenzhen Graduate School
Original Assignee
Peking University Shenzhen Graduate School
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University Shenzhen Graduate School filed Critical Peking University Shenzhen Graduate School
Priority to CN201410437750.5A priority Critical patent/CN104239438B/zh
Publication of CN104239438A publication Critical patent/CN104239438A/zh
Application granted granted Critical
Publication of CN104239438B publication Critical patent/CN104239438B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1737Details of further file system functions for reducing power consumption or coping with limited storage space, e.g. in mobile devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

基于分离存储的文件信息存储方法和文件信息读写方法
技术领域
本发明涉及一种文件信息存储方法,尤其涉及一种基于分离存储的文件信息存储方法,并涉及其文件信息读写方法。
背景技术
通用文件系统下的文件存储方法会将文件内容与元数据存放在同一文件系统中。其中元数据主要分为两大部分:文件系统维护的元数据以及由文件本身维护的特定文件类型的元数据,文件系统维护的元数据(如文件大小,文件存放起始扇区号等)会与文件内容分别存放,这一部分由文件系统集中管理,访问文件时,会首先访问文件系统维护的元数据块,通过这些数据块找到文件内容所在的扇区,从而操作文件。另一部分由文件本身所维护的元数据会根据文件类型的不同,存放的内容以及方式也都会有所不同,但通常都是嵌入到文件内容本身,与文件作为一个整体存放在磁盘上。处理这类元数据时会由特定的应用程序解析从而做出相应的处理,如pdf文件会将书签,文本所属语言,水平或垂直模式书写等信息嵌入文件中,由pdf阅读器读取之后进行相应处理。
然而随着各种新兴的技术产生,这种传统的文件存储方式已经不能满足特定的高级文件管理功能了,某些情况下需要在文件外部扩展更多的元数据来描述文件。如在安全领域为了检测文件是否被非法访问,需要引入文件被访问次数等记录来达到目的,一般通过拓展元数据的方式来实现。
目前拓展元数据的方式主要有三种,一种是利用文件系统提供的接口,将扩展的元数据交给文件系统管理,这种方法的缺点是对扩展的元数据大小有明确限制,只能处理少量的数据,在元数据量较大的情况下无法使用。第二种方式是将扩展的元数据存到指定的磁盘空间(如数据库),同时建立一个文件与相应扩展元数据的对应关系,由一种数据结构记录来维护这种对应关系,此方式的缺点是处理不够灵活,需要维护文件对应关系,并且在处理大量文件时,对应记录的查找会浪费大量时间。第三种方式是写在文件本身,同时修改文件的处理逻辑,比如某些透明加密软件需要将文件扩大以容纳额外加密信息,然后通过修改文件系统调用以隐藏该部分额外占用的空间。该方法需要对不同文件系统进行针对性修改,而且对于非开放的文件系统容易出错。
发明内容
本发明所要解决的技术问题是需要针对以上问题,本发明提出一种将元数据分离存储,由文件维护自己的元数据存放记录的基于分离存储的文件信息存储方法,该文件信息存储方法不需要修改文件系统的行为和数据结构,从而达到透明的管理以及使用元数据的作用,并进一步提出相应的基于分离存储的文件读写方法。
对此,本发明提供一种基于分离存储的文件信息存储方法,包括以下步骤:
检测记录步骤,在打开文件时,首先检测该文件中是否存在元数据存放地址的记录,如果不存在则直接跳转至新建记录步骤;如果存在则首先判断其是否是有效的记录,当记录有效时则根据记录访问并读回元数据和抽取数据;
更新元数据判断步骤,判断元数据文件中的内容是否发生改变,当访问操作涉及抽取数据的内容改变时,则更新元数据文件中备份的抽取数据后跳转至回填文件步骤;当访问操作涉及元数据的内容改变时,则更新元数据文件中备份的元数据后跳转至回填文件步骤;当元数据文件中的内容没有发生改变时,则直接跳转至回填文件步骤;
回填文件步骤,回填抽取数据至文件中以恢复原文件内容,然后访问原文件;
以及,新建记录步骤,新建一个分离存储的元数据存放地址的记录,在原文件中分出一段空间以存放该记录的元数据存放地址的信息,所述一段空间为抽离区,并将被抽取的抽取数据与元数据一同分离存放至元数据文件中,然后访问原文件;
其中,所述原文件的抽离区用于存放元数据存放地址的信息;所述抽离区原本的原文件数据被抽取出来,得到抽取数据;所述抽取数据与元数据一起存放在元数据文件中。
本发明在原文件中的任意位置腾出一段空间作为抽离区,比如说在原文件开始的部分腾出一个抽离区,该抽离区用来记录元数据存放地址的信息,从而能够找到对应的元数据记录;同时为了做到不改变原文件的内容,本发明将原文件腾出的抽离区中的数据部分抽取出来,作为元数据的一部分存放于元数据文件中,以确保原文件的完整性;对文件进行操作时,通过读取文件中的元数据存放地址记录,找到元数据及抽取数据,将抽取数据填充到原文件的抽离区以获得完整文件内容,同时还能够对获得的元数据进行操作。
本发明解决了现有技术中需要拓展元数据的情况下,元数据与文件关系记录处理所造成的系统开销过大和效率低下等问题,同时,本发明还能够做到不改变文件系统的现有行为和数据结构,文件操作对文件系统透明的效果,从而普遍适用于各类文件系统。
本发明的进一步改进在于,所述元数据存放地址的记录中还包含附加信息,在检测记录步骤中,当记录有效时,需要先提取并处理附加信息以获得完整的地址信息,然后再根据记录访问并读回元数据和抽取数据,所述附加信息包括权限、身份认证、编解码算法和有效性验证中至少一种。
本发明的进一步改进在于,当所述元数据存放地址的记录以独立文件的形式存放于文件系统中,则该元数据存放地址以文件的绝对路径的形式来实现;当所述元数据存放地址的记录存放在数据库中,则该元数据存放地址以数据库的记录键值来实现;当所述元数据存放地址的记录存放在网上或云端时,则该元数据存放地址以一个URL或者自定义的寻址结构来实现。
本发明的进一步改进在于,所述元数据用于记录访问信息、记录保密信息和原文件本身的部分数据中至少一种。
本发明的进一步改进在于,所述元数据用于保存访问次数、上一次访问对象以及文件的data内容,所述文件的data内容随机拆分成随机大小的数据块,并将拆分位置P和拆分长度L存入元数据的信息记录中。
本发明的进一步改进在于,在原文件中,将拆分位置数据清零或用垃圾数据填充,并将包括元数据文件路径和文件访问次数的安全信息存入至原文件的起始位置,将剩余的有效数据进行加密拆分。
本发明的元数据存放地址记录的结构和形式取决于该元数据记录的实际存放方式,当元数据存放地址的记录以独立文件的形式存放于文件系统中的话,那么该元数据存放地址可以是文件的绝对路径的形式;如果是存放在数据库中的话,该元数据存放地址可以是数据库的记录键值;如果是存放在网上或云端的话,该元数据存放地址可以是一个URL或者是自定义的某种寻址结构。除了元数据存放地址本身外,该元数据存放地址的记录还可以包含其他和读取元数据记录相关的信息,比如权限、身份认证、编解码算法和有效性验证等等。由于该元数据存放地址的记录所占据的原文件数据内容会被抽取出来并同元数据一同存放,因此原文件中的存放地址记录的大小和内容可以非常灵活,能够很好地适应各种情况。
另外具体元数据的内容也非常灵活,可以用于记录访问信息、记录加密信息以及文件本身的部分数据。该分离存储的元数据文件的空间可以根据需求用来存放对原文件元数据记录的任意扩充,而无需改变原文件的存放、访问和处理方式。
在一种基于文件拆分的透明加密系统中使用了本发明,元数据文件中不仅保存了如访问次数和上一次访问对象等描述文件的信息,还将文件的data内容随机拆分成随机大小的块,并记录拆分位置P和拆分长度L存入分离存储的元数据记录中。
分离存储的元数据记录以文件的形式存放在文件系统中,因此原文件中的元数据存放地址记录就是该元数据文件的路径及相关访问信息,具体到这种实现方式下,原文件的更名和移动等操作就不会影响到元数据存放地址信息;当文件发生其他变化时,需要根据元数据描述的内容,决定是否需要更新元数据。
原文件中,拆分位置数据清零或用垃圾数据填充,并将元数据文件路径和文件访问次数等安全信息存入原文件起始位置或其他索引位置,将剩余有效数据进行加密拆分;本发明通过这种文件信息存储方法能够达到拆分加密的效果。所述索引位置为文件索引的所在位置,用于实现元数据存储地址的索引。
本发明还提供一种基于分离存储的文件信息读写方法,采用上述的基于分离存储的文件信息存储方法进行文件存储,所述文件信息读写方法包括以下读取步骤:
判断记录步骤,当文件打开时,读取文件中的元数据存放地址的记录,判断记录是否有效,如果有效则跳转至安全监测判断步骤,如果无效则新建一个记录并跳转至信息保存步骤;
安全监测判断步骤,判断该文件是否进行了加密拆分,若否则直接跳转至信息保存步骤;若是,则访问文件索引中的文件访问计数器与元数据文件中的元数据文件访问计数器,比较两者是否相同,如果两者不同则说明文件被非法访问过,此时进行文件安全处理,并返回打开文件失败的信息;如果两者相同,则跳转至信息保存步骤;
以及,信息保存步骤,在内存中保存记录的相应信息,并打开原文件。
本发明的进一步改进在于,所述元数据文件路径和元数据文件访问次数的信息存放于内存中维护的一个哈希表里。
本发明的进一步改进在于,所述文件信息读写方法包括以下写入步骤:
读取步骤,开始写文件操作,读取内存中相应的记录,判断是否存在记录,若否则直接实现写原文件的操作,若是则跳装至更新判断步骤;
更新判断步骤,判断是否需要更新记录,若是则更新记录信息后跳装至写入抽离区判断步骤,若否则直接跳装至写入抽离区判断步骤;
写入抽离区判断步骤,判断是否需要将更新记录写入原文件的抽离区,若是则修改元数据文件后跳转至拆分步骤,若否则直接跳转至拆分步骤;
以及,拆分步骤,拆分要写入的数据,并将拆分部分写入元数据文件,实现写原文件的操作。
本发明的进一步改进在于,所述元数据文件路径和元数据文件访问次数的信息存放于内存中维护的一个哈希表里,所述下写入步骤中,在写文件时,首先判断哈希表中是否存在该文件的记录,如果不存在,则直接放弃处理;如果存在相应记录,则首先判断该文件是否是初次被写入,如果是则需要将哈希表中的元数据路径和元数据文件访问次数所组成的文件索引写入至原文件的抽离区,并将原来需要写入该抽离区的原文件数据写入至元数据文件中。
与现有技术相比,本发明的有益效果在于,通过分离存储的方式扩展文件的元数据存储空间,通过替换的方式将分离存储的元数据存放地址的记录信息存放在原文件中,并将其占用的原文件空间中的数据抽取出来作为分离存储的元数据文件的一部分进行备份,从而可以完全恢复出原文件所有信息;而且由于本发明对原文件来讲仅仅涉及到其部分内容的替换改变,与底层文件系统无关,文件的长度大小、扇区分配、数据结构和访问管理等等都不受影响,因此适应性非常广。
另外,由于分离存储的元数据与原文件分开存放,元数据存放地址的记录可以存放在不同的介质或者服务器上,使得可以将元数据的访问同原文件的访问分别控制起来,扩大了元数据的使用范围,比如可以用于以安全为目的的文件的透明拆分加密。
本发明将元数据存放地址的记录等信息直接存放在原文件中,无需进行对应关系的集中维护,一方面可以降低分离存储关系的维护成本,另一方面也避免了单点失效的问题,而且原文件进行移动和改名等操作也不会导致记录的更新。与本发明不同的是,现有技术中用数据库集中维护的话,则原文件的移动和改名很可能就需要修改映射记录。
本发明在极小的操作代价下实现了文件的元数据的任意扩充,扩充出来的元数据空间可以用于任何目的,没有空间和结构上的限制,系统额外开销小;同时,由于没有修改原文件中由操作系统以及特定文件类型维护的已有元数据,扩充了分离元数据的文件与标准文件对于文件系统来说是完全一样的,做到了与任意文件系统的兼容。
分离存储的元数据文件可以批量存放在本地、服务端或者其他介质,可以提供空间给进行更高级的应用级或系统级的安全管理,或者是其他需要以文件为粒度的额外空间的其他任何目的。
附图说明
图1是本发明一种实施例的元数据存放示意图;
图2是本发明一种实施例的工作流程示意图;
图3是本发明另一种实施例的工作流程示意图;
图4是本发明再一种实施例的工作流程示意图。
具体实施方式
下面结合附图,对本发明的较优的实施例作进一步的详细说明。
实施例1:
如图1和图2所示,本例提供一种基于分离存储的文件信息存储方法,包括以下步骤:
检测记录步骤,在打开文件时,首先检测该文件中是否存在元数据存放地址的记录,如果不存在则直接跳转至新建记录步骤;如果存在则首先判断其是否是有效的记录,当记录有效时则根据记录访问并读回元数据和抽取数据;
更新元数据判断步骤,判断元数据文件中的内容是否发生改变,当访问操作涉及抽取数据的内容改变时,则更新元数据文件中备份的抽取数据后跳转至回填文件步骤;当访问操作涉及元数据的内容改变时,则更新元数据文件中备份的元数据后跳转至回填文件步骤;当元数据文件中的内容没有发生改变时,则直接跳转至回填文件步骤;
回填文件步骤,回填抽取数据至文件中以恢复原文件内容,然后访问原文件;
以及,新建记录步骤,新建一个分离存储的元数据存放地址的记录,在原文件中分出一段空间以存放该记录的元数据存放地址的信息,所述一段空间为抽离区,并将被抽取的抽取数据与元数据一同分离存放至元数据文件中,然后访问原文件;
其中,所述原文件的抽离区用于存放元数据存放地址的信息;所述抽离区原本的原文件数据被抽取出来,得到抽取数据;所述抽取数据与元数据一起存放在元数据文件中。
如图1所示,本例在原文件中的任意位置腾出一段空间作为抽离区,比如在原文件开始的部分腾出一个抽离区,该抽离区用来记录元数据存放地址的信息,从而能够找到对应的元数据记录;同时为了做到不改变原文件的内容,本例将原文件腾出的抽离区中的数据部分抽取出来,作为元数据的一部分存放于元数据文件中,以确保原文件的完整性;对文件进行操作时,通过读取文件中的元数据存放地址记录,找到元数据及抽取数据,将抽取数据填充到原文件的抽离区以获得完整文件内容,同时还能够对获得的元数据进行操作。
本例解决了现有技术中需要拓展元数据的情况下,元数据与文件关系记录处理所造成的系统开销过大和效率低下等问题,同时,本例还能够做到不改变文件系统的现有行为和数据结构,文件操作对文件系统透明的效果,从而普遍适用于各类文件系统。
现有技术中,提出了一种元数据属性的混合索引方法,这种现有的混合索引方法依据各元数据属性被使用频率、创建时间和最近被访问时间,将元数据属性划分为高频元数据属性和低频元数据属性,针对高频和低频元数据属性的特性,分别使用KD-tree、B-tree树和人工免疫算法建立索引,并给出了新型元数据管理系统的结构,介绍了主要模块的功能和流程,但是这种现有技术在通用文件系统下,这种设计架构繁琐,开销过大,同时当系统中需要处理的文件较少时,这种优化算法显得并不高效。
现有技术中还有通过多文件驱动技术改变操作系统的数据存储结构,使得所有文件的读取访问都必须按照新构建的过程才能完成;对每一个涉密电子文档赋予一个唯一的、不可分离的数据标识,并以不可分离的方式嵌入到电子文件中;但这种现有技术将拓展的元数据写入文件本身,修改了文件的内容,改变了文件的大小,文件在存储介质中的实际大小与系统记录不一致,需要额外的监控和转换手段防止该不一致影响文件系统的正常工作;另一方面,由于将元数据嵌入文件中,导致元数据无法扩展,无法集中管理元数据,不能用于文件内容安全保密等缺点。
本例所述元数据存放地址的记录中还优选包含附加信息,在检测记录步骤中,当记录有效时,需要先提取并处理附加信息以获得完整的地址信息,然后再根据记录访问并读回元数据和抽取数据,所述附加信息包括权限、身份认证、编解码算法和有效性验证中至少一种。
本例当所述元数据存放地址的记录以独立文件的形式存放于文件系统中,则该元数据存放地址以文件的绝对路径的形式来实现;当所述元数据存放地址的记录存放在数据库中,则该元数据存放地址以数据库的记录键值来实现;当所述元数据存放地址的记录存放在网上或云端时,则该元数据存放地址以一个URL或者自定义的寻址结构来实现。所述元数据用于记录访问信息、记录保密信息和原文件本身的部分数据中至少一种。
本例所述元数据用于保存访问次数、上一次访问对象以及文件的data内容,所述文件的data内容随机拆分成随机大小的数据块,并将拆分位置P和拆分长度L存入元数据的信息记录中。
本例在原文件中,将拆分位置数据清零或用垃圾数据填充,并将包括元数据文件路径和文件访问次数的安全信息存入至原文件的起始位置,将剩余的有效数据进行加密拆分。
本例的元数据存放地址记录的结构和形式取决于该元数据记录的实际存放方式,当元数据存放地址的记录以独立文件的形式存放于文件系统中的话,那么该元数据存放地址可以是文件的绝对路径的形式;如果是存放在数据库中的话,该元数据存放地址可以是数据库的记录键值;如果是存放在网上或云端的话,该元数据存放地址可以是一个URL或者是自定义的某种寻址结构。除了元数据存放地址本身外,该元数据存放地址的记录还可以包含其他和读取元数据记录相关的信息,比如权限、身份认证、编解码算法和有效性验证等等。由于该元数据存放地址的记录所占据的原文件数据内容会被抽取出来并同元数据一同存放,因此原文件中的存放地址记录的大小和内容可以非常灵活,能够很好地适应各种情况。
另外具体元数据的内容也非常灵活,可以用于记录访问信息、记录加密信息以及文件本身的部分数据。该分离存储的元数据文件的空间可以根据需求用来存放对原文件元数据记录的任意扩充,而无需改变原文件的存放、访问和处理方式。
更为具体的,本例的有益效果在于,通过分离存储的方式扩展文件的元数据存储空间,通过替换的方式将分离存储的元数据存放地址的记录信息存放在原文件中,并将其占用的原文件空间中的数据抽取出来作为分离存储的元数据文件的一部分进行备份,从而可以完全恢复出原文件所有信息;而且由于本例对原文件来讲仅仅涉及到其部分内容的替换改变,与底层文件系统无关,文件的长度大小、扇区分配、数据结构和访问管理等等都不受影响,因此适应性非常广。
另外,由于分离存储的元数据与原文件分开存放,元数据存放地址的记录可以存放在不同的介质或者服务器上,使得可以将元数据的访问同原文件的访问分别控制起来,扩大了元数据的使用范围,比如可以用于以安全为目的的文件的透明拆分加密。
本例将元数据存放地址的记录等信息直接存放在原文件中,无需进行对应关系的集中维护,一方面可以降低分离存储关系的维护成本,另一方面也避免了单点失效的问题,而且原文件进行移动和改名等操作也不会导致记录的更新。与本例不同的是,现有技术中用数据库集中维护的话,则原文件的移动和改名很可能就需要修改映射记录。
本例在极小的操作代价下实现了文件的元数据的任意扩充,扩充出来的元数据空间可以用于任何目的,没有空间和结构上的限制,系统额外开销小;同时,由于没有修改原文件中由操作系统以及特定文件类型维护的已有元数据,扩充了分离元数据的文件与标准文件对于文件系统来说是完全一样的,做到了与任意文件系统的兼容。
分离存储的元数据文件可以批量存放在本地、服务端或者其他介质,可以提供空间给进行更高级的应用级或系统级的安全管理,或者是其他需要以文件为粒度的额外空间的其他任何目的。
实施例2:
如图3所示,本例还提供一种基于分离存储的文件信息读写方法,本例采用实施例1所述的基于分离存储的文件信息存储方法进行文件存储,所述文件信息读写方法包括以下读取步骤:
判断记录步骤,当文件打开时,读取文件中的元数据存放地址的记录,判断记录是否有效,如果有效则跳转至安全监测判断步骤,如果无效则新建一个记录并跳转至信息保存步骤;
安全监测判断步骤,判断该文件是否进行了加密拆分,若否则直接跳转至信息保存步骤;若是,则访问文件索引中的文件访问计数器与元数据文件中的元数据文件访问计数器,比较两者是否相同,如果两者不同则说明文件被非法访问过,此时进行文件安全处理,并返回打开文件失败的信息;如果两者相同,则跳转至信息保存步骤;
以及,信息保存步骤,在内存中保存记录的相应信息,并打开原文件。
本例所述元数据文件路径和元数据文件访问次数的信息存放于内存中维护的一个哈希表里。
在基于文件拆分的透明加密系统中使用了实施例1或实施例2所述的文件信息存储方法,元数据文件中不仅保存了如访问次数,上一次访问对象等描述文件的信息,还将文件的data内容随机拆分成随机大小的块,并记录拆分位置P和拆分长度L,存入分离存储的元数据记录中。
分离存储的元数据记录以文件的形式存放在文件系统中,因此原文件中的元数据存放地址的记录就是该元数据文件的路径及相关访问信息。具体到这种实现方式下,原文件的更名和移动等操作就不会影响到元数据存放地址信息。当文件发生其他变化时,需要根据元数据描述的内容,决定是否需要更新元数据。
原文件中,拆分位置数据清零或用垃圾数据填充,并将元数据文件路径,文件访问次数等安全信息存入原文件起始位置,将剩余有效数据进行加密拆分,本发明可以通过这种文件存放方式,达到拆分加密的效果。
实施例3:
如图4所述,在实施例2的基础上,本例所述文件信息读写方法包括以下写入步骤:
读取步骤,开始写文件操作,读取内存中相应的记录,判断是否存在记录,若否则直接实现写原文件的操作,若是则跳装至更新判断步骤;
更新判断步骤,判断是否需要更新记录,若是则更新记录信息后跳装至写入抽离区判断步骤,若否则直接跳装至写入抽离区判断步骤;
写入抽离区判断步骤,判断是否需要将更新记录写入原文件的抽离区,若是则修改元数据文件后跳转至拆分步骤,若否则直接跳转至拆分步骤;
以及,拆分步骤,拆分要写入的数据,并将拆分部分写入元数据文件,实现写原文件的操作。
本例所述下写入步骤中,在写文件时,首先判断哈希表中是否存在该文件的记录,如果不存在,则直接放弃处理;如果存在相应记录,则首先判断该文件是否是初次被写入,如果是则需要将哈希表中的元数据路径和元数据文件访问次数所组成的文件索引写入至原文件的抽离区,并将原来需要写入该抽离区的原文件数据写入至元数据文件中。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (10)

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所述的基于分离存储的文件信息读写方法,其特征在于,所述元数据文件路径和元数据文件访问次数的信息存放于内存中维护的一个哈希表里,所述写入步骤中,在写文件时,首先判断哈希表中是否存在该文件的记录,如果不存在,则直接放弃处理;如果存在相应记录,则首先判断该文件是否是初次被写入,如果是则需要将哈希表中的元数据路径和元数据文件访问次数所组成的文件索引写入至原文件的抽离区,并将原来需要写入该抽离区的原文件数据写入至元数据文件中。
CN201410437750.5A 2014-08-29 2014-08-29 基于分离存储的文件信息存储方法和文件信息读写方法 Active CN104239438B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410437750.5A CN104239438B (zh) 2014-08-29 2014-08-29 基于分离存储的文件信息存储方法和文件信息读写方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410437750.5A CN104239438B (zh) 2014-08-29 2014-08-29 基于分离存储的文件信息存储方法和文件信息读写方法

Publications (2)

Publication Number Publication Date
CN104239438A CN104239438A (zh) 2014-12-24
CN104239438B true CN104239438B (zh) 2017-11-10

Family

ID=52227498

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410437750.5A Active CN104239438B (zh) 2014-08-29 2014-08-29 基于分离存储的文件信息存储方法和文件信息读写方法

Country Status (1)

Country Link
CN (1) CN104239438B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293994A (zh) * 2015-05-15 2017-01-04 株式会社日立制作所 网络文件系统中的虚拟机克隆方法和网络文件系统
CN104881489B (zh) * 2015-06-06 2019-01-22 合肥高维数据技术有限公司 一种基于隐写术的载体文件库可扩充的隐蔽文件系统
CN107301177B (zh) * 2016-04-14 2020-02-18 杭州海康威视数字技术股份有限公司 一种文件存储方法及装置
CN107305582B (zh) * 2016-04-25 2020-05-08 华为技术有限公司 一种元数据处理方法及装置
CN106599223A (zh) * 2016-12-19 2017-04-26 北海市云盛科技有限公司 一种记录文件被访问记录的方法
CN108090118B (zh) * 2017-11-07 2020-09-18 清华大学 面向电镜数据存储系统的文件元数据增量扫描方法与系统
CN107947799B (zh) * 2017-11-28 2021-06-29 郑州云海信息技术有限公司 一种数据压缩方法及装置
CN109918018B (zh) * 2017-12-13 2020-06-16 华为技术有限公司 一种数据存储方法及存储设备
CN110389855B (zh) * 2018-04-19 2021-12-28 浙江宇视科技有限公司 磁带库数据校验方法、装置、电子设备和可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693399A (zh) * 2012-05-18 2012-09-26 孙巍 一种电子文档在线分离与还原的系统及方法
CN102790770A (zh) * 2012-07-24 2012-11-21 孙巍 一种电子文档集中保存和外带安全管理系统及其方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100337218C (zh) * 2005-02-23 2007-09-12 北京邦诺存储科技有限公司 网络存储系统中的数据管理方法及其构建的网络存储系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693399A (zh) * 2012-05-18 2012-09-26 孙巍 一种电子文档在线分离与还原的系统及方法
CN102790770A (zh) * 2012-07-24 2012-11-21 孙巍 一种电子文档集中保存和外带安全管理系统及其方法

Also Published As

Publication number Publication date
CN104239438A (zh) 2014-12-24

Similar Documents

Publication Publication Date Title
CN104239438B (zh) 基于分离存储的文件信息存储方法和文件信息读写方法
CN103530290B (zh) 数据库间的数据迁移方法和系统
CN100583050C (zh) 基于时间戳日志存储的连续数据保护和恢复方法
CN104395904B (zh) 高效的数据对象存储和检索
CN103136243B (zh) 基于云存储的文件系统去重方法及装置
CN106095807B (zh) 一种分布式文件系统纠删码缓存装置及其缓存方法
CN104298726B (zh) 一种基于数据库的bms数据存储系统及其方法
JP2005267600A5 (zh)
CN104484131B (zh) 多磁盘服务器的数据处理装置及对应的处理方法
US20080282355A1 (en) Document container data structure and methods thereof
CN103927251A (zh) 一种嵌入式系统的日志管理方法
CN101375280A (zh) 事件结构化文件系统(esfs)
CN101980203A (zh) 一种用于高清媒体的嵌入式文件系统
CN101882135B (zh) 一种兴趣点数据处理方法和装置
CA2575418A1 (en) Information recording medium, recording/ reproducing apparatus, and recording/ reproducing method
CN102667734A (zh) 用于检查分层型数据库中的指针的一致性的系统、方法以及程序
CN107291710A (zh) 一种用于分布式数据库系统的更新数据的方法及装置
CN104008207A (zh) 基于光盘的数据库的数据外部存储系统及数据存储方法
CN105843554B (zh) 基于对象存储的数据迁移的方法及其系统
CN107944041A (zh) 一种hdfs的存储结构优化方法
CN102521256B (zh) 高可靠性的实时/历史数据库数据保护方法
CN104142979B (zh) 一种实现rfid标签存储管理的索引方法
CN102609531B (zh) 一种根据关键字反查文件的方法
CN1940889B (zh) 用于管理访问历史的方法和装置以及信息处理装置
CN106649129A (zh) 一种基于ftl的具有版本管理功能的固态硬盘及其实现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20141224

Assignee: Shenzhen Huakai Information Technology Co.,Ltd.

Assignor: PEKING University SHENZHEN GRADUATE SCHOOL

Contract record no.: X2024980003154

Denomination of invention: A method for storing file information based on separate storage and a method for reading and writing file information

Granted publication date: 20171110

License type: Common License

Record date: 20240321

EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20141224

Assignee: ZHUHAI FILLGOLD TECHNOLOGY CO.,LTD.

Assignor: PEKING University SHENZHEN GRADUATE SCHOOL

Contract record no.: X2024980004710

Denomination of invention: A method for storing file information based on separate storage and a method for reading and writing file information

Granted publication date: 20171110

License type: Common License

Record date: 20240422

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20141224

Assignee: Shenzhen Zhihui qice Technology Co.,Ltd.

Assignor: PEKING University SHENZHEN GRADUATE SCHOOL

Contract record no.: X2024980005146

Denomination of invention: A method for storing file information based on separate storage and a method for reading and writing file information

Granted publication date: 20171110

License type: Common License

Record date: 20240430

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20141224

Assignee: SHENZHEN GURO BUILDING MATERIALS CO.,LTD.

Assignor: PEKING University SHENZHEN GRADUATE SCHOOL

Contract record no.: X2024980005929

Denomination of invention: A method for storing file information based on separate storage and a method for reading and writing file information

Granted publication date: 20171110

License type: Common License

Record date: 20240520

EE01 Entry into force of recordation of patent licensing contract