掌桥专利:专业的专利平台
掌桥专利
首页

文件资源的处理方法和装置、存储介质及电子设备

文献发布时间:2023-06-19 10:19:37


文件资源的处理方法和装置、存储介质及电子设备

技术领域

本发明涉及计算机领域,具体而言,涉及一种文件资源的处理方法和装置、存储介质及电子设备。

背景技术

在日常开发需求中,经常会遇到如下类似场景:系统主要围绕文件资源开展业务处理,按照业务处理流程可能将系统分为A、B、C...等模块。假设最初进入系统的资源为文件f0,经过A处理,输出为文件f1。f1作为B模块的输入,B模块处理输出文件f2…。

在此基础上,各个模块使用或产出的资源需要支持用户对其进行独立管理,例如,当删除模块A中某个处理任务,其相关的输入输出也需同步删除。如果该处理任务的输出已经用于B模块,需要做到删除上述内容不影响B模块中相关处理任务的正确执行,并且系统运行不会残留垃圾。

为了解决上述问题,通常可以采用如下两种方案:第一种方案是将每个模块依赖的输入资源都拷贝一份,每个管理自己的依赖;第二种方案是实现一个资源引用管理模块,用于管理各个模块中依赖的资源,并当某个资源引用为0时进行垃圾清理工作。

但是采用第一种方案,由于拷贝的文件在内容上是一致的,将所有输入资源都拷贝一份会占用成倍的存储空间,导致硬盘资源的浪费,另外,拷贝文件的成本较大,系统的稳定性在一定程度上会受影响。而采用第二种方案,资源引用管理会增加各个模块代码耦合,且依赖管理难度大,误差几率高,依据引用进行垃圾清理容易导致意外情况发生,准确度降低。

针对相关技术中通过拷贝文件资源或增加资源引用管理模块方式对文件资源进行处理,导致系统成本增加、处理准确度降低的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种文件资源的处理方法和装置、存储介质及电子设备,以至少解决相关技术中通过拷贝文件资源或增加资源引用管理模块方式对文件资源进行处理,导致系统成本增加、处理准确度降低的技术问题。

根据本发明实施例的一个方面,提供了一种文件资源的处理方法,包括:当需要对原始文件资源进行删除时,获取指向原始文件资源的硬链接的数量,其中,引用原始文件资源的处理模块与原始文件资源之间创建有硬链接;判断硬链接的数量是否小于预设值;如果是,则删除原始文件资源。

进一步地,上述方法还包括:接收上传的原始文件资源;存储原始文件资源;确定需要引用原始文件资源的处理模块;创建每个处理模块指向原始文件资源的硬链接,以使处理模块通过硬链接引用原始文件资源。

进一步地,在存储原始文件资源之前,上述方法还包括:判断原始文件资源是否已经存在;如果否,则存储原始文件资源;如果是,则忽略对原始文件资源的存储操作。

进一步地,判断原始文件资源是否已经存在包括:利用消息摘要算法对原始文件资源进行处理,得到消息摘要;判断消息摘要是否已经存在,其中,每个已存储的文件资源的文件名中包括文件资源对应的消息摘要;如果是,则确定原始文件资源已经存在;如果否,则确定原始文件资源不存在。

进一步地,在存储原始文件资源之前,上述方法还包括:确定用于存储原始文件资源的预设位置;存储原始文件资源,包括:将原始文件资源存储在预设位置。

进一步地,如果硬链接的数量不小于预设值,上述方法还包括:输出提示信息,提示信息用于提醒原始文件资源不能进行删除;和/或,对原始文件资源进行锁定保护,以便在接收到对原始文件资源的删除操作时,不能执行对原始文件资源的删除操作。

进一步地,上述方法还包括:当检测到一个新的处理模块需要对原始文件资源进行引用时,自动创建新的处理模块指向原始文件资源的硬链接;和/或,当检测到处理模块对原始文件资源的引用关系解除时,删除处理模块指向原始文件资源的硬链接。

根据本发明实施例的另一方面,还提供了一种文件资源的处理装置,包括:获取模块,用于当需要对原始文件资源进行删除时,获取指向原始文件资源的硬链接的数量,其中,引用原始文件资源的处理模块与原始文件资源之间创建有硬链接;判断模块,用于判断硬链接的数量是否小于预设值;删除模块,用于如果是,则删除原始文件资源。

进一步地,上述装置还包括:接收模块,用于接收上传的原始文件资源;存储模块,用于存储原始文件资源;确定模块,用于确定需要引用原始文件资源的处理模块;创建模块,用于创建每个处理模块指向原始文件资源的硬链接,以使处理模块通过硬链接引用原始文件资源。

进一步地,判断模块还用于判断原始文件资源是否已经存在;存储模块还用如果否,则存储原始文件资源,如果是,则忽略对原始文件资源的存储操作。

进一步地,判断模块包括:处理单元,用于利用消息摘要算法对原始文件资源进行处理,得到消息摘要;判断单元,用于判断消息摘要是否已经存在,其中,每个已存储的文件资源的文件名中包括文件资源对应的消息摘要;确定单元,用于如果是,则确定原始文件资源已经存在,如果否,则确定原始文件资源不存在。

进一步地,确定模块还用于确定用于存储原始文件资源的预设位置;存储模块还用于将原始文件资源存储在预设位置。

进一步地,上述装置还包括:输出模块,用于如果硬链接的数量不小于预设值,则输出提示信息,提示信息用于提醒原始文件资源不能进行删除;和/或,锁定模块,用于如果硬链接的数量不小于预设值,对原始文件资源进行锁定保护,以便在接收到对原始文件资源的删除操作时,不能执行对原始文件资源的删除操作。

进一步地,上述装置还包括:创建模块,用于当检测到一个新的处理模块需要对原始文件资源进行引用时,自动创建新的处理模块指向原始文件资源的硬链接;和/或,删除模块还用于当检测到处理模块对原始文件资源的引用关系解除时,删除处理模块指向原始文件资源的硬链接。

根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,程序执行上述的文件资源的处理方法。

根据本发明实施例的另一方面,还提供了一种电子设备,电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述的文件资源的处理方法。

在本发明实施例中,当需要对原始文件资源进行删除时,可以获取指向原始文件资源的硬链接的数量,当该硬链接的数量小于预设值时,将该原始文件资源删除,从而实现处理模块单独管理文件资源的目的。由于引用原始文件资源的处理模块与原始文件资源之间创建有硬链接,无需对原始文件资源进行拷贝,不会成倍的占用硬盘资源,从而解决了相关技术中通过拷贝文件资源或增加资源引用管理模块方式对文件资源进行处理,导致系统成本增加、处理准确度降低的技术问题,达到了节省硬盘资源,降低各个处理模块代码耦合度,提升系统的稳定性的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种文件资源的处理方法的流程图;

图2是根据本发明实施例的一种文件资源的处理装置的示意图;以及

图3是根据本发明实施例的一种电子设备的示意图。

具体实施方式

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

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

首先,对本发明实施例中的部分技术特征进行如下解释说明:

硬链接:hardlink,就是一个文件的一个或多个文件名。将文件名和计算机文件系统使用的节点号链接起来,从而可以用多个文件名与同一个文件进行链接。

MD5:Message Digest Algorithm MD5,消息摘要算法第五版,将数据(如汉字)运算为另一固定长度值,是计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。

实施例1

根据本发明实施例,提供了一种文件资源的处理方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种文件资源的处理方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,当需要对原始文件资源进行删除时,获取指向原始文件资源的硬链接的数量,其中,引用原始文件资源的处理模块与原始文件资源之间创建有硬链接;

步骤S104,判断硬链接的数量是否小于预设值;

步骤S106,如果是,则删除原始文件资源。

在主要围绕文件资源开展业务处理的系统中,由于系统预先划分为多个处理模块,需要支持用户单独对每个处理模块所依赖(也称:引用)的文件资源进行删除,由于一个处理模块依赖的文件资源,同时还可能被其他处理模块所依赖,从而根据一个处理模块的需求将其依赖的文件资源删除后,将会导致其他依赖该文件资源的处理模块无法正常工作。为了方便删除某个处理模块所依赖的文件资源,且不影响与其相关联的其他处理模块的正常运行,本申请通过借助硬链接进行各个处理模块的文件资源管理,也即通过创建硬链接的方式实现对文件资源的引用,在不必拷贝文件资源的情况下,依然能够实现对文件资源的引用。其中,上述的原始文件资源可以是实际存储在系统中的文件数据。

另外,基于硬链接的特性可知,创建硬链接将增加原始文件资源的引用计数,此时,原始文件资源拥有至少一个引用计数。当某个处理模块所依赖的原始文件资源被删除时,引用原始文件资源的硬链接会被删除,此时原始文件资源的引用计数将减少,而当引用原始文件资源的硬链接的数量减少为0时,表示系统中没有模块引用原始文件资源,此时原始文件资源的引用计数为1,原始文件资源将自动被系统删除。因此,上述的预设值可以是1。

例如,以系统划分为模块1和模块2两个模块为例对本发明进行详细说明。系统中存储的文件为f0、f1和f2,f0输入至模块1中,模块1输出f1;f1输入至模块2中,模块2输出f2。创建硬链接后,f0的硬链接数量为1,f1的硬链接数量为2,f2的硬链接数量为1。当需要删除模块1所依赖的文件资源f0和f1时,可以获取f0和f1的硬链接的数量,此时f0的硬链接的数量减少为0(即f0的引用计数减少为1),f1的硬链接的数量减少为1(即f1的引用计数减少为2),因此,系统可以将文件f0删除。

采用本发明上述实施例,当需要对原始文件资源进行删除时,可以获取指向原始文件资源的硬链接的数量,当该硬链接的数量小于预设值时,将该原始文件资源删除,从而实现处理模块单独管理文件资源的目的。由于引用原始文件资源的处理模块与原始文件资源之间创建有硬链接,无需对原始文件资源进行拷贝,不会成倍的占用硬盘资源,从而解决了相关技术中通过拷贝文件资源或增加资源引用管理模块方式对文件资源进行处理,导致系统成本增加、处理准确度降低的技术问题,达到了节省硬盘资源,降低各个处理模块代码耦合度,提升系统的稳定性的技术效果。

可选地,本发明上述实施例中,该方法还包括:接收上传的原始文件资源;存储原始文件资源;确定需要引用原始文件资源的处理模块;创建每个处理模块指向原始文件资源的硬链接,以使处理模块通过硬链接引用原始文件资源。

当用户上传或拷贝原始文件资源到系统时,系统可以将原始文件资源存储,需要引用该原始文件资源的处理模块均从此处创建硬链接,与此处共享同一份数据。因此,此目录下文件拥有至少一个引用计数。

可选地,本发明上述实施例中,在存储原始文件资源之前,该方法还包括:判断原始文件资源的文件名是否已经存在;如果否,则存储原始文件资源;如果是,则忽略对原始文件资源的存储操作。

由于用户上传或拷贝的原始文件资源可能存在重复,因此,在原始文件资源存储之前,需要对原始文件资源进行筛选,将不重复的原始文件资源才进行存储。通过该步骤能够有效减少相同文件资源的重复存储,从而使得每个相同的文件资源存储一份即可,需要引用该文件资源的,通过硬链接即可实现,从而有效降低文件存储所造成的资源占用。

可选地,本发明上述实施例中,判断原始文件资源是否已经存在包括:利用消息摘要算法对原始文件资源进行处理,得到消息摘要;判断消息摘要是否已经存在,其中,每个已存储的文件资源的文件名中包括文件资源对应的消息摘要;如果是,则确定原始文件资源已经存在;如果否,则确定原始文件资源不存在。

为了判断原始文件资源是否已经存在,需要将原始文件资源的内容与已经存在的其他文件资源的内容进行对比,导致工作量较大。而仅仅通过比较文件名,由于用户可以随意设置原始文件资源的文件名,导致准确率降低。因此,在本实施例中,每个原始文件资源在存储时,可以用该文件的MD5作为文件名,此时,原始文件资源的文件名与内容相关,在原始文件资源存储之前,可以判断是否存在同名,如果有,则表明该文件已经存在,可以跳过存储过程。

可选地,本发明上述实施例中,在存储原始文件资源之前,上述方法还包括:确定用于存储原始文件资源的预设位置;存储原始文件资源,包括:将原始文件资源存储在预设位置。

本实施例中,上述的预设位置可以是系统中专门用于存储每个处理模块引用的文件资源的位置,可以与其他数据存储位置不同。

当用户上传或拷贝原始文件资源到系统时,系统可以将原始文件资源存储到某个固定位置,将该位置作为系统中所有处理模块共享的数据记录处。

可选地,本发明上述实施例中,如果硬链接的数量不小于预设值,上述方法还包括:输出提示信息,提示信息用于提醒原始文件资源不能进行删除;和/或,对原始文件资源进行锁定保护,以便在接收到对原始文件资源的删除操作时,不能执行对原始文件资源的删除操作。

本实施例中,当硬链接的数量大于或等于预设值时,表明系统中仍然有模块引用该原始文件资源,不能被删除。此时,为了避免用户误操作,删除原始文件资源,影响到与其相关联的其他处理模块的正常运行,可以采用多种方式对原始文件资源进行保护。在一种可选的实施例中,可以输出提示信息告知用户该原始文件资源无法被删除,避免用户误操作。在另一种可选的实施例中,可以将该原始文件资源锁定,从而用户无法直接删除该原始文件资源。

可选地,本发明上述实施例中,当检测到一个新的处理模块需要对原始文件资源进行引用时,自动创建新的处理模块指向原始文件资源的硬链接;和/或,当检测到处理模块对原始文件资源的引用关系解除时,删除处理模块指向原始文件资源的硬链接。

本实施例中,基于硬链接的特性可知,当有新的出路模块需要对原始文件资源进行引用时,可以从存储该原始文件资源的固定位置创建硬链接,此时,该原始文件资源的硬链接的数量加1,也即,原始文件资源的引用计数加1。

而当用户需要删除某个处理模块的处理任务时,需要将该处理模块所依赖的文件资源删除,此时,仅需要将已经创建的硬链接删除,而不需要对原始文件资源进行删除。

根据本发明实施例,提供了一种文件资源的处理装置。

图2是根据本发明实施例的一种文件资源的处理装置的示意图,如图2所示,该装置包括:获取模块22、判断模块24和删除模块26。

其中,获取模块22用于在获取模块,用于当需要对原始文件资源进行删除时,获取指向原始文件资源的硬链接的数量,其中,引用原始文件资源的处理模块与原始文件资源之间创建有硬链接;判断模块24用于判断硬链接的数量是否小于预设值;删除模块26用于如果是,则删除原始文件资源。

采用本发明上述实施例,当需要对原始文件资源进行删除时,可以获取指向原始文件资源的硬链接的数量,当该硬链接的数量小于预设值时,将该原始文件资源删除,从而实现处理模块单独管理文件资源的目的。由于引用原始文件资源的处理模块与原始文件资源之间创建有硬链接,无需对原始文件资源进行拷贝,不会成倍的占用硬盘资源,从而解决了相关技术中通过拷贝文件资源或增加资源引用管理模块方式对文件资源进行处理,导致系统成本增加、处理准确度降低的技术问题,达到了节省硬盘资源,降低各个处理模块代码耦合度,提升系统的稳定性的技术效果。

可选地,本发明上述实施例中,该装置还包括:接收模块、确定模块、存储模块和创建模块。

其中,接收模块用于接收上传的原始文件资源;存储模块用于存储原始文件资源;确定模块用于确定需要引用原始文件资源的处理模块;创建模块用于创建每个处理模块指向原始文件资源的硬链接,以使处理模块通过硬链接引用原始文件资源。

可选地,本发明上述实施例中,判断模块还用于判断原始文件资源是否已经存在;存储模块还用如果否,则存储原始文件资源,如果是,则忽略对原始文件资源的存储操作。可选地,本发明上述实施例中,判断模块包括:处理单元、判断单元和确定单元。

其中,处理单元用于利用消息摘要算法对原始文件资源进行处理,得到消息摘要;判断单元用于判断消息摘要是否已经存在,其中,每个已存储的文件资源的文件名中包括文件资源对应的消息摘要;确定单元用于如果是,则确定原始文件资源已经存在,如果否,则确定原始文件资源不存在。

可选地,本发明上述实施例中,确定模块还用于确定用于存储原始文件资源的预设位置;存储模块还用于将原始文件资源存储在预设位置。

可选地,本发明上述实施例中,该装置还包括:输出模块和/或锁定模块。

其中,输出模块用于如果硬链接的数量不小于预设值,则输出提示信息,提示信息用于提醒原始文件资源不能进行删除;锁定模块用于如果硬链接的数量不小于预设值,对原始文件资源进行锁定保护,以便在接收到对原始文件资源的删除操作时,不能执行对原始文件资源的删除操作。

可选地,本发明上述实施例中,该装置还包括:创建模块。

其中,创建模块用于当检测到一个新的处理模块需要对原始文件资源进行引用时,自动创建新的处理模块指向原始文件资源的硬链接;和/或,删除模块还用于当检测到处理模块对原始文件资源的引用关系解除时,删除处理模块指向原始文件资源的硬链接。

所述文件资源的处理装置包括处理器和存储器,上述获取模块、判断模块、删除模块、接收模块、存储模块、确定模块、创建模块、判断模块、输出模块和锁定模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现处理模块单独管理文件资源。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述文件资源的处理方法。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述文件资源的处理方法。

本发明实施例提供了一种电子设备,如图3所示,该设备30包括至少一个处理器301、以及与处理器连接的至少一个存储器302、总线303;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述的文件资源的处理方法。本文中的设备可以是服务器、PC、PAD、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:

当需要对原始文件资源进行删除时,获取指向原始文件资源的硬链接的数量,其中,引用原始文件资源的处理模块与原始文件资源之间创建有硬链接;判断硬链接的数量是否小于预设值;如果是,则删除原始文件资源。

接收上传的原始文件资源;存储原始文件资源;确定需要引用原始文件资源的处理模块;创建每个处理模块指向原始文件资源的硬链接,以使处理模块通过硬链接引用原始文件资源。

判断原始文件资源是否已经存在;如果否,则存储原始文件资源;如果是,则忽略对原始文件资源的存储操作。

利用消息摘要算法对原始文件资源进行处理,得到消息摘要;判断消息摘要是否已经存在,其中,每个已存储的文件资源的文件名中包括文件资源对应的消息摘要;如果是,则确定原始文件资源已经存在;如果否,则确定原始文件资源不存在。

在存储原始文件资源之前,确定用于存储原始文件资源的预设位置;将原始文件资源存储在预设位置。

如果硬链接的数量不小于预设值,输出提示信息,提示信息用于提醒原始文件资源不能进行删除;和/或,对原始文件资源进行锁定保护,以便在接收到对原始文件资源的删除操作时,不能执行对原始文件资源的删除操作。

当检测到一个新的处理模块需要对原始文件资源进行引用时,自动创建新的处理模块指向原始文件资源的硬链接;和/或,当检测到处理模块对原始文件资源的引用关系解除时,删除处理模块指向原始文件资源的硬链接。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

相关技术
  • 资源文件的路径处理方法、装置、电子设备及存储介质
  • 文件资源的处理方法和装置、存储介质及电子设备
技术分类

06120112502592