本申请涉及计算机信息存储技术领域,特别是涉及一种对象管理方法、装置、计算机设备及存储介质。
背景技术:
随着计算机技术的快速发展,互联网产业兴起,信息数据量越来越大,数据的迭代也越来越频繁,为实现数据文件的快速存储和读取,用户可选择对象存储系统来进行数据保存,但对象存储通常是采用一级哈希算法得到的哈希值作为对象存储的存储路径进行存储,且存储对象的每个不同版本数据都是独立保存在一个对象存储设备内,无法实现对象历史版本的可追溯和管理。
技术实现要素:
为了解决上述技术问题,本申请提供一种对象管理方法、装置、计算机设备及存储介质,能够实现对象历史版本的可追溯和管理。
第一方面,本申请提供一种对象管理方法,该管理方法包括:接收对象的最新版本信息,根据最新版本信息生成最新版本路径信息;获取对象的索引值,根据索引值获取对象的上一版本标识信息;根据最新版本路径信息和上一版本标识信息生成最新版本标识信息;根据最新版本路径信息存储最新版本信息,根据最新版本标识信息存储最新版本路径信息和上一版本标识信息,根据索引值存储最新版本标识信息。
其中,根据最新版本信息生成最新路径信息的步骤,包括:采用哈希算法计算最新版本信息,以生成对应的哈希值作为最新路径信息。
其中,索引值与对象为唯一对应关系。
其中,根据索引值存储最新版本标识信息的步骤,包括:以索引值为存储路径,将最新版本标识信息覆盖上一版本标识信息进行存储。
其中,根据最新路径信息和上一版本标识信息生成最新版本标识信息的步骤,包括:采用哈希算法计算最新路径信息,以生成对应的哈希值作为最新版本标识信息。
其中,管理方法还包括:接收对象的指定版本信息读取请求,将指定版本信息发送给客户端。
其中,接收对象的指定版本信息读取请求,将指定版本信息发送给客户端的步骤,包括:根据索引值获取对象的最新版本标识信息;根据最新版本标识信息获取对象的上一版本标识信息,依次类推,直到获取到对象的指定版本标识信息;根据指定版本标识信息获取到指定版本路径信息;根据指定版本路径信息获取到指定版本信息,并将指定版本信息发送给客户端。
第二方面,本申请提供一种对象管理装置,包括:路径信息生成模块,用于接收对象的最新版本信息,根据最新版本信息生成最新版本路径信息;获取模块,用于获取对象的索引值,根据索引值获取对象的上一版本标识信息;标识信息生成模块,用于根据最新版本路径信息和上一版本标识信息生成最新版本标识信息;存储模块,用于根据最新版本路径信息存储最新版本信息,根据最新版本标识信息存储最新版本路径信息和上一版本标识信息,根据索引值存储最新版本标识信息。
第三方面,本申请提出一种计算机设备,所述计算机设备包括存储器以及与所述存储器耦接的处理器;
其中,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序并在执行所述计算机程序时以实现上述的对象管理方法。
第四方面,本申请提出一种计算机存储介质,所述计算机存储介质用于存储计算机程序,所述计算机程序在被处理器执行时,用以实现上述的对象管理方法。
本申请的有益效果是:区别于现有技术的情况,本申请通过接收对象的最新版本信息,根据最新版本信息生成最新版本路径信息,获取对象的索引值,根据索引值获取对象的上一版本标识信息;根据最新版本路径信息和上一版本标识信息生成最新版本标识信息;根据最新版本路径信息存储最新版本信息,根据最新版本标识信息存储最新版本路径信息和上一版本标识信息,根据索引值存储最新版本标识信息。通过构建版本标识信息,可以将对象的最新版本信息和历史版本信息层层关联起来,实现对象历史版本的可追溯和管理。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的对象管理方法一实施例的流程示意图;
图2a是本申请对象读取的显示界面一示意图;
图2b是本申请对象读取的显示界面另一示意图;
图3是本申请提供的对象管理方法中对象版本信息读取步骤一实施例的流程示意图;
图4是本申请提供的对象管理方法中对象存储过程的一实施例的示意图;
图5是本申请提供的对象管理方法中对象读取过程的一实施例的示意图;
图6是本申请提供的对象管理装置一实施例的结构示意图;
图7是本申请计算机设备一实施例的结构示意图;
图8是本申请计算机存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。另外,虽然在装置示意图中进行了功能模块的划分,但是在某些情况下,可以以不同于装置示意图中的模块划分。
本申请提供了一种对象管理方法、装置、计算机设备及存储介质,可应用于对象存储技术领域。其中,本申请实施例的对象管理方法的执行主体可以是对象管理装置,对象管理装置可以设置在对象管理系统中的终端或服务端,其中,终端可以是笔记本电脑、台式电脑、个人数字助理等电子设备;服务器可以为独立的服务器,也可以为服务器集群。
请参阅图1,图1是本申请提供的对象管理方法一实施例的流程示意图,具体包括以下步骤:
s11:接收对象的最新版本信息,根据最新版本信息生成最新版本路径信息。
具体地,对象为用户需要存储的数据内容,对象是一个离散的数据单元,可以以文件、文档、音频、视频或图片的形式存在,该对象可以具有多个版本,按照存储顺序,首次存储的版本为初始版本,当前需要存储的版本为最新版本,版本信息包括版本内容,版本号,对象名称等信息。
当用户通过终端设备上的应用程序或网页访问对象存储系统,对对象的最新版本进行存储时,对象管理装置接收最新版本信息,并根据最新版本信息生成对应的一个唯一的标识,该唯一的标识可以作为存储路径信息将该最新版本信息进行存储,即通过该路径信息可以获取最新版本信息的实际存储路径,从而能够获取对象的最新版本信息。
在一些实施例中,根据最新版本信息生成最新版本路径信息可以包括:采用哈希算法计算最新版本信息,以生成对应的哈希值作为最新版本路径信息。
具体地,对象管理装置可以通过哈希算法将最新版本信息映射为一个唯一的数值,即哈希值,以该唯一的哈希值作为该最新版本信息的存储路径信息。其中,不同的版本信息通过哈希算法计算得到的哈希值不同,所以,每个不同版本信息通过哈希算法可以得到与该版本信息唯一对应的路径信息。其中,哈希算法可以但不限于为md4、md5和sha-1。
s12:获取对象的索引值,根据索引值获取对象的上一版本标识信息。
在具体的实施例中,对象的索引值与该对象为唯一对应关系,通过该索引值可以查找并获取到该对象的版本信息。具体的,当用户首次上传对象的初始版本时,对象管理装置接收到该对象的初始版本信息,根据对象的初始版本信息生成对象的索引值。在一些实施例中,索引值可以是用户自定义的一串数据或者字符串,可以作为该对象的版本标识信息存储路径。例如,用户在首次上传对象的时,自定义输入一串数据,该数据即可作为该对象的索引值。在另一种实施例中,索引值也可以是对象存储装置根据对象的初始版本信息生成的数值或者字符串,例如,用户上传对象的初始版本后,对象存储装置接收到该对象的初始版本,根据该对象生成对应的一串数据作为索引值返回给用户,当下次需要再存储该对象的新版本信息时,依然以该索引值为存储路径存储该对象的新的版本标识信息。所以,当用户存储对象的最新版本时,可以通过获取对象的索引值,根据索引值获取到该对象的上一版本标识信息。
s13:根据最新版本路径信息和上一版本标识信息生成最新版本标识信息。
获取到对象的上一版本标识信息后,根据最新版本路径信息和上一版本标识信息生成最新版本标识信息。在此需要说明的是,当用户上传的是对象的初始版本时,因为上一版本标识信息为空,所以生成初始版本标识信息的步骤为根据初始版本路径信息生成初始版本标识信息。
在一些实施例中,根据最新版本路径信息和上一版本标识信息生成最新版本标识信息,可以包括:采用哈希算法计算最新版本路径信息和上一版本标识信息,以生成对应的哈希值作为最新版本标识信息。
s14:根据最新版本路径信息存储最新版本信息,根据最新版本标识信息存储最新版本路径信息和上一版本标识信息,根据索引值存储最新版本标识信息。
具体地,以最新版本路径信息为存储路径将最新版本信息进行存储,以最新版本标识信息为存储路径存储最新版本路径信息和上一版本标识信息,以索引值为存储路径将最新标识信息进行存储。
在一些实施例中,根据索引值存储最新版本标识信息的步骤,包括:以索引值为存储路径,将最新版本标识信息覆盖上一版本标识信息进行存储。例如,当存储第二版本标识信息时,会将之前已经存储在索引值下的初始版本标识信息删除,再在此存储路径下存储第二版本标识信息。
在一些实施例中,根据最新版本标识信息存储最新版本路径信息和上一版本标识信息的步骤,可以为直接以最新版本标识信息为存储路径将最新版本路径信息和上一版本标识信息进行存储,也可以在根据最新版本路径信息和上一版本标识信息生成最新版本标识信息时生成一个数据表,并将最新版本路径信息和上一版本标识信息与最新版本标识信息对应的存储在数据表中,以便后续以最新版本标识信息为查询标识进行查询,从而获取最新版本路径信息和上一版本标识信息。
以下通过一个具体实例对上述步骤进行说明。
当用户首次上传对象,对象存储装置接收到的是该对象的初始版本信息,并生成与该对象唯一对应的索引值,根据初始版本信息生成初始版本路径信息,根据初始版本路径信息生成初始版本标识信息,并以初始版本路径信息为存储路径将对象的初始版本信息进行存储,以初始版本标识信息为存储路径将初始版本路径信息进行存储,以索引值为存储路径将初始版本标识信息进行存储。
当用户第二次上传对象,对象存储装置接收到的是该对象的第二版本信息,根据第二版本信息生成第二版本路径信息,并通过获取索引值获得初始版本标识信息,然后根据第二版本路径信息和初始版本标识信息生成第二版本标识信息,最后以第二版本路径信息为存储路径将对象的第二版本信息进行存储,以第二版本标识信息为存储路径将第二版本路径信息和第一版本标识信息进行存储,以索引值为存储路径将第二版本标识信息进行存储。
依次类推,当用户第n次上传对象,对象存储装置接收到的是该对象的第n版本信息,根据第n版本信息生成第n路径信息,并通过获取索引值获得第n-1标识信息,然后根据第n路径信息和第n-1标识信息生成第n标识信息,最后以第n版本路径信息为存储路径将对象的第n版本信息进行存储,以第n版本标识信息为存储路径将第n版本路径信息和第n-1版本标识信息进行存储,以索引值为存储路径将第n版本标识信息进行存储,其中,n为大于1的自然数。
本申请实施例公开的对象管理方法包括:接收对象的最新版本信息,根据最新版本信息生成最新版本路径信息,获取对象的索引值,根据索引值获取对象的上一版本标识信息;根据最新版本路径信息和上一版本标识信息生成最新版本标识信息,根据最新版本路径信息存储最新版本信息;根据索引值存储最新版本标识信息。通过本申请的方法,以多级线性文件索引(即版本标识信息)的方式将对象的最新版本信息和历史版本信息层层关联起来,可以记录对象的整个存储历史,实现对象历史版本的可追溯和管理。
基于上述实施例中的对象管理方法可将对象的版本信息进行存储,为了能够快速读取该对象的相关历史版本信息,在一些实施例中,本申请提供的对象管理方法还包括对象版本信息读取步骤:接收对象的指定版本信息读取请求,将指定版本信息发送给客户端。
具体地,当用户通过终端设备上的应用程序或网页访问对象存储系统,需要读取对象的指定版本信息时,用户可以通过点击终端设备上的显示内容确定需要读取的对象的指定版本信息,从而向对象管理装置发送读取请求,对应地,对象管理装置接收到该读取请求,通过请求分析和数据读取,将指定版本信息发送给客户端。
请参阅图2a,图2a是本申请提供的对象读取的显示界面一示意图。
如图2a所示,显示界面20包括前进按钮21和后退按钮22,显示界面当前显示的是最新版本的版本信息,当用户点击前进按钮21时,当前版本的版本信息被前一个版本的版本信息覆盖,只显示当前版本的前一个版本的版本信息,用户点击后退按钮22也只显示当前版本的后一个版本的版本信息。其中,版本信息例如是版本号、版本信息的文件名和大小,存储时间等等。由此,用户通过点击若干数量次相应按钮,可以在显示界面上显示需要读取的版本信息,然后通过点击该版本信息,则确定该版本信息为指定版本信息,并向对象管理装置发送该指定版本信息的读取请求。
例如图2a中,最新版本的版本信息包括版本号:第11版本、版本信息的文件名:我的11岁生日、版本信息的大小为150兆(m),用户点击前进按钮21可以显示第10版本的版本信息,第10版本的版本信息包括版本号:第10版本、版本信息的文件名:我的10岁生日、版本信息的大小为100兆(m),第10版本的版本信息将第11版本的版本信息覆盖,用户点击后退按钮22又可以将第10版本的版本信息覆盖,进而显示第11版本的版本信息,依次类推,用户点击第2版本的版本信息可以将第2版本信息确定为指定版本信息。
请参阅图2b,图2b是本申请提供的对象读取的显示界面另一示意图。
如图2b所示,用户在点击前进按钮后,当前版本的版本信息没有被前一个版本的版本信息覆盖,而是和前一个版本的版本信息一起显示,例如包括最新版本在内的多个版本的版本信息按照版本顺序依次显示,同样地,在用户点击后退按钮后,当前版本的版本信息也不会被后一个版本的版本信息覆盖。
在其他实施例中,也可以将该对象的所有历史版本信息全部显示在显示界面上或者通过翻页的方式进行显示,由用户进行选择。
请参阅图3,图3是本申请提供的对象管理方法中对象版本信息读取步骤一实施例的流程示意图,具体包括以下步骤:
s351:接收对象的指定版本信息读取请求。
具体地,对象管理装置接收到对象的指定版本信息读取请求,并对该读取请求进行解析,通过解析可以获取到该对象的指定版本的版本号和索引值。
s352:根据索引值获取对象的最新版本标识信息。
对象管理装置根据索引值进行查询,可以获取到对象的最新版本标识信息。
具体地,由于之前以该索引值为存储路径将该对象的最新版本标识信息进行存储,所以在对象读取时,对象管理装置可以以该索引值为读取路径,读取到对象的最新版本标识信息。
s353:根据最新版本标识信息获取对象的上一版本标识信息,依次类推,直到获取到对象的指定版本标识信息。
具体地,由于最新版本标识信息是根据最新版本路径信息和上一版本标识信息生成,而最新版本路径信息和上一版本标识信息以最新版本标识信息为存储标识进行存储,所以在对象读取时,对象管理装置可以根据最新版本标识信息进一步获取到对象的上一版本标识信息,依次类推,重复获取上一版本标识信息的步骤,直到获取到对象的指定版本标识信息或者至上一版本标识信息为空。
例如,对象存储系统已存储的版本为第五版本,而用户需要读取的对象为第三版本内容,对象管理装置根据第五版本标识信息获取对象的第四版本标识信息,然后根据第四版本标识信息继续获取对象的第三版本标识信息,直到得到第三版本标识信息为止。
s354:根据指定版本标识信息获取到指定版本路径信息。
具体地,由于最新版本标识信息是根据最新版本路径信息和上一版本标识信息生成的,而最新版本路径信息和上一版本标识信息以最新版本标识信息为存储标识进行存储,所以在对象读取时,对象管理装置可以根据指定版本标识信息获取到指定版本路径信息。
s355:根据指定版本路径信息获取到指定版本信息,并将指定版本信息发送给客户端。
具体地,由于对象存储操作时是以指定版本路径信息为存储路径将指定版本信息进行存储的,所以在对象读取时,对象管理装置可以根据指定版本路径信息获取到指定版本信息,并将指定版本信息发送给客户端。
在一些实施例中,当用户确定需要读取对象的指定版本信息时,可以选择只读取指定版本信息,而其他版本信息则忽略不读取,在此种模式下的信息读取过程中,对象管理装置直到读取到指定版本标识信息时才根据指定版本路径信息读取指定版本信息,而其他指定版本信息都不读取。该实施方式仅读取指定版本信息,避免了读取对象的其他历史版本信息,可以减小读取量,提高版本信息的读取速度。
在另一些实施例中,当用户确定需要读取对象的指定版本信息时,可以选择同时读取指定版本信息和其他版本信息,在此种模式下的信息读取过程中,对象管理装置可以在根据当前版本标识信息获得上一版本标识信息的同时,获得当前版本路径信息,根据不同的版本路径信息可以获取不同版本信息,所以当未读取到指定版本标识信息时,每一个依次查询上一版本标识信息的过程中,执行根据同时获取到的当前版本路径信息读取当前版本信息的步骤。该实施方式可以使用户一次性读取到包括对象的指定版本至最新版本在内的所有历史版本信息,提高历史版本查询和读取效率。
本申请实施例公开的对象管理方法在存储对象的基础上还包括对象版本信息读取步骤:接收对象的指定版本信息读取请求,根据索引值获取对象的最新版本标识信息,根据最新版本标识信息获取对象的上一版本标识信息,依次类推,直到获取到对象的指定版本标识信息,根据指定版本标识信息获取到指定版本路径信息,根据指定版本路径信息获取到指定版本信息,并将指定版本信息发送给客户端。通过本申请的方法,因为对象存储是以多级线性文件索引(即版本标识信息)的方式将对象的最新版本信息和历史版本信息层层关联起来,记录对象的整个存储历史,所以在对象读取时,即可通过层层索引快速读取到指定版本信息,实现对象历史版本的可追溯和管理。
请参阅图4,图4是本申请提供的对象管理方法中对象存储过程的一实施例的示意图。
对象管理装置接收用户上传的对象的初始版本信息和索引值{value_1,key},采用哈希算法对value_1进行计算以得到唯一对应的哈希值sha_1作为初始版本路径信息,key为与对象对应的索引值,根据key可获取该对象的上一版本标识信息,由于该版本为对象的初始版本,所以对象管理装置默认上一版本标识信息为null,然后采用哈希算法对sha_1和null进行计算得出唯一对应的哈希值commitsha_1作为最新版本标识信息,以sha_1为存储路径将value_1进行存储,以commitsha_1为存储路径将sha和null进行存储,以及以key为存储路径将最新版本标识信息commitsha_1进行存储。
对象管理装置接收用户上传的对象的第二版本信息和索引值{value_2,key},采用哈希算法对value_2进行计算以得到唯一对应的哈希值sha_2作为第二版本路径信息,根据key获取该对象的上一版本标识信息commitsha_1,然后采用哈希算法对sha_2和commitsha_1进行计算得出唯一对应的哈希值commitsha_2作为最新版本标识信息,以sha_2为存储路径将value_2进行存储,以commitsha_2为存储路径将sha_2和commitsha_1进行存储,以及以key为存储路径将最新版本标识信息commitsha_2进行存储。
依次类推,对象管理装置接收用户上传的对象的第n版本信息和索引值{value_n,key},采用哈希算法对value_n进行计算以得到唯一对应的哈希值sha_n作为第n版本路径信息,根据key获取该对象的上一版本标识信息commitsha_n-1,然后采用哈希算法对sha_n和commitsha_n-1进行计算得出唯一对应的哈希值commitsha_n作为最新版本标识信息,以sha_n为存储路径将value_n进行存储,以commitsha_n为存储路径将sha_n和commitsha_n-1进行存储,以及以key为存储路径将最新版本标识信息commitsha_n进行存储。
请参阅图5,图5是本申请提供的对象管理方法中对象读取过程的一实施例的示意图。
对象管理装置接收对象的指定版本信息读取请求,获取对象对应的索引值key,根据key可以获取对象的第n版本标识信息commitsha_n,以commitsha_n为读取路径可以读取第n版本路径信息和第n-1版本标识信息{sha_n,commitsha_n-1},根据sha_n可以读取第n版本信息value_n,或者以commitsha_n-1为读取路径可以读取第n-1版本路径信息和第n-2版本标识信息{sha_n-1,commitsha_n-2},根据sha_n-1可以读取第n-1版本信息value_n-1,或者根据commitsha_n-2继续进行读取,依次类推,可以读取到初始版本标识信息commitsha_1,以commitsha_1为读取路径可以读取到初始版本路径信息和空的标识信息{sha_1,null},以sha_1读取初始版本信息value_1,由于初始版本没有下一个版本,所以以空的标识信息表示当前已经读取到初始版本,可以停止继续读取下一次版本标识信息。
请参阅图6,图6是本申请提供的对象管理装置一实施例的结构示意图。
本实施例中,对象管理装置600包括路径信息生成模块601、获取模块602、标识信息生成模块603和存储模块604。
其中,路径信息生成模块601用于接收对象的最新版本信息,根据最新版本信息生成最新版本路径信息;获取模块602用于获取对象的索引值,根据索引值获取对象的上一版本标识信息;标识信息生成模块603用于根据最新版本路径信息和上一版本标识信息生成最新版本标识信息;存储模块604用于根据最新版本路径信息存储最新版本信息,根据索引值存储最新版本标识信息。
在一些实施例中,路径信息生成模块601具体用于:采用哈希算法计算最新版本信息,以生成对应的哈希值作为最新路径信息。
在一些实施例中,索引值与对象为唯一对应关系。
在一些实施例中,存储模块604具体用于:以索引值为存储路径,将最新版本标识信息覆盖上一版本标识信息进行存储。
在一些实施例中,标识信息生成模块603具体用于:采用哈希算法计算最新路径信息,以生成对应的哈希值作为最新版本标识信息。
在一些实施例中,对象管理装置600还包括通信模块,通信模块用于:接收对象的指定版本信息读取请求,将指定版本信息发送给客户端。
在一些实施例中,通信模块具体用于:根据索引值获取对象的最新版本标识信息;根据最新版本标识信息获取对象的上一版本标识信息,依次类推,直到获取到对象的指定版本标识信息;根据指定版本标识信息获取到指定版本路径信息;根据指定版本路径信息获取到指定版本信息,并将指定版本信息发送给客户端。
对于本申请对象管理装置600中各模块的阐述可以参见上述方法实施例中的对应位置,此处不再赘述。
请参阅图7,图7是本申请计算机设备一实施例的结构示意图。本实施例中,计算机设备700包括执包括存储器701以及与存储器701耦接的处理器702;其中,存储器701用于存储计算机程序,处理器702用于执行计算机程序并在执行计算机程序时以实现如上述任一实施例的步骤。计算机设备700可以为上述方法实施例中的服务器或终端设备。
处理器702还可以称为cpu(centralprocessingunit,中央处理单元)。处理器702还可能是一种集成电路芯片,具有信号的处理能力。处理器702还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
请参阅图8,图8是本申请计算机存储介质一实施例的结构示意图,本实施例中,计算机存储介质800用于存储计算机程序801,计算机程序801在被处理器执行时,用以实现如上述任一实施例的步骤。
计算机存储介质800具体可以为u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等可以存储计算机程序801的介质,或者也可以为存储有该计算机程序801的服务器,该服务器可将存储的计算机程序801发送给其他设备运行,或者也可以自运行该存储的计算机程序801。
以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。