一种文件排重方法和装置与流程

文档序号:11155469阅读:267来源:国知局
一种文件排重方法和装置与制造工艺

本发明涉及存储技术领域,特别涉及一种文件排重方法和装置。



背景技术:

在存储设备中,文件数据,特别是一些音视频文件,占用存储空间特别多。如果多个用户共用一个存储空间时,经常会出现不同用户存储相同内容的文件的情况,导致文件的重复存储,占用不必要的存储空间,造成存储空间浪费。



技术实现要素:

有鉴于此,本发明的目的在于提供一种文件排重方法和装置,能够避免文件的重复存放,减少存储资源浪费。

为了达到上述目的,本发明提供了如下技术方案:

一种文件排重方法,应用于存储设备,该方法包括:

获取待存储文件,基于待存储文件的文件内容生成待存储文件的标识值;

比较存储设备中所有已存储文件的标识值与待存储文件的标识值,如果存在一已存储文件与待存储文件具有相同的标识值,则生成指向该已存储文件的链接,将该链接作为待存储文件存储到目标文件路径,否则,将待存储文件存储到目标文件路径,并将待存储文件的标识值存储为待存储文件的属性。

一种文件排重装置,应用于存储设备,该装置包括:获取单元、生成单元、比较单元、处理单元;

所述获取单元,用于获取待存储文件;

所述生成单元,用于基于待存储文件的文件内容生成待存储文件的标识值;

所述比较单元,用于比较存储设备中所有已存储文件的标识值与待存储文件的标识值;

所述处理单元,用于如果比较单元判定存储设备中存在一已存储文件与待存储文件具有相同的标识值,则生成指向该已存储文件的链接,将该链接作为待存储文件存储到目标文件路径,否则,将待存储文件存储到目标文件路径,并将待存储文件的标识值存储为待存储文件的属性。

由上面的技术方案可知,本发明中,通过将存储设备中的已存储文件的标识值与待存储文件的标识值进行比较,确定存储设备中是否已经存储有与待存储文件具有相同文件内容的已存储文件,存在则生成指向已存储文件的链接,将该链接作为待存储文件,从而可以使得同一内容的文件在存储设备中仅存储一份。可以看出,本发明能够避免文件的重复存放,减少存储资源浪费。

附图说明

图1是本发明实施例文件排重方法的流程图;

图2是本发明实施例文件排重装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并据实施例,对本发明的技术方案进行详细说明。

参见图1,图1是本发明实施例文件排重方法的流程图,该方法应用于存储设备,主要包括以下步骤:

步骤101、获取待存储文件,基于待存储文件的文件内容生成待存储文件的标识值。

待存储文件为用户上传的文件,或者其它来源的文件。

在进行文件排重时,如果直接进行文件内容对比来确定是否是相同内容的文件,由于文件内容的数据量较大,排重效率会非常低下,因此本实施例中通过文件的标识值进行排重。

文件的标识值可以是任何可以标识文件内容的特征值,在本实施例中,采用将基于文件内容生成的MD5(Message-Digest Algorithm 5,信息-摘要算法5)值作为文件的标识值。

步骤102、比较存储设备中所有已存储文件的标识值与待存储文件的标识值,如果存在一已存储文件与待存储文件具有相同的标识值,则生成指向该已存储文件的链接,将该链接作为待存储文件存储到目标文件路径,否则,将待存储文件存储到目标文件路径,并将待存储文件的标识值存储为待存储文件的属性。

本实施例中,在将文件存储到存储设备之前,生成文件对应的标识值(MD5),在将文件存储到存储设备中时,同时将文件的标识值存储为文件的一个属性。以后查找该文件的标识值时,直接通过获取该文件的属性的方式获取该文件的标识值。将文件的标识值存储为文件的属性的方法,一方面可以极大的提高了获取该文件的标识值的效率,另一方面也可以使得文件的标识值随文件的位置变化而迁移,相对于现有技术将文件的标识值(MD5)简单的记录在一个系统的配置文件里面的作法,可以避免因系统配置文件坏掉而导致存储设备中所有文件的标识值(MD5)丢失的情况。

当有新的待存储文件时,可以通过将待存储文件的标识值与存储设备中当前已存储的所有文件的标识值进行比较,确定是否存在与待存储文件具有相同标识值的已存储文件,如果存在,则说明待存储文件的文件内容在存储设备中已经存在,不需要再多存储一份,因此需要执行排重操作,如果不存在,则说明待存储文件的文件内容在存储设备中尚未存在,可以直接执行存储操作即可。

当确定存储设备中存在与待存储文件具有相同标识值的已存储文件后,执行的排重操作为:生成指向该已存储文件的链接,将该链接作为待存储文件存储到目标文件路径。然而,考虑到该已存储文件所在文件路径(也即文件目录)与待存储文件的目标文件路径相同的情况下,可以直接将该已存储文件作为待存储文件,不需要再生成指向该已存储文件的链接。

因此,在本实施例中,在确定存储设备中存在与待存储文件具有相同标识值的已存储文件之后,生成指向该已存储文件的链接,将该链接作为待存储文件存储到目标文件路径之前,需要先判断该已存储文件所在文件路径与待存储文件的目标文件路径是否相同,相同则根据需求返回上传成功信息到上传待存储文件的设备,然后结束本次存储操作,或者直接结束本次存储操作;不同则再执行生成指向该已存储文件的链接,将该链接作为待存储文件存储到目标文件路径的操作,此时还可以根据需求返回上传成功信息到上传待存储文件的设备。

另外,在确定存储设备中存在与待存储文件具有相同标识值的已存储文件后,生成指向该已存储文件的链接,将该链接作为待存储文件存储到目标文件路径时,还需要将待存储文件的文件名称设置作为该链接的名称,从而使得用户可以将该链接看作待存储文件。

在实际应用中,同一路径下不允许存储具有相同文件名称的多份文件,因此,在执行步骤102之前,可以先比较目标文件路径下的所有已存储文件的文件名称与待存储文件的文件名称,如果目标文件路径下存在一已存储文件与待存储文件具有相同的文件名称,则可以输出重名提示(与现有技术相同,提示用户选择覆盖原文件、或不覆盖原文件而是修改待存储文件的名称),若接收到用户的覆盖重名文件请求,则删除该已存储文件,并继续执行步骤102的操作,如果接收到用户在选择不覆盖重名文件后输入的新的文件名称,则将新的文件名称作为待存储文件的文件名称,并继续执行步骤102的操作。

以上对本发明实施例文件排重方法进行了详细说明,本发明还提供了一种文件排重装置,以下结合图2进行详细说明。

参见图2,图2是本发明实施例文件排重装置的结构示意图,该装置应用于存储设备,主要包括:获取单元201、生成单元202、比较单元203、处理单元204;其中,

获取单元201,用于获取待存储文件;

生成单元202,用于基于待存储文件的文件内容生成待存储文件的标识值;

比较单元203,用于比较存储设备中所有已存储文件的标识值与待存储文件的标识值;

处理单元204,用于如果比较单元203判定存储设备中存在一已存储文件与待存储文件具有相同的标识值,则生成指向该已存储文件的链接,将该链接作为待存储文件存储到目标文件路径,否则,将待存储文件存储到目标文件路径,并将待存储文件的标识值存储为待存储文件的属性。

图2所示装置中,

所述比较单元203,比较所有已存储文件的标识值与待存储文件的标识值之前,进一步用于:比较目标路径下的所有已存储文件的文件名称与待存储文件的文件名称,如果目标路径下存在一已存储文件与待存储文件具有相同的文件名称,则输出重名提示,若接收到用户的覆盖重名文件请求,则删除该已存储文件,并继续执行比较存储设备中所有已存储文件的标识值与待存储文件的标识值的操作,如果接收到用户在选择不覆盖重名文件后输入的新的文件名称,则将新的文件名称作为待存储文件的文件名称,并继续执行比较存储设备中所有已存储文件的标识值与待存储文件的标识值的操作。

图2所示装置中,

所述处理单元204,在比较单元203确定存储设备中存在一已存储文件与待存储文件的标识值相同之后,生成指向该已存储文件的链接,将该链接作为待存储文件存储到目标文件路径之前,进一步用于:

判断该已存储文件所在的文件路径与待存储文件的目标文件路径是否相同,如果相同,则结束本次存储操作,否则,生成指向该已存储文件的链接,将该链接作为待存储文件存储到目标文件路径。

图2所示装置中,

所述待存储文件为用户上传的文件;

所述处理单元204,结束本次存储操作之前,进一步用于:输出上传成功信息;

所述处理单元204,生成指向该已存储文件的链接,将该链接作为待存储文件存储到目标文件路径之后,进一步用于:输出上传成功信息。

图2所示装置中,

所述处理单元204,将该链接作为待存储文件存储到目标文件路径时,进一步将待存储文件的文件名称作为该链接的名称。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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