文件的元数据存储以及文件恢复的方法、装置和系统的制作方法

文档序号:6522611阅读:332来源:国知局
文件的元数据存储以及文件恢复的方法、装置和系统的制作方法
【专利摘要】本发明实施例提供了一种文件的元数据存储以及文件恢复的方法、装置及系统,该文件的元数据存储方法包括:根据为文件中一个或多个文件数据分别分配的存储空间获得与各个文件数据分别对应的元数据信息,元数据信息包括文件的文件标识;分别将一个或多个文件数据以第一二进制数据的形式存储至存储空间;根据各个第一二进制数据分别计算出与各个文件数据分别对应的元数据标识,元数据标识用于标识元数据信息;对于每一元数据,从存储设备中选择任一具有空闲存储空间的物理块,将元数据存储至物理块,元数据包括一元数据信息以及标识一元数据信息的元数据标识。采用本发明实施例提供的方法、装置和系统,可以减少用户的损失。
【专利说明】文件的元数据存储以及文件恢复的方法、装置和系统
【技术领域】
[0001]本发明涉及通信领域,更具体的说,是涉及文件的元数据存储以及文件恢复的方法、装置及系统。
【背景技术】
[0002]文件系统是计算机操作系统中最基本的一部分,在计算机领域长期广泛使用。文件系统包括元数据信息。假设用户需要恢复一被损坏的word文件,需要从元数据信息中获得该word文件在存储设备的位置信息,并从该存储设备的相应位置中读取该word文件对应的二进制数据,并依据元数据信息中的该word文件类型将存储设备中存储的二进制数据进行解析,从而获得word文件中的文件数据。
[0003]现有技术中的存储设备中的存储区域包括文件数据存储区域和元数据信息集中存储区域,其中,文件数据存储区域可以存储上述word文件对应的二进制数据等等,元数据信息集中存储区域存储有文件系统所有文件的元数据信息,不同文件类型的元数据信息对应的数据结构不同,各个不同文件类型的元数据信息组成多个目录分支,如果文件目录树中的一个目录分支中的某一元数据信息被损坏,则存储位置位于该元数据信息后的元数据信息就会丢失。
[0004]发明人在实现本发明创造的过程中发现,由于现有技术中各个元数据信息不能被分别识别,所以需要将各个元数据信息存储在元数据信息集中存储区域中,为了便于读取元数据信息集中存储区域中的各个元数据信息,需要建立各个元数据信息之间的关联。由于各个元数据信息之间相互关联,所以某一元数据信息被损坏,就可能导致存储位置位于该元数据信息后的元数据信息就会丢失。

【发明内容】

[0005]有鉴于此,本发明提供了一种文件的元数据存储以及文件恢复的方法、装置及系统,以克服现有技术中由于当元数据信息集中存储区域中的一个目录分支的接口数据被损坏时,组成这个目录分支的所有元数据信息就会丢失,这些丢失的元数据信息对应的文件数据也会丢失,从而给用户造成了严重的损失的问题。
[0006]为实现上述目的,本发明提供如下技术方案:
[0007]第一方面,一种文件的元数据存储方法,包括:
[0008]根据为文件中一个或多个文件数据分别分配的存储空间获得与各个所述文件数据分别对应的元数据信息,所述元数据信息包括所述文件的文件标识;
[0009]分别将一个或多个所述文件数据以第一二进制数据的形式存储至所述存储空间;
[0010]根据各个所述第一二进制数据分别计算出与各个所述文件数据分别对应的元数据标识,所述元数据标识用于标识所述元数据信息;
[0011]对于每一元数据,从所述存储设备中选择任一具有空闲存储空间的物理块,将所述元数据存储至所述物理块,所述元数据包括一元数据信息以及标识所述一元数据信息的元数据标识。
[0012]在第一方面的第一种实现方式中,在所述从所述存储设备中选择任一具有空闲存储空间的物理块,将所述元数据存储至所述物理块之后,还包括读取所述文件的方法,读取所述文件的方法包括:
[0013]获得所述文件的文件名称以及文件路径;
[0014]根据预先设置的文件名称、文件路径与元数据标识的对应关系,获得所述文件包括的所有文件数据分别对应的元数据标识;
[0015]对于每一所述元数据标识,从所述存储设备中获得所述元数据标识对应的元数据,依据所述元数据从所述存储设备中获得与所述元数据对应的文件数据的第一二进制数据,根据所述第一二进制数据计算出第一校验值,当所述第一校验值与所述元数据标识相等时,解析所述第一二进制数据,以获得与所述第一二进制数据对应的文件数据;
[0016]获得由解析出的各个所述文件数据组成的文件。
[0017]第二方面,一种文件恢复方法,所述文件包括一个或多个文件数据,所述文件数据对应的元数据包括元数据信息以及标识所述元数据信息的元数据标识,所述元数据信息是根据为所述文件数据分配的存储空间获得的,所述元数据标识是根据第一二进制数据以及预设算法计算得出的,所述文件数据是以所述第一二进制数据的形式存储在所述存储空间中的,所述文件数据恢复方法包括:
[0018]接收到恢复文件的请求时,从所述存储设备中获得具有元数据标识的元数据;
[0019]对于每一元数据,依据所述元数据中的元数据信息读取所述存储设备中相应位置的第一二进制数据,依据所述第一二进制数据以及所述预设算法计算出校验值,当所述校验值与所述元数据标识相等时,确定所述元数据有效,解析所述第一二进制数据;
[0020]获得由解析所述第一二进制数据获得的文件数据组成的文件。
[0021]第三方面,一种文件的元数据存储装置,包括:
[0022]第一获取模块,用于根据为文件中一个或多个文件数据分别分配的存储空间获得与各个所述文件数据分别对应的元数据信息,所述元数据信息包括所述文件的文件标识;
[0023]存储模块,用于分别将一个或多个所述文件数据以第一二进制数据的形式存储至所述存储空间;
[0024]计算模块,根据各个所述第一二进制数据分别计算出与各个所述文件数据分别对应的元数据标识,所述元数据标识用于标识所述元数据信息;
[0025]第一处理模块,用于对于每一元数据,从所述存储设备中选择任一具有空闲存储空间的物理块,将所述元数据存储至所述物理块,所述元数据包括一元数据信息以及标识所述一元数据信息的元数据标识。
[0026]在第三方面的第一种实现方式中,所述文件的元数据存储装置还包括读取文件的装置,所述读取文件的装置包括:
[0027]第二获取模块,用于获得所述文件的文件名称以及文件路径;
[0028]第三获取模块,用于根据预先设置的文件名称、文件路径与元数据标识的对应关系,获得所述文件包括的所有文件数据分别对应的元数据标识;
[0029]第二处理模块,用于对于每一所述元数据标识,从所述存储设备中获得所述元数据标识对应的元数据,依据所述元数据从所述存储设备中获得与所述元数据对应的文件数据的第一二进制数据,根据所述第一二进制数据计算出第一校验值,当所述第一校验值与所述元数据标识相等时,解析所述第一二进制数据,以获得与所述第一二进制数据对应的文件数据;
[0030]获得文件模块,用于获得由解析出的各个所述文件数据组成的文件。
[0031]第四方面,一种文件恢复装置,所述文件包括一个或多个文件数据,所述文件数据对应的元数据包括元数据信息以及标识所述元数据信息的元数据标识,所述元数据信息是根据为所述文件数据分配的存储空间获得的,所述元数据标识是根据第一二进制数据以及预设算法计算得出的,所述文件数据是以所述第一二进制数据的形式存储在所述存储空间中的,所述文件数据恢复装置包括:
[0032]第一获取模块,用于接收到恢复文件的请求时,从所述存储设备中获得具有元数据标识的元数据;
[0033]第一处理模块,用于对于每一元数据,依据所述元数据中的元数据信息读取所述存储设备中相应位置的第一二进制数据,依据所述第一二进制数据以及所述预设算法计算出校验值,当所述校验值与所述元数据标识相等时,确定所述元数据有效,解析所述第一二进制数据;
[0034]第一组成模块,用于获得由解析所述第一二进制数据获得的文件数据组成的文件。
[0035]经由上述的技术方案可知,与现有技术相比,本发明实施例提供的一种文件的元数据存储方法中,一个文件可能包括一个或多个文件数据,每个文件数据都对应元数据,所以一个文件可能对应一个或多个元数据,每个元数据具有元数据标识,由于元数据标识是用于标识元数据信息的,所以可以依据元数据标识得知存储设备中哪些数据为元数据,所以无论元数据被存储在哪一位置,都可以通过元数据标识被识别出来,所以不需要将元数据信息集中存储在某一区域。在存储元数据时,对存储元数据的物理块没有特殊要求,只需要选择任一具有空闲存储空间的物理块即可,即元数据可能存储于存储设备的任意位置,各个元数据没有存储区域的限制,无需建立各个元数据之间的关联,所以各个元数据间相互独立,即某一元数据被损坏了并不影响其他元数据。
【专利附图】

【附图说明】
[0036]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0037]图1为本发明实施例提供了一种文件的元数据存储方法的流程示意图;
[0038]图2为本发明实施例提供的元数据的一种实现方式的结构示意图;
[0039]图3为本发明实施例提供的文件的元数据存储方法中元数据与文件中各个文件数据的存储空间的位置示意图;
[0040]图4为本发明实施例提供的文件的元数据存储方法中元数据与文件中各个文件数据的存储空间的位置示意图;[0041]图5为本发明实施例提供的文件的元数据存储方法中将第一文件数据的元数据存储至第一物理块的一种实现方式的方法流程示意图;
[0042]图6为本发明实施例提供的文件的元数据存储方法中元数据的存储空间与文件数据的存储空间的位置的结构示意图;
[0043]图7为本发明实施例提供的一种文件的元数据存储方法的另一实现方法的流程示意图;
[0044]图8为本发明实施例提供的一种读取文件方法的流程示意图;
[0045]图9为本发明实施例提供的一种文件恢复方法的方法流程示意图;
[0046]图10为本发明实施例提供的一种文件的元数据存储装置的结构示意图;
[0047]图11为本发明实施例提供的一种读取文件的装置的结构示意图;
[0048]图12为本发明实施例提供的一种文件恢复装置的结构示意图;
[0049]图13为本发明实施例提供的一种文件恢复装置的另一实施例的装置结构示意图;
[0050]图14为本发明实施例提供的一种文件的元数据存储系统的结构示意图。
【具体实施方式】
[0051]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]请参阅附图1,为本发明实施例提供了一种文件的元数据存储方法的流程示意图,该方法包括:
[0053]步骤SlOl:根据为文件中一个或多个文件数据分别分配的存储空间获得与各个所述文件数据分别对应的元数据信息,所述元数据信息包括所述文件的文件标识。
[0054]元数据信息包括所述文件的文件标识。元数据信息还可以包括上述文件数据在存储设备中的位置信息和上述文件数据的格式。
[0055]实际应用中有很多应用场景会为文件数据分配存储空间,本发明实施例提供但不限制于如下应用场景,场景一:用户在一文件中输入数据,该数据先保存在一临时文件或内存中,用户点击保存按钮后,会生成将该数据存储至存储设备的指示,并在存储设备中为该数据分配一存储空间。场景二:用户设置存储文件的自动保存时间间隔(自动保存时间间隔可以为5秒,也可以为其他,本发明实施例对此不作具体限定),用户在自动保存时间间隔时间段内输入的数据可以先保存在一临时文件或内存中,当自动保存时间间隔到来时,生成存储该数据的指示,并在存储设备中为该数据分配一存储空间。本发明实施例中提及的文件数据可以为存储至临时文件或内存中的数据,也可以为存储至临时文件或内存中的数据的一部分,上述存储至临时文件或内存中的数据也可以为上述文件数据的一部分。
[0056]可以理解的是,word文件、PDF文件或txt文件可以为上述场景一和场景二文件,本发明实施例提出的文件数据可以对应一个文件中的所有数据,也可以是文件中的部分数据。
[0057]上述文件,就是在电子设备中,以实现某种功能、或某个软件的部分功能为目的而定义的一个单位。电子设备中的文件可以是文档、程序、快捷方式和设备。文件是由文件名和图标组成,一种类型的文件具有相同的图标,文件名不能超过255个字符(包括空格)。文件还可以指存储在外部介质上的数据的集合。
[0058]上述文件数据可能对应一个元数据,也可能对应多个元数据。假设上述文件数据包括N个元数据,即第一元数据至第N元数据,N为大于等于I的正整数,相应的文件数据包括第一子文件数据至第N子文件数据,其中第i子文件数据对应第i子元数据,第i子元数据信息中可以包括:存储第i子文件数据的物理块的起始偏移地址、第i子文件数据的字节长度、第i子文件数据位于上述文件数据的位置信息、第i子文件数据的修改时间、第i子文件数据所在物理块的字节长度和第i子文件数据的文件格式。上述i为大于等于1,小于等于N的正整数。
[0059]可以利用存储第i子文件数据的物理块的物理地址和起始偏移地址、第i子文件数据的字节长度,从相应的物理块中读取出第i子文件数据对应的二进制数据,因为文件数据在存储空间中以二进制的形式进行存储的。
[0060]第i子文件数据位于上述文件数据的位置信息可以是指第i子文件数据在上述文件数据的第几段或第几页的第几段等等。因为文件数据可能有多个自然段,所以需要确定出存储设备中哪一子文件数据处于上述文件数据的第几段。
[0061]用户可能对第i子文件数据进行了多次修改,所以可能有多个第i子文件数据,但是在一般情况下,距离当前时间最近的,应该是用户最近刚刚修改的,当用户开启某一文件时,组成该文件的子文件数据应该包括距离当前时间最近的第i子文件数据,而可以不包括修改时间为其他时间的第i子文件数据。
[0062]第i子文件数据的文件格式可以为上述文件数据的名称的后缀,或者上述文件名称的最后8个字节。文件名称的最后8个字节往往包含了文件数据的后缀名,根据后缀名可以判断文件数据的类型。例如doc”后缀名表示word文件,“.rar”后缀名表示rar压缩格式的文件。文件系统普遍支持长文件名,常见的文件系统支持256字节的文件名长度,如果在元数据里面保留256个字节的空间来保存文件名,则消耗的空间会比较大,会造成存储空间的浪费,为了避免存储空间的浪费,可以保留文件名称最后的少数字节,优选的,可以把文件名称的最后8个字节保留下来,用于分辨文件类型。例如上述文件数据的文件名称为“申请文件12345678.doc",且文件名称的变量类型为字符型,则文件名称的最后8个字节是指“5678.doc”。可以利用第i子文件数据的文件格式解析第i子文件数据对应的第一二进制数据,并调用相应的应用程序,以显示给用户。
[0063]第i子元数据信息还可以包括保留空间,当然也可以不包括。
[0064]上述对第i子元数据信息的说明也适用于本发明实施例提及的任一元数据信息。
[0065]步骤S102:分别将一个或多个所述文件数据以第一二进制数据的形式存储至所述存储空间。
[0066]文件数据是以二进制数据的形式存储在存储空间中的,为了与后续的二进制数据进行区分,这里将上述文件中对应的文件数据在存储空间中的存储形式称为第一二进制数据。
[0067]步骤S103:根据各个所述第一二进制数据分别计算出与各个所述文件数据分别对应的元数据标识。[0068]所述元数据标识用于标识所述元数据信息。
[0069]可以通过预设算法,依据第一二进制数据计算出元数据标识,例如将第一二进制数据的循环冗余校验值作为本发明实施例中的元数据标识、将第一二进制数据进行MD5(Message Digest Algorithm,消息摘要算法)后得到的值,作为元数据标识,或将第一二进制数据进行SHA (Secure Hash Algorithm,安全散列算法)计算后,得到的值作为元数据标识,本发明实施例对第一二进制数据对应的元数据标识的计算方法不作具体限定。
[0070]请参阅图2,为本发明实施例提供的元数据的一种实现方式的结构示意图。
[0071]从图2中可以看出每一元数据中可以有10个字段,一共64个字节,可以理解的是,元数据中可以没有保留空间这两个字段,元数据中可以只有一个保留空间字段,或者具有两个或两个以上保留空间字段,本发明实施例对此不作具体限定,所以元数据也可以为48字节,当然也可以将各个字段的字节长度设置为其他数值,例如将保留空间设置为5个字节,将元数据标识设置为6个字节,所以本发明实施例对此不作具体限定。综上,元数据的字节长度可以大于小于或等于64字节。本发明实施例中的元数据可以包括其他字段,并不一定是上述10个字段,例如还可以包括文件名称字段,本发明实施例对元数据中的字段个数及种类均不作具体限定。
[0072]从图2中可以看出,每一字段都对应一变量类型,本发明实施例提供但不限于图2中所示的变量类型,例如文件标识的变量类型还可以为unsigned char。
[0073]存储设备可以是硬盘、光盘、U盘、磁带等等。
[0074]本发明实施例用元数据标识来标识各个元数据信息,所以可以从存储设备中依据元数据标识获得各个元数据信息。
[0075]步骤S104:对于每一元数据,从所述存储设备中选择任一具有空闲存储空间的物理块,将所述元数据存储至所述物理块。
[0076]所述元数据包括一元数据信息以及标识所述一元数据信息的元数据标识。
[0077]每一个元数据信息以及标识该元数据信息的元数据标识需要存储在同一物理块中,但是不同的元数据可以存储在不同的物理块中,且在存储各个元数据时,物理块可以是随机选择的,所以与现有技术中将元数据信息集中存储在元数据信息集中存储区域是不同的,本发明实施例中的各个元数据可以不集中存储在元数据集中存储区域,即本发明实施例中的存储设备中可以没有元数据信息集中存储区域。
[0078]对于同一文件而言,可对应一个或多个元数据,各个元数据之间可以是分开存储的,且是相互独立的,对于不同的文件而言,不同文件对应的元数据之间也可以是分开存储的,且相互独立的。
[0079]本发明实施例对存储元数据的物理块没有特殊要求,所以本发明实施例中的元数据可以位于不同的物理块中,即元数据可以位于不同的区域,不同于现有技术中将文件的元数据存储在存储设备中的元数据集中存储区。
[0080]本发明实施例提供的文件的元数据存储方法中,元数据具有元数据标识,由于元数据标识是用于标识元数据的,所以可以依据元数据标识得知存储设备中哪些数据为元数据,而且在存储元数据时,对存储元数据的物理块没有特殊要求,只需要物理块具有空闲存储空间即可,所以元数据可能存储于存储设备的任意位置,也就是各个文件数据分别对应的元数据在存储设备中的存储位置可以是任意的,与现有技术中各个文件数据的元数据集中存储在元数据信息集中存储区域是不同的,且本发明实施例中各个元数据之间没有现有技术中的接口函数,所以本发明实施例中的各个文件数据分别对应的元数据是相互独立的,若某一元数据被损坏了,则该被损坏的元数据对应的文件数据会被丢失,其他元数据并不会丢失,且其他元数据对应的文件数据不会丢失,从而减少用户的损失。
[0081]进一步的,现有技术中所有文件数据的元数据都集中存储在元数据信息集中存储区域,当该元数据信息集中存储区域被损坏时,所有元数据信息就会丢失,给用户造成了严重的损失,本发明实施例中各个元数据可以不存储在一个集中的区域,所以如果是因为存储设备某一部分损坏时,也只是该部分中的元数据被损坏,并不影响存储设备其他位置的元数据的有效性。
[0082]进一步的,现有技术中常常需要设置多个具有相同内容的元数据信息,这样当其中一个元数据信息被损坏时,还可以依据其他元数据信息对文件数据进行回复,但是这多个元数据信息之间需要同步,例如当用户修改文件数据、删除文件数据或增加文件数据后,需要对各个元数据信息中相应的文件数据的元数据信息进行同步更新,对多个元数据进行同步更新会导致文件系统性能降低,而本发明实施例中不需要对元数据信息进行同步,从而提高了文件系统的性能。
[0083]可以理解的是,在实际应用中文件数据与元数据在存储设备中的存储方式有多种,本发明实施例提供但不限于以下几种存储方式。
[0084]一、文件数据与元数据存储在同一物理块中。
[0085]文件中各个文件数据可以与元数据存储在同一物理块中,文件可以包括第一文件数据,相应的与第一文件数据对应元数据为第一元数据,设为第一文件数据分配的存储空间为第一物理块,第一文件数据的字节长度不大于第一字节数减去第二字节数所得的差,第一字节数是指第一物理块在存储第一文件数据之前空闲存储空间的字节数,第二字节数是第一元数据的字节长度,本发明实施例提供的文件的元数据存储方法中的将上述文件的元数据存储至上述物理块为:将第一文件数据的元数据存储至第一物理块。
[0086]第一文件数据的字节长度可以等于第一字节数减去第二字节数所得的差,请参阅图3,为本发明实施例提供的文件的元数据存储方法中元数据与文件中各个文件数据的存储空间的位置不意图。
[0087]从图3可知,文件可以包括第一文件数据、第二文件数据和第三文件数据。与第一文件数据对应的元数据为第一元数据、与第二文件数据对应的元数据为第二元数据、与第三文件数据对应的元数据为第三元数据,存储第一文件数据的为第一物理块,存储第二文件数据的为第二物理块,存储第三文件数据的为第三物理块。从图3中可以看出将元数据附加到与其对应的物理块的后面。
[0088]图3中,还举出6个例子,物理块的大小分别为4096字节、8192字节、16384字节、32768字节、65536字节以及X字节,则文件数据存储在各个物理块中的字节长度可以分别为:4032字节、8128字节、16320字节、32704字节、65472字节以及X-64字节,而各个物理块中的元数据均为64字节(以图2中的元数据结构为例)。
[0089]图3所示的文件数据与元数据的存储方式,当从存储设备中获得某一元数据后,由于某一元数据中存储有与其对应的文件数据的字节长度信息(假设字节长度为1024个字节),所以可以获知该某一元数据的前1024个字节为该某一元数据对应的文件数据,可以直接读取该某一元数据对应的文件数据,省略了从存储设备中查找与该某一元数据对应的文件数据的时间,从而提高了读取和恢复文件数据的速度。
[0090]在实际应用中文件的字节长度可能很大,这时如果文件只对应一个元数据,则当该元数据被损坏时,整个文件就无法恢复了,所以可以设置元数据的密度,即每将预设长度的文件数据存储至存储设备时,就生成一与该预设长度的文件数据对应的元数据,这样即使其中一个或几个元数据被损坏,也可以根据其他未损坏的元数据恢复出部分文件,使用户的损失降低,第一文件数据的字节长度可以为预设长度,请参阅图4,为本发明实施例提供的文件的元数据存储方法中元数据与文件中各个文件数据的存储空间的位置示意图。
[0091]从图4可知,文件数据可以包括第一文件数据、第二文件数据和第三文件数据。与第一文件数据对应的元数据为第一元数据、与第二文件数据对应的元数据为第二元数据、与第三文件数据对应的元数据为第三元数据。
[0092]上述文件数据可以存储在多个物理块中,也可以存储在一个物理块中,如图4所示,第一元数据的起始偏移地址为第一文件数据的起始偏移地址、第一文件数据的字节长度和I之和,即第一元数据与第一文件数据的存储位置紧挨着。第二元数据和第三元数据同理。
[0093]请参阅图5,为本发明实施例提供的文件的元数据存储方法中将第一文件数据的元数据存储至第一物理块的一种实现方式的方法流程示意图,该方法包括:
[0094]步骤S501:获得第一文件数据存储至第一物理块的第一起始偏移地址。
[0095]步骤S502:将第一起始偏移地址、第一文件数据的字节长度与I之和,确定为第一文件数据的元数据存储至第一物理块的第二起始偏移地址。
[0096]步骤S503:以第二起始偏移地址为起始偏移地址,存储第一元数据。
[0097]二、将文件中各个文件数据与元数据存储在不同的物理块中。
[0098]在实际应用中,可以将存储文件数据的物理块和存储元数据的物理块区分开,可以理解的是,假设物理块存储了第一文件数据之后,剩余的空闲字节如果小于第一元数据的字节数,可以将第一元数据存储在另一物理块中。
[0099]存储元数据的物理块的地址范围可以为第一预设地址范围,则本发明实施例提供的文件的元数据存储方法中从存储设备中选择具有空闲存储空间的物理块为:从存储设备中属于第一预设地址范围的物理块中选择具有空闲存储空间物理块。请参阅图6,为本发明实施例提供的文件的元数据存储方法中元数据的存储空间与文件数据的存储空间的位置的结构示意图。
[0100]这里第一预设地址范围并不是指为元数据划分了一元数据集中存储区域,该第一预设地址范围中的地址可以为间断不连续的地址,当然也可以为连续地址。
[0101]从图6中可以看出文件数据可以包括:第一文件数据、第二文件数据和第三文件数据,存储第一文件数据的可以为第一物理块,存储第二文件数据的可以为第二物理块,存储第三文件数据的可以为第三物理块,存储第一元数据、第二元数据和第三元数据的物理块可以为第一物理块4。
[0102]图6中,由于存储元数据的物理块的物理地址范围为第一预设地址范围,所以在查找元数据时,不需要遍历整个存储设备,只需要遍历第一预设地址范围的元数据,从而提高了查找元数据的速度。[0103]三、存储设备中即可包括文件数据与文件的元数据存储在同一物理块中的存储方式,也可以包括文件数据与文件的元数据存储在不同物理块中的存储方式。
[0104]在实际应用中,假设某物理块存储了第一文件数据之后,剩余的空闲字节如果小于第一元数据的字节数,可以将第一元数据存储在另一物理块中,若物理块存储了第一文件数据之后,剩余的空闲字节大于或等于第一元数据的字节数,则第一元数据可以存储在该物理块中,所以在同一存储设备中既可以有图6中的存储方式,也可以有图3中的存储方式。
[0105]现有技术中,由于所有文件数据对应的元数据信息都存储在同一元数据集中存储区域,所以当元数据集中存储区域被损坏时,所有的文件数据就会丢失,就会给用户带来巨大的损失,本发明实施例可以在现有技术中的元数据信息的基础上,增加该元数据信息的元数据,由于只有存储在文件中的数据,在存储至存储设备时才可以生成元数据,所以需要将现有技术中的元数据写入一个文件中,请参阅图7,为本发明实施例提供的一种文件的元数据存储方法的另一实现方法的流程示意图,该方法包括:
[0106]步骤S701:将所述文件中包括的所有文件数据分别对应的元数据信息存储至第一文件中。
[0107]第一文件是存储所有文件数据对应的元数据信息的一种特殊格式的文件。
[0108]第一文件中可以存储有多个文件的元数据信息。
[0109]步骤S702:根据为所述第一文件中一个或多个第一文件数据分配的所述存储设备中的存储空间,获得与各个所述第一文件数据分别对应的文件元数据信息。
[0110]所述文件元数据信息包括所述第一文件的文件标识。
[0111]对文件元数据信息的描述可参见对第i子元数据的描述,这里不再进行一一赘述。
[0112]第一文件可以对应一个或多个文件元数据。
[0113]步骤S703:分别将一个或多个所述第一文件数据以第二二进制数据的形式存储至所述存储空间。
[0114]第一文件数据是以二进制数据的形式存储在存储空间中的,为了与上述文件数据对应的第一二进制数据进行区分,这里将第一文件数据在存储空间中的存储形式称为第
二二进制数据。
[0115]步骤S704:根据各个所述第一文件数据在所述存储设备中分别存储的第二二进制数据,分别计算出与各个所述第一文件数据分别对应的标识所述文件元数据信息的文件元数据标识。
[0116]步骤S705:对于每一文件元数据,从所述存储设备中选择任一具有空闲存储空间的物理块,将所述文件元数据存储至所述物理块中。
[0117]所述文件元数据包括一文件元数据信息以及与标识所述一文件元数据信息的文件元数据标识。
[0118]每一个文件文件元数据信息以及标识该文件文件元数据信息的文件文件元数据标识需要存储在同一物理块中,但是不同的文件元数据可以存储在不同的物理块中,且在存储各个文件元数据时,物理块可以是随机选择的,所以与现有技术中将文件文件元数据信息集中存储在文件文件元数据信息集中存储区域是不同的,本发明实施例中的各个文件元数据可以不集中存储在文件元数据集中存储区域,即本发明实施例中的存储设备中可以没有文件文件元数据信息集中存储区域。
[0119]对于同一第一文件而言,可对应一个或多个文件元数据,各个文件元数据之间是分开存储的,且是相互独立的,对于不同的第一文件而言,不同第一文件对应的文件元数据之间也可以是分开存储的,且相互独立的。
[0120]本发明实施例中,文件元数据具有文件元数据标识,由于文件元数据标识是用于标识文件元数据的,所以可以依据文件元数据标识得知存储设备中哪些数据为文件元数据,而且在存储文件元数据时,对存储文件元数据的物理块没有特殊要求,只需要物理块具有空闲存储空间即可,所以文件元数据可能存储于存储设备的任意位置,也就是第一文件对应的文件元数据在存储设备中的存储位置可以是任意的,当元数据集中存储区域被损坏时,第一文件对应的文件元数据可能未被损坏,所以可以依据文件元数据恢复第一文件,然后再依据第一文件恢复文件数据。
[0121]上述步骤S701至步骤S705可以与步骤SlOl至步骤S104所述实施例相结合,步骤S701至步骤S705可以位于步骤SlOl之后,这样存储设备中的数据就有了双重保障,当文件数据被损坏时,可以依据文件元数据恢复该第一文件,然后依据第一文件恢复文件数据,也可以根据上述实施例中具有相应元数据标识的元数据恢复文件数据。
[0122]可以理解的是,在上述任一文件的元数据存储方法实施例中的元数据标识可以是从预设元数据标识范围中选择未被分配的标识作为元数据标识,或者从预设文件数据的文件名称、文件数据的文件路径以及元数据标识的对应关系,获得上述文件数据的元数据标识。
[0123]请参阅图8,为本发明实施例提供的一种读取文件方法的流程示意图,该读取文件方法中的各个元数据的存储方法是上述文件的元数据存储方法,该读取文件方法包括:
[0124]步骤S801:获得所述文件的文件名称以及文件路径。
[0125]步骤S802:根据预先设置的文件名称、文件路径与元数据标识的对应关系,获得所述文件包括的所有文件数据分别对应的元数据标识。
[0126]步骤S803:对于每一所述元数据标识,从所述存储设备中获得所述元数据标识对应的元数据,依据所述元数据从所述存储设备中获得与所述元数据对应的文件数据的第一二进制数据,根据所述第一二进制数据计算出第一校验值,当所述第一校验值与所述元数据标识相等时,解析所述第一二进制数据,以获得与所述第一二进制数据对应的文件数据。
[0127]步骤S804:获得由解析出的各个所述文件数据组成的文件。
[0128]本发明实施例提供的读取文件方法中,由于预先设置了文件名称、文件路径和元数据标识的对应关系,所以当需要打开某一文件时,可以依据上述对应关系直接获得待开启文件对应的元数据标识,在从存储设备中查找具有该元数据标识的元数据时,只需要对比各个元数据的元数据标识即可,无需读取各个元数据的具体内容,而现有技术中在利用元数据信息集中存储区域中的元数据信息开启文件时,需要遍历元数据集中存储区域中的各个元数据信息,直到找到与待开启的文件对应的元数据信息为止,所以本发明实施例提供的文件数据读取方法提高了从存储设备获得上述文件对应的元数据的速度,从而提高了文件读取的速度。[0129]上述读取文件方法实施例中,元数据信息可以包括上述文件的文件标识,根据预先设置的文件名称、文件路径与元数据标识的对应关系,获得上述文件对应的元数据标识的实现方法有多种,本发明实施例提供但不限于以下方法:
[0130]根据预先设置的文件名称、文件路径与文件标识的对应关系,获得所述文件的文件标识;根据预先设置的文件标识与元数据标识的对应关系,获得上述文件对应的元数据标识。
[0131]请参阅图9,为本发明实施例提供的一种文件恢复方法的方法流程示意图,文件包括一个或多个文件数据,所述文件数据对应的元数据包括元数据信息以及标识所述元数据信息的元数据标识,所述元数据信息是根据为所述文件数据分配的存储空间获得的,所述元数据标识是根据第一二进制数据以及预设算法计算得出的,所述文件数据是以所述第一二进制数据的形式存储在所述存储空间中的,本发明实施例中的文件对应的元数据的存储方法与上述实施例所述文件的元数据存储方法一致,该文件数据恢复方法包括包括:
[0132]步骤S901:接收到恢复文件的请求时,从所述存储设备中获得具有元数据标识的元数据。
[0133]待恢复的文件可能对应一个或多个元数据,即待恢复的文件可能对应一个或多个元数据标识。
[0134]步骤S902:对于每一元数据,依据所述元数据中的元数据信息读取所述存储设备中相应位置的第一二进制数据,依据所述第一二进制数据以及所述预设算法计算出校验值,当所述校验值与所述元数据标识相等时,确定所述元数据有效,解析所述第一二进制数据。
[0135]可以理解的是,某一个或多个元数据可能被损坏,此时根据损坏之后的元数据恢复出的数据可能是一堆乱码,所以在解析元数据对应第一二进制数据之前,可以先检测元数据是否被损坏,即检测元数据的有效性。
[0136]可以通过预设算法,依据第一二进制数据计算出校验值,例如将第一二进制数据的循环冗余校验值作为本发明实施例中的检验值、将第一二进制数据进行MD5 (MessageDigest Algorithm,消息摘要算法)获得的值作为本发明实施例中的校验值,或将第一二进制数据进行SHA (Secure Hash Algorithm,安全散列算法),获得的值作为本发明实施例中的校验值,本发明实施例对第一二进制数据对应的校验值的计算方法不作具体限定。
[0137]计算元数据标识的预设算法与计算校验值的算法相同,这样才可以将两者进行比较。
[0138]假设上述文件对应N个元数据,分别为第一元数据至第N元数据,相应的第一二进制数据包括:第一元数据对应第一二进制数据I以及第N元数据对应第一二进制数据N,N为大于等于I的自然数。这时需要对第一二进制数据I以及第一二进制数据N分别进行解析,获得解析后的第一二进制数据I对应的第一数据,以及第一二进制数据N对应的第N数据。
[0139]步骤S903:获得由解析第一二进制数据获得的数据组成的文件数据。
[0140]上述第一数据和第N数据可以组成文件数据。本发明实施例中,如果第一元数据被损坏,则只有第一数据不能被正确解析出,并不影响本文件数据中的其他数据。综上,如果可以读取M个元数据,就可以恢复M个数据,M为大于等于I小于等于N的自然数。[0141]本发明实施例提供的文件恢复方法,每一元数据都具有元数据标识,且元数据标识是用于标识元数据的,可以依据元数据标识得知存储空间中的哪些数据为元数据,本发明实施例中没有现有技术中的接口函数,且即使某一元数据被损坏,也不会影响其他元数据,即各个元数据是相互独立的,即几个元数据未被损坏,就能恢复出这几个元数据对应的数据,从而降低了用户的损失。
[0142]上述任一文件恢复方法实施例中,从存储设备中获得上述文件对应的元数据的方法可以有多种,本发明实施例提供的文件恢复方法中从存储设备中获得具有上述元数据标识的元数据的一种实现方法包括:获得上述文件的文件名称以及文件路径。根据预先设置的文件名称、文件路径与元数据标识的对应关系,获得与上述文件数据对应的元数据标识。从存储设备中获得具有上述文件标识的元数据。
[0143]元数据信息可以包括文件标识,上述根据预先设置的文件名称、文件路径与元数据标识的对应关系,获得与上述文件数据对应的元数据标识可以包括:根据预先设置的文件名称、文件路径与文件标识的对应关系,获得上述文件数据的文件标识,根据预先设置的文件标识与元数据标识的对应关系,获得上述文件对应的元数据标识。
[0144]元数据信息可以包括文件标识,本发明实施例提供的文件恢复方法中从存储设备中获得具有上述元数据标识的元数据的另一种实现方法包括:获得上述文件的文件名称以及文件路径。根据预先设置的文件名称、文件路径与文件标识的对应关系,获得与上述文件数据的文件标识。从存储设备中获得具有上述文件标识的元数据。
[0145]可以理解的是,元数据可以与文件存储在同一物理块中,也可以与文件分开存储,假设存储元数据的物理块地址范围为第一预设地址范围,本发明实施例提供的文件恢复方法中从存储设备中获得具有上述元数据标识的元数据一种实现方法包括:扫描存储设备中物理地址范围属于第一预设地址范围的物理块。从物理地址范围属于第一预设地址范围的物理块中获得具有上述元数据标识的元数据。
[0146]本发明实施例还提供了一种文件数据恢复方法的流程结构示意图,该文件数据恢复方法中的存储设备还存储有文件元数据,所述文件元数据包括文件元数据信息以及标识所述文件元数据信息的文件元数据标识,所述文件元数据是第一文件对应的元数据,所述第一文件存储有所述文件对应的所有元数据,该方法包括:从所述存储设备中获得具有所述文件元数据标识的文件元数据;对于每一文件元数据,依据所述文件元数据中的文件元数据信息读取所述存储设备中相应位置的第二二进制数据,根据所述第二二进制数据计算出第二校验值,当所述第二校验值与所述文件元数据标识相等时,解析所述第二二进制数据,以获得与所述第二二进制数据对应的第一文件数据;获得由所述第一文件数据组成的第一文件;根据所述第一文件恢复所述文件。
[0147]上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了多种装置,下面给出具体的实施例进行详细说明。
[0148]请参阅图10,为本发明实施例提供的一种文件的元数据存储装置的结构示意图,该文件的元数据存储装置包括:第一获取模块1001、第一存储模块1002、计算模块1003以及第一处理模块1004,其中:
[0149]第一获取模块1001,用于根据为文件中一个或多个文件数据分别分配的存储空间获得与各个所述文件数据分别对应的元数据信息。[0150]所述元数据信息包括所述文件的文件标识。
[0151]对第一获取模块1001的描述可参见对步骤SlOl的描述,此处不再进行一一赘述。
[0152]第一存储模块1002,用于分别将一个或多个所述文件数据以第一二进制数据的形式存储至所述存储空间。
[0153]对第一存储模块1002的描述可参见对步骤S102的描述,此处不再进行一一赘述。
[0154]计算模块1003,用于根据各个所述第一二进制数据分别计算出与各个所述文件数据分别对应的元数据标识,所述元数据标识用于标识所述元数据信息。
[0155]第一处理模块1004,用于对于每一元数据,从所述存储设备中选择任一具有空闲存储空间的物理块,将所述元数据存储至所述物理块,所述元数据包括一元数据信息以及标识所述一元数据信息的元数据标识。
[0156]本发明实施例提供的文件的元数据存储装置中,一个文件可能包括一个或多个文件数据,每个文件数据都对应元数据,所以一个文件可能对应一个或多个元数据,每个元数据具有元数据标识,由于元数据标识是用于标识元数据信息的,所以可以依据元数据标识得知存储设备中哪些数据为元数据,所以无论元数据被存储在哪一位置,都可以通过元数据标识被识别出来,所以不需要将元数据信息集中存储在某一区域。第一处理模块1004在存储元数据时,对存储元数据的物理块没有特殊要求,只需要选择任一具有空闲存储空间的物理块即可,即元数据可能存储于存储设备的任意位置,各个元数据没有存储区域的限制,无需建立各个元数据之间的关联,所以各个元数据间相互独立,即某一元数据被损坏了并不影响其他元数据。
[0157]可以理解的是,在实际应用中文件中各个文件数据与元数据在存储设备中的存储方式有多种,本发明实施例提供但不限于以下几种存储方式。
[0158]文件数据与文件的元数据存储在同一物理块中。上述文件可以包括第一文件数据,与第一文件数据对应元数据为第一元数据,为第一文件数据分配的存储空间为第一物理块,第一文件数据的字节长度不大于第一字节数减去第二字节数所得的差,上述第一字节数是指第一物理块在存储第一文件数据之前空闲存储空间的字节数,上述第二字节数是上述第一元数据的字节长度,上述第一存储模块包括:
[0159]存储单元,用于将上述第一文件数据的元数据存储至第一物理块。
[0160]将文件数据与文件的元数据存储在同一物理块中,则当检测到某一元数据时,也就获得了该某一元数据对应的文件数据的物理块地址,所以可以节省查找文件数据对应的物理块地址的时间,从而提高了读取和恢复文件数据的效率。本发明实施例还提供了一种文件的元数据存储装置中的存储单元的一种实现方式,该存储单元包括:获得子单元、确定子单元以及存储子单元,其中:获得子单元,用于获得第一文件数据存储至所述第一物理块的第一起始偏移地址。确定子单元,用于将所述第一起始偏移地址、所述第一文件数据的字节长度与I之和,确定为所述第一文件数据的元数据存储至所述第一物理块的第二起始偏移地址。存储子单元,用于以所述第二起始偏移地址为起始偏移地址,存储所述第一元数据。
[0161]本发明实施例中,由于存储子单元在存储第一元数据时,是以确定子单元确定的第一起始偏移地址、第一文件数据的字节长度与I之和为起始偏移地址的,所以在恢复或读取该文件数据时,从存储设备中获得第一元数据后,由于第一元数据中可以存储有与其对应的文件数据的字节长度信息(假设字节长度为1024个字节),所以可以获知第一元数据的前1024个字节为该第一元数据对应的第一文件数据,可以直接读取第一文件数据,省略了从存储设备中查找第一文件数据的时间,从而提高了读取和恢复文件数据的速度。
[0162]存储上述元数据的物理块的地址范围可以为第一预设地址范围,第一存储模块具体用于:从存储设备中属于第一预设地址范围的物理块中选择具有空闲存储空间物理块。由于存储元数据的物理块的物理地址范围为第一预设地址范围,所以在查找元数据时,不需要遍历整个存储设备,只需要遍历第一预设地址范围的元数据,从而提高了查找元数据的速度。
[0163]本发明实施例还提供了一种文件的元数据存储装置的另一实施例,该装置包括:第一存储模块、第四获取模块、第二存储模块、第一计算模块以及第三处理模块,其中:第一存储模块,用于将所述文件中包括的所有文件数据分别对应的元数据信息存储至第一文件中。第四获取模块,用于根据为所述第一文件中一个或多个第一文件数据分配的所述存储设备中的存储空间,获得与各个所述第一文件数据分别对应的文件元数据信息。所述文件元数据信息包括所述第一文件的文件标识。第二存储模块,用于分别将一个或多个所述第一文件数据以第二二进制数据的形式存储至所述存储空间。第一计算模块,用于根据各个所述第一文件数据在所述存储设备中分别存储的第二二进制数据,分别计算出与各个所述第一文件数据分别对应的标识所述文件元数据信息的文件元数据标识。第三处理模块,用于对于每一文件元数据,从所述存储设备中选择任一具有空闲存储空间的物理块,将所述文件元数据存储至所述物理块中,所述文件元数据包括一文件元数据信息以及与标识所述一文件元数据信息的文件元数据标识。
[0164]本发明实施例中当第一文件被损坏时,可以依据文件元数据对第一文件进行恢复,根据恢复后的第一文件就可以获得个文件数据了,从而使存储设备里的数据更加安全。
[0165]本发明实施例可以与图10所示装置实施例相结合,这样存储设备中的数据就有了双重保障,当文件被损坏时,可以依据文件元数据恢复该第一文件,然后依据第一文件恢复文件数据,也可以根据上述实施例中具有相应元数据标识的元数据恢复文件数据。
[0166]可以理解的是,上述任一文件的元数据存储装置实施例中的获得元数据标识的装置可以包括:选择标识单元,用于从预设元数据标识范围中选择未被分配的标识作为上述元数据标识;或确定标识单元,用于从预设上述文件数据的文件名称、上述文件数据的文件路径与上述文件数据的元数据标识的对应关系,确定出上述文件数据的元数据标识。
[0167]请参阅图11,为本发明实施例提供的一种读取文件的装置的结构示意图,该读取文件的装置中的元数据的存储方法与上述文件的元数据存储方法一致,上述文件数据读取装置包括:第二获取模块1101、第三获取模块1102、第二处理模块1103以及获得文件模块1104,其中:
[0168]第二获取模块1101,用于获得所述文件的文件名称以及文件路径。
[0169]第三获取模块1102,用于根据预先设置的文件名称、文件路径与元数据标识的对应关系,获得所述文件包括的所有文件数据分别对应的元数据标识。
[0170]第二处理模块1103,用于对于每一所述元数据标识,从所述存储设备中获得所述元数据标识对应的元数据,依据所述元数据从所述存储设备中获得与所述元数据对应的文件数据的第一二进制数据,根据所述第一二进制数据计算出第一校验值,当所述第一校验值与所述元数据标识相等时,解析所述第一二进制数据,以获得与所述第一二进制数据对应的文件数据。
[0171]获得文件模块1104,用于获得由解析出的各个所述文件数据组成的文件。
[0172]本发明实施例提供的文件数据读取装置中,由于第三获取模块1102预先设置了文件名称、文件路径和元数据标识的对应关系,所以当需要打开某一文件时,第三获取模块1102可以依据上述对应关系直接获得待开启文件对应的元数据标识,在第二处理模块1103从存储设备中查找具有该元数据标识的元数据时,只需要对比各个元数据的元数据标识即可,无需读取各个元数据的具体内容,而现有技术中在利用元数据信息集中存储区域中的元数据信息开启文件时,需要遍历元数据集中存储区域中的各个元数据信息,直到找到与待开启的文件对应的元数据信息为止,所以本发明实施例提供的文件数据读取方法提高了从存储设备获得待开启文件数据对应的元数据的速度,从而提高了文件数据读取的速度。
[0173]可以理解的是,上述读取文件的装置施例中,元数据信息可以包括上述文件数据的文件标识,第三获取模块的结构有多种,本发明实施例提供但不限于以下构造,第三获取模块可以包括:第一获得单元,用于根据预先设置的文件名称、文件路径与文件标识的对应关系,获得所述文件数据的文件标识;第二获得单元,用于根据预先设置的文件标识与元数据标识的对应关系,获得所述文件数据对应的元数据标识。
[0174]请参阅图12,为本发明实施例提供的一种文件恢复装置的结构示意图,所述文件包括一个或多个文件数据,所述文件数据对应的元数据包括元数据信息以及标识所述元数据信息的元数据标识,所述元数据信息是根据为所述文件数据分配的存储空间获得的,所述元数据标识是根据第一二进制数据以及预设算法计算得出的,所述文件数据是以所述第一二进制数据的形式存储在所述存储空间中的,本发明实施例中的文件恢复装置中元数据的存储方法与上述文件的元数据存储方法一致,上述文件数据恢复装置包括:第一获取模块1201、第一处理模块1202以及第一组成模块1203,其中:
[0175]第一获取模块1201,用于接收到恢复文件的请求时,从所述存储设备中获得具有元数据标识的元数据。
[0176]待恢复的文件可能对应一个或多个元数据,即待恢复的文件可能对应一个或多个元数据标识。
[0177]第一处理模块1202,用于对于每一元数据,依据所述元数据中的元数据信息读取所述存储设备中相应位置的第一二进制数据,依据所述第一二进制数据以及所述预设算法计算出校验值,当所述校验值与所述元数据标识相等时,确定所述元数据有效,解析所述第
一二进制数据。
[0178]可以理解的是,某一个或多个元数据可能被损坏,此时根据损坏之后的元数据恢复出的数据可能是一堆乱码,所以在解析元数据对应第一二进制数据之前,可以先检测元数据是否被损坏,即检测元数据的有效性。
[0179]可以通过预设算法,依据第一二进制数据计算出校验值,例如将第一二进制数据的循环冗余校验值作为本发明实施例中的检验值、将第一二进制数据进行MD5 (MessageDigest Algorithm,消息摘要算法)获得的值作为本发明实施例中的校验值,或将第一二进制数据进行SHA (Secure Hash Algorithm,安全散列算法),获得的值作为本发明实施例中的校验值,本发明实施例对第一二进制数据对应的校验值的计算方法不作具体限定。
[0180]假设上述文件对应N个元数据,分别为第一元数据至第N元数据,相应的第一二进制数据包括:第一元数据对应第一二进制数据I以及第N元数据对应第一二进制数据N,N为大于等于I的自然数。这时需要对第一二进制数据I以及第一二进制数据N分别进行解析,获得解析后的第一二进制数据I对应的第一数据,以及第一二进制数据N对应的第N数据。
[0181]第一组成模块1203,用于获得由解析所述第一二进制数据获得的文件数据组成的文件。
[0182]上述第一数据和第N数据可以组成文件数据。本发明实施例如果第一元数据被损坏,只有第一数据不能被正确解析出,并不影响本文件数据中的其他数据。综上,如果可以读取M个元数据,就可以恢复M个数据,M为大于等于I小于等于N的自然数。
[0183]本发明实施例提供的文件数据恢复装置,每一元数据都具有元数据标识,且元数据标识是用于标识元数据的,所以第一获取模块1201可以依据元数据标识得知存储空间中的哪些数据为元数据,本发明实施例中没有现有技术中的接口函数,且即使某一元数据被损坏,也不会影响其他元数据,即各个元数据是相互独立的,即几个元数据未被损坏,就能恢复出这几个元数据对应的数据,从而降低了用户的损失。
[0184]本发明实施例提供的一种文件数据恢复装置中第一获取模块可以包括:第一获得单元、第二获得单元以及第三获得单元,其中:第一获得单元,用于获得上述文件的文件名称以及文件路径。第二获得单元,用于根据预先设置的文件名称、文件路径与元数据标识的对应关系,获得与上述文件对应的元数据标识。第三获得单元,用于从存储设备中获得具有上述文件标识的元数据。
[0185]元数据信息可以包括文件标识,第二获得单元可以包括:第一获得子单元,用于根据预先设置的文件名称、文件路径与文件标识的对应关系,获得上述文件数据的文件标识;以及第二获得子单元,用于根据预先设置的文件标识与元数据标识的对应关系,获得上述文件数据对应的元数据标识。
[0186]元数据信息可以包括文件标识,本发明实施例提供的一种文件数据恢复装置中还可以包括:第四获得单元、第五获得单元以及第六获得单元,其中:第四获得单元,用于获得上述文件的文件名称以及文件路径。第五获得单元,用于根据预先设置的文件名称、文件路径与文件标识的对应关系,获得与上述文件数据的文件标识。第六获得单元,用于从存储设备中获得具有上述文件标识的元数据。
[0187]本发明实施例提供的一种文件数据恢复装置中第一获取模块可以包括:扫描单元以及第七获得单元,其中:扫描单元,用于扫描存储设备中物理地址范围属于上述第一预设地址范围的物理块。第七获得单元,用于从物理地址范围属于上述第一预设地址范围的物理块中获得具有上述元数据标识的元数据。
[0188]请参阅图13,为本发明实施例提供的一种文件恢复装置的另一实施例的装置结构示意图,文件恢复装置中的存储设备还存储有文件元数据,所述文件元数据包括文件元数据信息以及标识所述文件元数据信息的文件元数据标识,所述文件元数据是第一文件对应的元数据,所述第一文件存储有所述文件对应的所有元数据,上述文件数据恢复装置包括:第二获取模块1301、第二处理模块1302、第二组成模块1303以及恢复模块1304,其中:[0189]第二获取模块1301,用于从所述存储设备中获得具有所述文件元数据标识的文件元数据。
[0190]第二处理模块1302,用于对于每一文件元数据,依据所述文件元数据中的文件元数据信息读取所述存储设备中相应位置的第二二进制数据,根据所述第二二进制数据计算出第二校验值,当所述第二校验值与所述文件元数据标识相等时,解析所述第二二进制数据,以获得与所述第二二进制数据对应的第一文件数据。
[0191]第二组成模块1303,用于获得由所述第一文件数据组成的第一文件。
[0192]恢复模块1304,用于根据上述第一文件恢复各个上述文件。
[0193]请参阅图14,为本发明实施例提供的一种文件的元数据存储系统的结构示意图,该文件的元数据存储系统包括:处理器1401、通信总线1402和存储设备1403,其中:
[0194]其中处理器1401、存储器1403通过通信总线1402完成相互间的通信。
[0195]处理器1401用于执行程序。
[0196]存储设备1403用于存放程序。
[0197]程序可以包括程序代码,上述程序代码包括计算机操作指令。
[0198]处理器1401可能是一个中央处理器CPU,或者是特定集成电路ASICXApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0199]存储设备1403可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0200]其中上述程序用于:
[0201]根据为文件中一个或多个文件数据分别分配的存储空间获得与各个所述文件数据分别对应的元数据信息,所述元数据信息包括所述文件的文件标识;
[0202]分别将一个或多个所述文件数据以第一二进制数据的形式存储至所述存储空间;
[0203]根据各个所述第一二进制数据分别计算出与各个所述文件数据分别对应的元数据标识,所述元数据标识用于标识所述元数据信息;
[0204]对于每一元数据,从所述存储设备中选择任一具有空闲存储空间的物理块,将所述元数据存储至所述物理块,所述元数据包括一元数据信息以及标识所述一元数据信息的元数据标识。
[0205]可选的,上述程序可以包括图10至图11所示的功能模块。
[0206]本发明实施例还提供了一种文件数据恢复系统的结构示意图,所述文件包括一个或多个文件数据,所述文件数据对应的元数据包括元数据信息以及标识所述元数据信息的元数据标识,所述元数据信息是根据为所述文件数据分配的存储空间获得的,所述元数据标识是根据第一二进制数据以及预设算法计算得出的,所述文件数据是以所述第一二进制数据的形式存储在所述存储空间中的,该文件数据恢复系统包括:处理器、存储设备以及通信总线,其中处理器、存储设备通过通信总线完成相互间的通信。
[0207]处理器用于执行程序。
[0208]存储设备用于存放程序。
[0209]程序可以包括程序代码,上述程序代码包括计算机操作指令。处理器可能是一个中央处理器CPU,或者是特定集成电路ASIC (Application Specific IntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0210]存储设备可能包含高速RAM存储器,也可能还包括非易失性存储器(non-vo latile memory ),例如至少一个磁盘存储器。
[0211]其中上述程序用于:
[0212]接收到恢复文件的请求时,从所述存储设备中获得具有元数据标识的元数据;
[0213]对于每一元数据,依据所述元数据中的元数据信息读取所述存储设备中相应位置的第一二进制数据,依据所述第一二进制数据以及所述预设算法计算出校验值,当所述校验值与所述元数据标识相等时,确定所述元数据有效,解析所述第一二进制数据;
[0214]获得由解析所述第一二进制数据获得的文件数据组成的文件
[0215]可选的,上述程序可以包括图12至图13所示功能模块。
[0216]需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置或系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0217]还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0218]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。 [0219]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种文件的元数据存储方法,其特征在于,包括: 根据为文件中一个或多个文件数据分别分配的存储空间获得与各个所述文件数据分别对应的元数据信息,所述元数据信息包括所述文件的文件标识; 分别将一个或多个所述文件数据以第一二进制数据的形式存储至所述存储空间;根据各个所述第一二进制数据分别计算出与各个所述文件数据分别对应的元数据标识,所述元数据标识用于标识所述元数据信息; 对于每一元数据,从所述存储设备中选择任一具有空闲存储空间的物理块,将所述元数据存储至所述物理块,所述元数据包括一元数据信息以及标识所述一元数据信息的元数据标识。
2.根据权利要求1所述文件的元数据存储方法,其特征在于,所述文件包括第一文件数据,与所述第一文件数据对应的元数据为第一元数据,为所述第一文件数据分配的存储空间为第一物理块,所述第一文件数据的字节长度不大于第一字节数减去第二字节数所得的差,所述第一字节数是指所述第一物理块在存储所述第一文件数据之前空闲存储空间的字节数,所述第二字节数是所述第一元数据的字节数,所述将所述元数据存储至所述物理块包括: 将所述第一文件数据的元数据存储至所述第一物理块。
3.根据权利要求2所述文件的元数据存储方法,其特征在于,所述将所述第一文件数据的元数据存储至第一物理块包括: 获得第一文件数据存储至所述第一物理块的第一起始偏移地址; 将所述第一起始偏移地址、所述第一文件数据的字节长度与I之和,确定为所述第一文件数据的元数据存储至所述第一物理块的第二起始偏移地址; 以所述第二起始偏移地址为起始偏移地址,存储所述第一元数据。
4.根据权利要求1所述文件的元数据存储方法,其特征在于,在所述根据各个所述第一二进制数据分别计算出与各个所述文件数据分别对应的元数据标识之后,还包括: 将所述文件中包括的所有文件数据分别对应的元数据信息存储至第一文件中; 根据为所述第一文件中一个或多个第一文件数据分配的所述存储设备中的存储空间,获得与各个所述第一文件数据分别对应的文件元数据信息,所述文件元数据信息包括所述第一文件的文件标识; 分别将一个或多个所述第一文件数据以第二二进制数据的形式存储至所述存储空间; 根据各个所述第一文件数据在所述存储设备中分别存储的第二二进制数据,分别计算出与各个所述第一文件数据分别对应的标识所述文件元数据信息的文件元数据标识;对于每一文件元数据,从所述存储设备中选择任一具有空闲存储空间的物理块,将所述文件元数据存储至所述物理块中,所述文件元数据包括一文件元数据信息以及与标识所述一文件元数据信息的文件元数据标识。
5.根据权利要求1所述文件的元数据存储方法,其特征在于,在所述从所述存储设备中选择任一具有空闲存储空间的物理块,将所述元数据存储至所述物理块之后,还包括读取所述文件的方法,读取所述文件的方法包括: 获得所述文件的文件名称以及文件路径;根据预先设置的文件名称、文件路径与元数据标识的对应关系,获得所述文件包括的所有文件数据分别对应的元数据标识; 对于每一所述元数据标识,从所述存储设备中获得所述元数据标识对应的元数据,依据所述元数据从所述存储设备中获得与所述元数据对应的文件数据的第一二进制数据,根据所述第一二进制数据计算出第一校验值,当所述第一校验值与所述元数据标识相等时,解析所述第一二进制数据,以获得与所述第一二进制数据对应的文件数据; 获得由解析出的各个所述文件数据组成的文件。
6.一种文件恢复方法,其特征在于,所述文件包括一个或多个文件数据,所述文件数据对应的元数据包括元数据信息以及标识所述元数据信息的元数据标识,所述元数据信息是根据为所述文件数据分配的存储空间获得的,所述元数据标识是根据第一二进制数据以及预设算法计算得出的,所述文件数据是以所述第一二进制数据的形式存储在所述存储空间中的,所述文件数据恢复方法包括: 接收到恢复文件的请求时,从所述存储设备中获得具有元数据标识的元数据; 对于每一元数据,依据所述元数据中的元数据信息读取所述存储设备中相应位置的第一二进制数据,依据所述第一二进制数据以及所述预设算法计算出校验值,当所述校验值与所述元数据标识相等时,确定所述元数据有效,解析所述第一二进制数据; 获得由解析所述第一二进制数据获得的文件数据组成的文件。
7.根据权利要求6所述文件恢复方法,其特征在于,所述存储设备还存储有文件元数据,所述文件元数据包括文件元数据信息以及标识所述文件元数据信息的文件元数据标识,所述文件元数据是`第一文件对应的元数据,所述第一文件存储有所述文件对应的所有元数据,所述文件恢复方法还包括: 从所述存储设备中获得具有所述文件元数据标识的文件元数据; 对于每一文件元数据,依据所述文件元数据中的文件元数据信息读取所述存储设备中相应位置的第二二进制数据,根据所述第二二进制数据计算出第二校验值,当所述第二校验值与所述文件元数据标识相等时,解析所述第二二进制数据,以获得与所述第二二进制数据对应的第一文件数据; 获得由所述第一文件数据组成的第一文件; 根据所述第一文件恢复所述文件。
8.一种文件的元数据存储装置,其特征在于,包括: 第一获取模块,用于根据为文件中一个或多个文件数据分别分配的存储空间获得与各个所述文件数据分别对应的元数据信息,所述元数据信息包括所述文件的文件标识; 存储模块,用于分别将一个或多个所述文件数据以第一二进制数据的形式存储至所述存储空间; 计算模块,根据各个所述第一二进制数据分别计算出与各个所述文件数据分别对应的元数据标识,所述元数据标识用于标识所述元数据信息; 第一处理模块,用于对于每一元数据,从所述存储设备中选择任一具有空闲存储空间的物理块,将所述元数据存储至所述物理块,所述元数据包括一元数据信息以及标识所述一元数据信息的元数据标识。
9.根据权利要求8所述文件的元数据存储装置,其特征在于,所述文件包括第一文件数据,与所述第一文件数据对应的元数据为第一元数据,为所述第一文件数据分配的存储空间为第一物理块,所述第一文件数据的字节长度不大于第一字节数减去第二字节数所得的差,所述第一字节数是指所述第一物理块在存储所述第一文件数据之前空闲存储空间的字节数,所述第二存储模块包括: 存储单元,用于将所述第一文件的元数据存储至所述第一物理块。
10.根据权利要求9所述文件的元数据存储装置,其特征在于,所述文件的元数据存储装置还包括读取文件的装置,所述读取文件的装置包括: 第二获取模块,用于获得所述文件的文件名称以及文件路径; 第三获取模块,用于根据预先设置的文件名称、文件路径与元数据标识的对应关系,获得所述文件包括的所有文件数据分别对应的元数据标识; 第二处理模块,用于对于每一所述元数据标识,从所述存储设备中获得所述元数据标识对应的元数据,依据所述元数据从所述存储设备中获得与所述元数据对应的文件数据的第一二进制数据,根据所述第一二进制数据计算出第一校验值,当所述第一校验值与所述元数据标识相等时,解析所述第一二进制数据,以获得与所述第一二进制数据对应的文件数据; 获得文件模块,用于获得由解析出的各个所述文件数据组成的文件。
11.一种文件恢复装置,其特征在于,所述文件包括一个或多个文件数据,所述文件数据对应的元数据包括元数据信息以及标识所述元数据信息的元数据标识,所述元数据信息是根据为所述文件数据分配的存储空间获得的,所述元数据标识是根据第一二进制数据以及预设算法计算得出的,所述文件数据是以所述第一二进制数据的形式存储在所述存储空间中的,所述文件数据恢复装置包括: 第一获取模块,用于接收到恢复文件的请求时,从所述存储设备中获得具有元数据标识的元数据; 第一处理模块,用于对于每一元数据,依据所述元数据中的元数据信息读取所述存储设备中相应位置的第一二进制数据,依据所述第一二进制数据以及所述预设算法计算出校验值,当所述校验值与所述元数据标识相等时,确定所述元数据有效,解析所述第一二进制数据; 第一组成模块,用于获得由解析所述第一二进制数据获得的文件数据组成的文件。
12.根据权利要求11所述文件数据恢复装置,其特征在于,所述存储设备还存储有文件元数据,所述文件元数据包括文件元数据信息以及标识所述文件元数据信息的文件元数据标识,所述文件元数据是第一文件对应的元数据,所述第一文件存储有所述文件对应的所有元数据,所述文件数据恢复装置还包括: 第二获取模块,用于从所述存储设备中获得具有所述文件元数据标识的文件元数据; 第二处理模块,用于对于每一文件元数据,依据所述文件元数据中的文件元数据信息读取所述存储设备中相应位置的第二二进制数据,根据所述第二二进制数据计算出第二校验值,当所述第二校验值与所述文件元数据标识相等时,解析所述第二二进制数据,以获得与所述第二二进制数据对应的第一文件数据; 第二组成模块,用于获得由所述第一文件数据组成的第一文件; 恢复模块,用于根据所述第一文件恢复所述文件。
【文档编号】G06F17/30GK103699585SQ201310656195
【公开日】2014年4月2日 申请日期:2013年12月6日 优先权日:2013年12月6日
【发明者】文海 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1