本发明涉及信息技术,具体地涉及一种基于智能密钥盘的文件管理方法。
背景技术:
由于现有的智能密钥盘的接口规范中,都是以简单的数据块形式存储数据,无法做到文件系统的形式管理密钥盘中的数据,更无法做到文件的快速查找和访问,也难以做到多套文件系统共存。所以,业务系统需要自行负责数据的组织方式,即使做到支持的文件系统的形式管理数据,也会造成密钥盘空间大量占用,导致密钥盘空间利用率极低的情况。由于现有智能密钥盘使用的接口规范只支持简单的数据块存储模式,不支持文件系统模式管理数据,而且对数据的处理是整存整取的,无法支持文件数据流的方式访问和缓存数据技术。
现有技术中,密钥盘的简单数据块存储模式,导致难以做到复杂的文件系统管理,以及多套不同文件系统之间的兼容和混合使用;难以实现有效数据的快速查找和访问。采用现有的文件系统模式管理密钥盘的数据,会造成大量的空间浪费和扩展性降低,而且空间利用率低。
随着社会对信息安全的重视程度和要求日趋提高,对智能密钥盘的要求也不仅局限于简单的数据块存储,对数据存储模式、性能、安全性都提出了更高的要求。又由于多种标准同时存在,并且需求的不断提高。所以研发一种简单易用,且能兼容各种标准的基于智能密钥盘的数据存储和访问方法势在必行。
中国专利公开了“一种基于智能密钥的存储设备及其数据存储和读取方法”(公开号:cn106127074a)中提出的方法无法做到多套不同的文件系统之间的兼容和混合使用,也难以通过二叉树查找方法来实现快速的查找和访问数据,同时提出的根据用法初始化时设定的单个段段单元大小,将智能密钥设备的数据存储物理空间划分为多个段单元,这种方式会造成密钥盘存储空间的大量浪费和扩展性低。
技术实现要素:
本发明的目的是提供一种高性能的智能密钥盘的存储和访问方法,解决现有智能密钥盘的无法提供高效的数据管理和访问,以及空间利用率低和访问速度受限,无法做到文件系统之间的兼容和混合使用的问题。从而达到快速高效的查找和访问数据,以及最大化的空间利用率,增强智能密钥盘的数据间的兼容性,达到多套不同数据间的共存。
本发明采用以下技术方案实现上述目的。基于智能密钥盘的文件管理方法,其特征在于,其步骤如下:
1)在智能密钥盘的存储空间中存储系统信息表和索引表,定义为信息描述文件;
2)需要存储新数据时,根据数据块的大小从智能密钥盘的存储空间中自动分配,来存储该新数据,并且在步骤1)中所述信息描述文件中进行记录;
3)所述系统信息表中存储的是文件系统的关键信息;
4)所述索引表中存储的是二叉树信息表以及文件和文件夹相关的属性表信息;
5)根据所述二叉树信息表,利用二叉树的搜索方法,快速定位到文件然后直接读取文件数据,或者快速定位到文件夹的所在位置然后读取文件夹中所包含的文件信息;
6)使用二叉树信息表,实现文件和文件夹的多级目录管理。
所述关键信息包括文件名前缀、文件数量以及文件存储模式。
本发明在智能密钥盘的存储空间中存储系统信息表和索引表等关键信息,在此之上建立数据的逻辑结构,以实现数据的快速查找和多种不同标准的数据间共存等功能,支持文件按需自动分配,提高密钥盘空间利用率,并且支持二叉树查找,提供数据的访问速度。系统信息表的使用,可以同时支持多种文件系统共存和混用。放弃了分散式存储,优化了密钥盘空间的管理,二叉树信息表实现了动态可扩展的文件查找。
附图说明
图1是本发明的工作原理图;
图2是本发明中的文件和存储空间关系映射图;
图3是本发明中加载文件数据的流程图。
具体实施方式
以下结合附图和实施例进一步说明本发明的技术方案。参见图1至图3。
本发明的工作原理(如图1所示),由信息描述文件1、文件索引表2和数据访问3三个主要业务组成。通过读取信息描述文件1,获得文件索引表2。通过文件索引表2,使用二叉树查找法找到相关文件,进行数据访问3。
一、信息描述文件1:信息描述文件1中存储了系统信息表和文件索引表2;
在格式化智能密钥盘时,会在密钥盘的存储空间中先创建一个信息描述文件1,将系统信息表和索引表中的第一项(根文件夹)信息写入其中;智能密钥盘在初始化时,根据文件实际需要的空间,创建相应大小的文件并写入数据。格式化工具将相关信息保存到系统信息表中,并创建根文件夹的索引表的节点。在读取密钥盘的数据时,通过读取信息描述文件1,解析数据得到系统信息表和文件索引表2,根据系统信息表确定当前密钥盘中支持的文件系统类型和使用的接口标准,然后根据文件索引表2构建二叉树。根据二叉树查找到文件属性表信息,并得到数据实际存储位置(如图2所示)。当存储新数据时,在文件索引表2创建新的节点,并把相关信息写到文件属性表中,读取文件时则查找二叉树快速的找到相应的节点,获取信息表中的数据。删除文件时则找到相应节点,然后删除节点和相应的信息表中的数据。
二、系统信息表:存储的是文件系统的关键信息;
系统信息表中存储的文件系统的关键信息包括文件系统的类型、版本号、文件索引前缀、文件索引表2项的数量和文件存储模型,加载文件系统时先得到系统信息表,判断当前的文件系统类型和版本号,然后根据索引前缀和文件索引表2加载整个文件系统。
三、文件索引表2:数据关系由索引表和根据索引表生成的二叉树组成;
索引表记录了文件夹与文件的上下级关系,通过文件夹内嵌文件夹或文件的方式实现了文件夹与文件、文件夹与文件夹之间的关系;通过索引表中的数据实现了数据与存储单元之间的关系映射;通过查询二叉树可以得到文件在索引表中的位置;通过索引表中的记录可以得到文件数据所在的真实位置。二叉树从根文件夹开始,根文件夹项位于查找二叉树的顶端,利用二叉树可以遍历整个文件系统中的所有文件和文件夹。
四、数据访问3:通过硬件设备、厂商驱动程序和二次开发接口访问各厂商的智能密钥盘,数据访问3模块提供密钥盘通用的数据接口供上层来读取所要查找的数据块。
获得文件数据的流程(如图3所示),包括以下步骤:
(1)读取信息描述文件的数据101,获得系统信息表和索引表;
(2)从系统信息表中得到索引表大小102,获得索引表的数据;
(3)根据索引表加载完整的文件系统二叉树103;
(4)在读取某文件数据时,从根文件夹节点即二叉树根节点开始遍历查询文件,得到文件所在节点位置,定位文件所在的节点104;比如:路径为:“/dir1/doc2.dat”,/为根文件夹,dir1为根文件夹的子文件夹,doc2.dat是dir1文件夹内的文件。所以先从根文件夹节点开始查找dir1文件夹,如果没有找到则返回文件不存在的错误,如果找到就进入dir1节点中,查询doc2.dat文件。如果存在,则得到dir1节点为doc2.dat的父节点;
(5)通过查询doc2.dat的节点,得到doc2.dat的信息表项,得到数据存储单元的名称索引105;
(6)根据数据存储单元的名称索引,读取doc2.dat的完整数据内容106。
实施例:
以下结合一个较佳实施案例对本发明作进一步说明。本发明能实现对多套不同文件系统的兼容。如下表:
在系统信息表中存储文件索引前缀,存储到密钥盘中的数据以前缀加文件名为索引,实现兼容老文件系统和兼容多套文件系统,解决文件系统之间的兼容和混合使用的问题。
1.密钥盘中已存在老文件系统,密钥盘中存在file1和file2两个文件。
2.在不影响现有文件系统下,使用新文件系统,在密钥盘中创建系统文件kfs,其存储系统信息表和索引表,系统信息表中存储新文件系统的文件索引,当需要添加新规范的印章数据时,在索引表中登记并根据索引在密钥盘中创建kfs_file1文件,当需要读取印章数据时,只需要新的文件系统kfs和已存在的文件系统互不影响。
3.如又要新建文件系统xxx时,只需要在密钥盘中新建xxx文件,并生成相应的系统信息表和索引表,当创建新的文件时,在索引表中登记并在密钥盘中创建xxx_file1文件,此时新的文件系统xxx和老的文件系统以及kfs文件系统互不干扰,可以同时兼容和混合使用。