一种元数据处理方法、装置、设备及可读存储介质与流程

文档序号:20203445发布日期:2020-03-27 20:52阅读:167来源:国知局
一种元数据处理方法、装置、设备及可读存储介质与流程

本申请涉及计算机技术领域,特别涉及一种元数据处理方法、装置、设备及可读存储介质。



背景技术:

分布式对象存储系统面向的是非结构化的数据。在分布式对象存储系统中,包括多个存储文件指纹对象的桶,一个桶中存储着多个文件的指纹对象,文件的指纹对象对应该文件的元数据信息。

若在分布式对象存储系统启用数据重删功能,那么指纹对象与文件一一对应,元数据信息也与文件一一对应,也就是同一文件内容的元数据信息有且只有一个。因此可能存在如下场景:若不同用户往分布式对象存储系统中上传文件名称不同,但文件内容相同的文件,那么由于文件的指纹对象基于文件内容而创建,且元数据信息与文件内容一一对应,因此元数据信息与指纹信息一一对应,那么后上传的文件的元数据信息可能会覆盖先上传的文件的元数据信息,造成文件与元数据信息不对应,从而导致文件无法被访问。其中,元数据信息中包括:文件的权限、大小、类型等属性信息。不同用户上传的具有相同内容的文件的元数据信息一般不同。

因此,在数据重删场景下,如何使分布式对象存储系统中的文件与其元数据信息相对应,是本领域技术人员需要解决的问题。



技术实现要素:

有鉴于此,本申请的目的在于提供一种元数据处理方法、装置、设备及可读存储介质,以实现在数据重删场景下,分布式对象存储系统中的文件与其元数据信息相对应。其具体方案如下:

第一方面,本申请提供了一种元数据处理方法,包括:

若接收到客户端发送的目标文件的上传请求,则确定目标文件对应的桶信息,以及目标文件的文件名称;

根据桶信息、文件名称和默认权限值生成目标文件的元数据项;

判断当前分布式对象存储系统中是否存在元数据项;

若是,则根据目标文件更新元数据项中的元数据信息。

优选地,确定目标文件对应的桶信息,以及目标文件的文件名称,包括:

解析上传请求,获得桶信息和文件名称;桶信息包括桶名称。

优选地,根据桶信息、文件名称和默认权限值生成目标文件的元数据项,包括:

根据桶名称、文件名称和默认权限值生成元数据项。

优选地,还包括:

若当前分布式对象存储系统中不存在元数据项,则判断当前分布式对象存储系统中是否存在目标文件对应的指纹对象;

若是,则创建元数据项,并在元数据项中存储目标文件的元数据信息。

优选地,还包括:

若当前分布式对象存储系统中不存在指纹对象,则根据目标文件的文件内容生成指纹对象,并执行创建元数据项,并在元数据项中存储目标文件的元数据信息的步骤。

优选地,根据目标文件的文件内容生成指纹对象,包括:

利用散列算法对文件内容进行处理,获得指纹对象。

优选地,还包括:

接收客户端发送的目标文件的元数据信息查询请求;

解析元数据信息查询请求,获得桶信息和文件名称;

根据桶信息、文件名称和默认权限值生成元数据项;

在当前分布式对象存储系统中查询元数据项;

若查询到元数据项,则将元数据项中的元数据信息返回至客户端。

第二方面,本申请提供了一种元数据处理装置,包括:

确定模块,用于若接收到客户端发送的目标文件的上传请求,则确定目标文件对应的桶信息,以及目标文件的文件名称;

生成模块,用于根据桶信息、文件名称和默认权限值生成目标文件的元数据项;

判断模块,用于判断当前分布式对象存储系统中是否存在元数据项;

更新模块,用于若当前分布式对象存储系统中存在元数据项,则根据目标文件更新元数据项中的元数据信息。

第三方面,本申请提供了一种元数据处理设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序,以实现前述公开的元数据处理方法。

第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,计算机程序被处理器执行时实现前述公开的元数据处理方法。

通过以上方案可知,本申请提供了一种元数据处理方法,包括:若接收到客户端发送的目标文件的上传请求,则确定目标文件对应的桶信息,以及目标文件的文件名称;根据桶信息、文件名称和默认权限值生成目标文件的元数据项;判断当前分布式对象存储系统中是否存在元数据项;若是,则根据目标文件更新元数据项中的元数据信息。

可见,该方法在接收到客户端发送的目标文件的上传请求时,首先确定目标文件对应的桶信息,以及目标文件的文件名称;进而根据桶信息、文件名称和默认权限值生成目标文件的元数据项;然后判断当前分布式对象存储系统中是否存在元数据项;若当前分布式对象存储系统中存在元数据项,则表明目标文件在分布式对象存储系统中已存储过,那么根据目标文件更新元数据项中的元数据信息即可。其中,本申请基于桶信息、文件名称和默认权限值生成目标文件的元数据项,能够区别出文件名称不同,但文件内容相同的文件,使其分别对应有元数据信息,打破了原有的元数据信息与文件内容(指纹信息)一一对应的情况,从而可使文件与其元数据信息相对应,也避免了文件的元数据信息因被覆盖而丢失,能够避免文件无法被访问等异常情况的发生。在本申请中,文件名称不同但文件内容相同的文件对应的指纹对象对应有多个元数据项,每个元数据项与文件一一对应。

相应地,本申请提供的一种元数据处理装置、设备及可读存储介质,也同样具有上述技术效果。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请公开的一种元数据处理方法流程图;

图2为本申请公开的一种元数据查询方法流程图;

图3为本申请公开的另一种元数据处理方法流程图;

图4为本申请公开的一种元数据处理装置示意图;

图5为本申请公开的一种元数据处理设备示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前,在数据重删场景下,文件名称不同但文件内容相同的文件的元数据可能会因覆盖而发生丢失等异常情况,导致文件无法被访问。为此,本申请提供了一种元数据处理方案,能够在数据重删场景下,使分布式对象存储系统中的文件名称不同但文件内容相同的文件与其元数据信息相对应,从而可避免文件的元数据信息因被覆盖而丢失。

参见图1所示,本申请实施例公开了一种元数据处理方法,包括:

s101、若接收到客户端发送的目标文件的上传请求,则确定目标文件对应的桶信息,以及目标文件的文件名称;

需要说明的是,分布式对象存储系统中包括多个桶,每个桶中存储着多个文件的指纹对象,文件的指纹对象对应文件的元数据项,元数据项中存储着文件的元数据信息。

其中,文件的指纹对象是利用md5算法、sha1算法或sha256算法对文件内容进行处理获得的。文件的指纹对象一般为一个32位的十六进制数。文件名称和后缀的修改不影响文件的指纹对象。但对于文件内容的修改会导致文件的指纹对象发生变化,因此若文件的指纹对象发生变化,则认为文件已经被修改。

在一种具体实施方式中,确定目标文件对应的桶信息,以及目标文件的文件名称,包括:解析上传请求,获得桶信息和文件名称;桶信息包括桶名称、桶id等内容。

s102、根据桶信息、文件名称和默认权限值生成目标文件的元数据项;

在一种具体实施方式中,根据桶信息、文件名称和默认权限值生成目标文件的元数据项,包括:根据桶名称、文件名称和默认权限值生成元数据项。根据桶名称、文件名称和默认权限值生成元数据项具体可以为:将桶名称、文件名称和默认权限值进行组合,获得元数据项。默认权限值为分布式对象存储系统中对于元数据项的默认名称,当为一个文件创建元数据信息时,其元数据项的名称即为:默认权限值,因此文件名称不同但文件内容相同的文件的元数据项无法区分,只能以覆盖或删除等方式保留一份。

需要说明的是,元数据项的作用为:区分文件名称不同但文件内容相同的文件,依据此构思,还可以确定出元数据项的其他生成方式,如:根据桶id、文件名称和默认权限值生成元数据项。根据桶id、文件名称和默认权限值生成元数据项具体可以为:将桶id、文件名称和默认权限值进行组合,获得元数据项。例如:桶id、文件名称和默认权限值分别为1、2、3,那么元数据项用123表示。

s103、判断当前分布式对象存储系统中是否存在元数据项;若是,则执行s104;若否,则执行s105;

s104、根据目标文件更新元数据项中的元数据信息;

s105、判断当前分布式对象存储系统中是否存在目标文件对应的指纹对象;若是,则执行s106;若否,则执行s107;

s106、创建元数据项,并在元数据项中存储目标文件的元数据信息。

其中,新创建的元数据项与目标文件的指纹对象具有对应关系。

s107、根据目标文件的文件内容生成指纹对象,并执行s106。

在一种具体实施方式中,根据目标文件的文件内容生成指纹对象,包括:利用散列算法对文件内容进行处理,获得指纹对象。指纹对象的生成过程具体可参考现有技术,本说明书在此不再赘述。

在本实施例中,分布式对象存储系统中包括多个桶,每个桶中包括多个指纹对象,每个指纹对象对应多个元数据项,每个元数据项中存储着文件的元数据信息。因此文件名称不同但文件内容相同的文件对应同一个指纹对象,但该指纹对象可以对应多个元数据项,每个元数据项与文件一一对应。

可见,本申请实施例基于桶信息、文件名称和默认权限值生成目标文件的元数据项,能够区别出文件名称不同,但文件内容相同的文件,使其分别对应有元数据信息,打破了原有的元数据信息与文件内容(指纹对象)一一对应的情况,从而可使文件与其元数据信息相对应,也避免了文件的元数据信息因被覆盖而丢失,能够避免文件无法被访问等异常情况的发生。

参见图2所示,本申请实施例公开了一种元数据查询方法,包括

s201、接收客户端发送的目标文件的元数据信息查询请求;

s202、解析元数据信息查询请求,获得桶信息和文件名称;

s203、根据桶信息、文件名称和默认权限值生成元数据项;

s204、在当前分布式对象存储系统中查询元数据项;

s205、若查询到元数据项,则将元数据项中的元数据信息返回至客户端。

在本实施例中,若未查询到元数据项,则说明目标文件未在分布式对象存储系统中存储,因此可以返回错误提示消息至客户端。

需要说明的是,本实施例中的实现步骤与上述实施例相同或类似,故本实施例在此不再赘述。

由上可见,本实施例基于桶信息、文件名称和默认权限值生成目标文件的元数据项,并以此查询文件的元数据信息,当文件在分布式对象存储系统中已存储时,可准确无误地查询到对应的元数据信息,不会有文件名称不同但文件内容相同的文件的元数据信息丢失的情况,从而提高了分布式对象存储系统的可靠性。

按照本申请提供的方案,可区分出不同用户上传的、同一桶内、内容相同、但文件名称不同的文件的元数据信息。当用户在分布式对象存储系统进行操作时,可以通过桶信息、指纹对象以及元数据项确定文件的元数据信息,从而解决了元数据项因被覆盖而丢失的问题。

参见图3所示,本申请实施例公开了另一种元数据处理方法,包括:

1、客户端发起文件的上传请求;

2、分布式对象存储系统获取上传请求中的文件名、桶名;

3、使用桶名,获取该桶的信息;

4、使用桶信息、文件名和默认元数据名称生成标识(即元数据项);

5、使用该标识查询逻辑对象中该文件的元数据是否存在;若存在,则更新已存在的旧的元数据;若不存在,则使用此标识建立新的元数据。

其中,使用桶名获取到的桶信息中包括桶id。需要说明的是,指纹对象与该文件的元数据是对应关系。逻辑对象为该文件被分片后的第一个分片。实际应用时,文件的元数据存储在文件被分片后的第一个分片上,第一个分片与文件具有逻辑对应关系。如:一个文件被分割为3个分片,分别为分片a、分片b、分片c,那么该文件的元数据信息被存储在分片a上,分片a与该文件存在逻辑对应关系,因此分片a为该文件的逻辑对象。其中,该文件的指纹对象与该文件的元数据信息存在逻辑对应关系,且一个指纹对象可能对应多个元数据信息。

需要说明的是,由于不同用户上传的、同一桶内、内容相同、但文件名称不同的文件实际上是一个文件,因此在分布式对象存储系统中可以仅存储有一份。假设有两个文件在同一桶内、内容相同、但文件名称不同,且文件内容在分布式对象存储系统中仅存储有一份,那么这两个文件对应同一个指纹对象,对应同一个逻辑对象,但分别对应不同的元数据项,这两个元数据项中存储着不同的元数据信息,且这两个元数据项存储在同一个逻辑对象中。

因此按照本实施例提供的方案可使多个文件与一个逻辑对象相对应,多个文件与一个指纹对象相对应。

本实施例在分布式对象存储系统的重删场景下,可存储不同用户操作的不同文件名但内容相同的文件的元数据信息,同时兼容同一用户、同一桶内、同名称文件的元数据信息的覆盖和更新。

下面对本申请实施例提供的一种元数据处理装置进行介绍,下文描述的一种元数据处理装置与上文描述的一种元数据处理方法可以相互参照。

参见图4所示,本申请实施例公开了一种元数据处理装置,包括:

确定模块401,用于若接收到客户端发送的目标文件的上传请求,则确定目标文件对应的桶信息,以及目标文件的文件名称;

生成模块402,用于根据桶信息、文件名称和默认权限值生成目标文件的元数据项;

判断模块403,用于判断当前分布式对象存储系统中是否存在元数据项;

更新模块404,用于若当前分布式对象存储系统中存在元数据项,则根据目标文件更新元数据项中的元数据信息。

在一种具体实施方式中,确定模块具体用于:

解析上传请求,获得桶信息和文件名称;桶信息包括桶名称。

在一种具体实施方式中,生成模块具体用于:

根据桶名称、文件名称和默认权限值生成元数据项。

在一种具体实施方式中,还包括:

创建模块,用于若当前分布式对象存储系统中不存在元数据项,则判断当前分布式对象存储系统中是否存在目标文件对应的指纹对象;若是,则创建元数据项,并在元数据项中存储目标文件的元数据信息。

在一种具体实施方式中,还包括:

执行模块,用于若当前分布式对象存储系统中不存在指纹对象,则根据目标文件的文件内容生成指纹对象,并执行创建元数据项,并在元数据项中存储目标文件的元数据信息的步骤。

在一种具体实施方式中,根据目标文件的文件内容生成指纹对象,包括:

处理模块,用于利用散列算法对文件内容进行处理,获得指纹对象。

在一种具体实施方式中,还包括:

接收模块,用于接收客户端发送的目标文件的元数据信息查询请求;

解析模块,用于解析元数据信息查询请求,获得桶信息和文件名称;

生成模块,用于根据桶信息、文件名称和默认权限值生成元数据项;

查询模块,用于在当前分布式对象存储系统中查询元数据项;

返回模块,用于若查询到元数据项,则将元数据项中的元数据信息返回至客户端。

其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

可见,本实施例提供了一种元数据处理装置,该装置基于桶信息、文件名称和默认权限值生成目标文件的元数据项,能够区别出文件名称不同,但文件内容相同的文件,使其分别对应有元数据信息,打破了原有的元数据信息与文件内容(指纹对象)一一对应的情况,从而可使文件与其元数据信息相对应,也避免了文件的元数据信息因被覆盖而丢失,也能够避免文件无法被访问等异常情况的发生。

下面对本申请实施例提供的一种元数据处理设备进行介绍,下文描述的一种元数据处理设备与上文描述的一种元数据处理方法及装置可以相互参照。

参见图5所示,本申请实施例公开了一种元数据处理设备,包括:

存储器501,用于保存计算机程序;

处理器502,用于执行所述计算机程序,以实现上述任意实施例公开的方法。

下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种元数据处理方法、装置及设备可以相互参照。

一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的元数据处理方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。

需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的可读存储介质中。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1