文件系统的用户操作发现方法和应用该方法的同步系统的制作方法

文档序号:6434939阅读:95来源:国知局
专利名称:文件系统的用户操作发现方法和应用该方法的同步系统的制作方法
技术领域
本发明涉及一种文件系统的用户操作发现方法和应用该方法的同步系统,属于计算机网络技术领域。
背景技术
随着互联网的发展,越来越多的用户数据被放到了互联网上。网络存储正蓬勃发展,与传统的本地硬盘存储形成很好的互补关系。在这种状态下,用户本地的资料如何同步到多个设备,成了不少用户关注的话题。同步型网络存储如qbox. me是一个典型的同步软件,它可以让用户在PC电脑(包括Windows/MacOS/Linux等平台)与ffeb、手机进行资料的自动同步,无需用户进行任何干预。哪怕在用户关闭同步软件的情况下,如果用户对要同步的目录进行了一系列的操作,同步软件启动后,也需要将资料准确地进行同步。通常,同步软件都是通过比对本地文件系统与记录的上一次同步状态之间的差异,来进行同步操作。但是通常同步软件都不能非常智能地发现用户行为。例如,用户将文件(或文件夹)改名,通常同步软件会将其识别为用户先删除了文件(或文件夹),然后再增加相同内容但不同名称的新文件(或文件夹)。同理,用户将文件(或文件夹)从一个目录移动到另一个目录,也会被识别为用户先删除了文件(或文件夹),然后再在另一个目录增加相同名称相同内容的新文件(或文件夹)。这样做的后果是糟糕的用户体验,以及网络流量的浪费,特别是当文件夹里面有大量文件时,这些文件先从服务器删除,然后又一一重新上传,非常浪费网络流量。一种常规的优化方式是通过优化文件上传过程,比如通过生成文件的特征码,上传文件前先通过特征码问服务器该文件是否存在,如果存在则不传内容,只是重新建立相同内容的新文件。这样做只比最差的情况下好一点,但相比用户一个简单的改名(或移动) 操作,一一判断服务器是否存在相同内容的文件,并一一建立新文件,仍然是不小的负担, 效果依然不是很理想。如何能够在不开启同步软件的情况下仍然能够智能地发现用户操作是网络同步技术领域亟待解决的技术问题之一。

发明内容
本发明的目的在于,提供一种全新的用户操作发现方法和应用此方法的同步系统,可以智能地发现用户的新增、删除、改名或移动等操作,从而提升了用户体验,减少了网络流量的消耗。本发明的一个方面,提供了一种文件系统的用户操作发现方法,包括利用文件系统自有结点标识作为结点唯一标识,对本地同步目录的结点和上一次同步成功时的文件系统结点进行比对,以识别用户操作行为。具体地,所述的结点唯一标识在Linux/Mac系统下是ino号,在Windows的NTFS文件系统下是File ID。根据本发明的一个具体但非限制性的实施方案,所述方法包括以下步骤-将本地同步目录中的所有结点按结点唯一标识排序;-将上一次同步成功时的所有节点按结点唯一标识排序;-对本地同步目录的结点唯一标识和上一次同步成功时的结点唯一标识进行比对,并执行以下操作如果某个结点唯一标识在本地同步目录中和在上一次同步成功时的文件系统中都存在,那么比对该结点在本地同步目录中的路径与它在上一次同步成功时的文件系统中的路径如果路径不同,则确定该文件或目录被用户移动或改名;并且如果该结点是文件,对本地同步目录和上一次同步成功时该文件的内容进行比对如果内容不一致,则表示该文件内容被修改;如果本地同步目录中存在的结点唯一标识,在上一次同步成功时的文件系统中并不存在,则确定该结点为用户新增的文件或目录;如果本地同步目录中不存在某个结点唯一标识,但在上一次同步成功时的文件系统中该结点唯一标识存在,则确定该文件或目录被用户删除。根据本发明的一个具体但非限制性的实施方案,所述方法包括以下步骤-对本地同步目录的结点唯一标识和上一次同步成功时的结点唯一标识进行比对,找出相同的结点唯一标识,并结合该结点路径或文件内容的变化,以发现文件或目录移动或改名的操作以及文件内容被修改的操作;-将已经通过结点唯一标识匹配的结点从本地同步目录和上一次同步成功时的文件系统中去除;-将剩余结点通过目录树比对的方式,以发现文件修改、新增文件或目录以及删除文件或目录的用户操作。根据本发明的一个实施方案,文件内容是否修改通过对比文件大小和文件最后编辑时间是否一致来判断;或者通过对比文件内容的摘要如MD5、SHAl来判断。另一方面,本发明提供了一种同步系统,该系统包括一用户操作发现模块,所述的用户操作发现模块利用文件系统自有结点标识作为结点唯一标识,对本地同步目录的结点和上一次同步成功时的文件系统结点进行比对,以识别用户操作行为。具体地,所述的结点唯一标识在Linux/Mac系统下是ino号,在Windows的NTFS 文件系统下是File ID。根据本发明的一个具体但非限制性的实施方案,所述的用户操作发现模块包括将本地同步目录中的所有结点按结点唯一标识排序的单元模块;将上一次同步成功时的所有节点按结点唯一标识排序的单元模块;对本地同步目录的结点唯一标识和上一次同步成功时的结点唯一标识进行比对的单元模块,该单元模块执行以下操作如果某个结点唯一标识在本地同步目录中和在上一次同步成功时的文件系统中都存在,那么比对该结点在本地同步目录中的路径与它在上一次同步成功时的文件系统中的路径如果路径不同,则确定该文件或目录被用户移动或改名;并且如果该结点是文件,对本地同步目录和上一次同步成功时该文件的内容进行比对如果内容不一致,则表示该文件内容被修改;如果本地同步目录中存在的结点唯一标识,在上一次同步成功时的文件系统中并不存在,则确定该结点为用户新增的文件或目录;如果本地同步目录中不存在某个结点唯一标识,但在上一次同步成功时的文件系统中该结点唯一标识存在,则确定该文件或目录被用户删除。根据本发明的一个具体但非限制性的实施方案,所述的用户操作发现模块包括对本地同步目录的结点唯一标识和上一次同步成功时的结点唯一标识进行比对的单元模块,用于找出相同的结点唯一标识,并结合该结点路径或文件内容的变化,以发现文件或目录移动或改名的操作以及文件内容被修改的操作;将已经通过结点唯一标识匹配的结点从本地同步目录和上一次同步成功时的文件系统中去除的单元模块;将剩余结点通过目录树比对的单元模块,用于发现文件修改、新增文件或目录以及删除文件或目录的用户操作。根据本发明的一个实施方案,文件内容是否修改通过对比文件大小和文件最后编辑时间是否一致来判断;或者通过对比文件内容的摘要如MD5、SHAl来判断。本发明的有益效果主要体现在本发明利用文件系统自有的结点标识如ino号作为结点唯一标识,通过对比该结点唯一标识如ino号及其对应结点的路径和文件内容的变化,对用户的改名、移动、文件内容修改等操作进行识别。本发明利用自有结点标识比对与常规目录树比对相结合,来发现用户操作行为, 以保证用户数据的可靠性。应用本发明的用户操作发现模块进行网络同步,能够减少同步操作量,减少网络流量的消耗。


图1为本发明利用文件系统自有结点标识ino号进行比对的用户操作发现方法流程图。图2为本发明利用ino号比对和常规目录树比对相结合的用户操作发现方法流程图。图3为本发明的用户本地文件系统到远程网络存储的同步系统示意图。
具体实施例方式下面结合附图详细说明本发明的具体实施方式
。首先我们介绍一下背景知识。文件系统通俗来讲是用户储存资料的地方。尽管物理上都是硬盘,但是其实存在多种形式的文件系统。文件系统将信息按树状形态组织,可以带子结点的称之为“目录”或“文件夹”(本文统称为“目录”);存储资料内容的叫“文件”。 目录和文件都是文件系统中的“结点”。在Windows下当前最为流行的是NTFS、FAT32两个文件系统;在Linux下则是EXT3文件系统。根据文件系统的特征,文件系统可分为两类一类是文件系统的“结点”本身存在唯一标识的;例如上面我们提到的NTFS、EXT3 文件系统属于此类。在Linux/Mac系统中,文件系统的唯一标识,通常称为ino号(这是因为Linux文件系统中的“结点”叫inode,“结点”的唯一标识就取了 inode的前3个字母作为代号)。在Windows的NTFS文件系统下,文件系统的唯一标识是File ID。另一类是文件系统的“结点”无唯一标识的;例如上面我们提到的FAT32文件系统。下面仅对结点本身存在唯一标识的文件系统进行讨论,对于无结点唯一标识的文件系统,不在本专利讨论的范围之内。我们利用文件系统自有结点标识作为结点唯一标识,对本地同步目录的结点和上一次同步成功时的文件系统结点进行比对,以识别用户操作行为。下面以Linux系统的自有结点标识ino号为例,对本发明的用户操作发现方法做详细描述。如图1所示,通过对比 ino号及其对应结点的路径和内容变化,来发现用户的操作行为。具体判断方法如下如果某ino号在本地同步目录和上一次同步成功时的文件系统中都存在,那么判断(1)如果该ino号在本地同步目录中的路径和它在上一次同步成功时的文件系统中的路径不同,那么可以确定它被移动或改名(改名操作可认为是移动操作的特例)。(2)如果该结点是文件,那么还可以判断前后的内容是否一致,如果不一致则代表发生了内容修改。判断文件内容是否修改,可以通过对比文件大小、文件最后编辑时间是否一致来做粗略的判断;也可以通过对比文件内容的摘要如MD5、SHAl来判断。请注意对于文件可能两者同时都发生,即该文件既被移动,同时又修改了内容,所以以上第(1)步和第(2)步操作并非互斥的。另外需要注意的是,我们发现的并不一定是用户真实的操作过程。例如用户先将 A改名为B,然后将B改名为C,我们发现的行为则会是A改名为C,而不管中间经历了多少步骤。从同步的角度来说,我们只是要找到一个最经济的操作步骤,让目标文件系统和源文件系统达成一致就可以了。如果本地同步目录中存在的ino号,在上一次同步成功时的文件系统中并不存在,那么我们可以确定该结点属于新增结点,同步软件需要执行新建文件或新建目录的操作。如果本地同步目录中不存在某个ino号,但在上一次同步成功时的文件系统中该 ino号存在,那么可以确定该结点已经被删除,同步软件需要执行删除操作。上面所述的文件系统自有结点标识如ino号比对方法也可以与其他发现用户操作的方法结合使用,例如可以与传统的目录树比对方法联合使用。如图2所示,先按ino号对本地同步目录与上一次同步成功时文件系统进行比对, 找出具备相同ino号的结点,并结合该结点路径或文件内容的变化,来发现文件或目录的移动或改名、文件内容的修改操作;然后,将已经通过ino号匹配的结点从同步目录和上一次同步成功时的文件系统中去除,剩余结点再通过常规的目录树比对的方式,来发现新增文件或目录、删除文件或目录、修改文件内容等用户操作。
这种多种用户操作发现的方法结合是有实际意义的,例如对于编辑类软件,通常在存盘的时候执行以下操作流程1)将要存盘的本地文件先改名为一个临时文件;2)将当前编辑的内容存盘;3)如果存盘成功(正常情况),则删除临时文件;如果失败,则删除存盘失败的文件,并将临时文件改回原来的文件名。这样做的意图是为了保证用户数据的可靠性。因为在存盘过程中可能发生各种意外,比如软件崩溃、机器断电等,导致存盘的文件内容不完整。如果没有先对原始的文件内容备份,那么就会在异常情况下丢失用户的所有数据。但是这种做法对以上依据文件系统唯一标识(ino号)来发现用户操作来说是不友好的。因为对用户来说是一个简单的文件内容修改操作,物理文件系统中却是同一个逻辑上的文件对应存盘前后是两个不同的物理文件,因此具备不同的ino号,从而被识别为先删除文件,再增加同名的新文件,这就导致了网络流量的浪费(识别为修改操作的话就可以只传输文件修改前后的内容的差异,而识别为先删除后增加新文件则是完整的文件内容传输)。所幸的是,通过目录树比对的方式可以找回这种文件内容修改操作(因为存盘前后它的文件路径没有变)。如图3所示,用户本地文件系统到远程网络存储的同步系统主要包括用户本地文件系统、历史状态文件系统、用户操作发现模块、用户操作执行模块和远程网络文件系统。用户操作发现模块应用本发明的用户操作发现方法,对用户操作行为进行有效识别并将发现的用户操作传递给用户操作执行模块。用户操作执行模块将发现的用户操作,应用于远程网络文件系统,从而完成从本地文件系统到远处网络存储的同步过程。所述的用户本地文件系统,是指用户所使用的PC电脑(包括Windows/MacOS/ Linux等平台)、Web、手机等终端下的文件系统,通常由操作系统提供操作API (应用程序编程接口)。具体API抽象如下1. List (path) _>Entries。即列目录。该请求传入一个path参数。返回path指定的路径下的子结点列表。每个子结点(Entry)包含名称、ino号、以及其他元信息如修改时间等(由于与本文内容无关不详细列举)。其中ino号为可选项,如上所述,对某些文件系统不存在ino号。2. Open (path) _>FiIeHandle。即打开文件以获得内容。该请求传入path参数,指示要获取数据的文件。返回对应的文件句柄,通过该句柄可获得文件内容。所述的历史状态文件系统是一个记录同步历史状态的文件系统,它记录了上一次同步成功时的文件系统状态。该系统通常通过本地数据库(如sqlite)类组织树状结构。 该文件系统可以提供与本地文件系统一样的API,如上面所述的List、Open方法。所述的用户操作发现模块,应用本发明的用户操作发现方法,对用户操作行为进行识别。该模块对于存在自有结点标识的本地文件系统,执行以下操作。我们以ino号为例并结合图1进行描述。首先通过递归调用本地文件系统的List,将同步目录下的所有结点列出,并将这些结点按ino号进行排序。同样,历史状态文件系统也将上一次同步成功时的所有节点按 ino号进行排序。然后,可以通过集合求交(以及求差)的算法,来确定哪些结点是新增的,哪些结点删除了,哪些结点移动或改名了,或内容发生了变化。实际应用中,可以将Ino号比对与常规的目录树比对方式结合。如图2所示,先通过ino号比对,发现文件或目录被移动或改名的用户操作、文件内容被修改的用户操作;再对剩余结点进行常规的目录树比对,以发现新增文件或目录、删除文件或目录、修改文件内容的用户操作。目录树比对的具体做法和ino号比对类似,只是现在改用结点的名称,也就是文件名或目录名进行排序,以此去发现结点增加、删除和内容变化(以名称为基准的匹配算法发现不了改名和移动)。所述的用户操作执行模块,将发现的用户操作,应用于远程网络文件系统,从而完成从本地文件系统到远处网络存储的同步过程。所述的远程网络文件系统,是要将发现的用户操作应用的目标。也就是通常我们说的网盘,当然也可以是其他产品形态的网络存储。以上仅是本发明的具体应用范例,对本发明的保护范围不构成任何限制。凡采用等同变换或者等效替换而形成的技术方案,均落在本发明权利保护范围之内。
权利要求
1.一种文件系统的用户操作发现方法,其特征在于,所述方法利用文件系统自有结点标识作为结点唯一标识,对本地同步目录的结点和上一次同步成功时的文件系统结点进行比对,以识别用户操作行为。
2.根据权利要求1的方法,其特征在于,所述的结点唯一标识在Linux/Mac系统下是 ino号,在Windows的NTFS文件系统下是File ID。
3.根据权利要求1的方法,其特征在于,所述方法包括以下步骤 -将本地同步目录中的所有结点按结点唯一标识排序;-将上一次同步成功时的所有节点按结点唯一标识排序;-对本地同步目录的结点唯一标识和上一次同步成功时的结点唯一标识进行比对,并执行以下操作如果某个结点唯一标识在本地同步目录中和在上一次同步成功时的文件系统中都存在,那么比对该结点在本地同步目录中的路径与它在上一次同步成功时的文件系统中的路径 如果路径不同,则确定该文件或目录被用户移动或改名;并且如果该结点是文件,对本地同步目录和上一次同步成功时该文件的内容进行比对如果内容不一致,则表示该文件内容被修改;如果本地同步目录中存在的结点唯一标识,在上一次同步成功时的文件系统中并不存在,则确定该结点为用户新增的文件或目录;如果本地同步目录中不存在某个结点唯一标识,但在上一次同步成功时的文件系统中该结点唯一标识存在,则确定该文件或目录被用户删除。
4.根据权利要求1的方法,其特征在于,所述方法包括以下步骤-对本地同步目录的结点唯一标识和上一次同步成功时的结点唯一标识进行比对,找出相同的结点唯一标识,并结合该结点路径或文件内容的变化,以发现文件或目录移动或改名的操作以及文件内容被修改的操作;-将已经通过结点唯一标识匹配的结点从本地同步目录和上一次同步成功时的文件系统中去除;-将剩余结点通过目录树比对的方式,以发现文件修改、新增文件或目录以及删除文件或目录的用户操作。
5.根据权利要求3或4的方法,其特征在于,文件内容是否修改通过对比文件大小和文件最后编辑时间是否一致来判断;或者通过对比文件内容的摘要如MD5、SHAl来判断。
6.一种同步系统,其特征在于,该系统包括一用户操作发现模块,所述的用户操作发现模块利用文件系统自有结点标识作为结点唯一标识,对本地同步目录的结点和上一次同步成功时的文件系统结点进行比对,以识别用户操作行为。
7.根据权利要求6的系统,其特征在于,所述的结点唯一标识在Linux/Mac系统下是 ino号,在Windows的NTFS文件系统下是File ID。
8.根据权利要求6的系统,其特征在于,所述的用户操作发现模块包括 将本地同步目录中的所有结点按结点唯一标识排序的单元模块;将上一次同步成功时的所有节点按结点唯一标识排序的单元模块; 对本地同步目录的结点唯一标识和上一次同步成功时的结点唯一标识进行比对的单元模块,该单元模块执行以下操作如果某个结点唯一标识在本地同步目录中和在上一次同步成功时的文件系统中都存在,那么比对该结点在本地同步目录中的路径与它在上一次同步成功时的文件系统中的路径 如果路径不同,则确定该文件或目录被用户移动或改名;并且如果该结点是文件,对本地同步目录和上一次同步成功时该文件的内容进行比对如果内容不一致,则表示该文件内容被修改;如果本地同步目录中存在的结点唯一标识,在上一次同步成功时的文件系统中并不存在,则确定该结点为用户新增的文件或目录;如果本地同步目录中不存在某个结点唯一标识,但在上一次同步成功时的文件系统中该结点唯一标识存在,则确定该文件或目录被用户删除。
9.根据权利要求6的系统,其特征在于,所述的用户操作发现模块包括对本地同步目录的结点唯一标识和上一次同步成功时的结点唯一标识进行比对的单元模块,用于找出相同的结点唯一标识,并结合该结点路径或文件内容的变化,以发现文件或目录移动或改名的操作以及文件内容被修改的操作;将已经通过结点唯一标识匹配的结点从本地同步目录和上一次同步成功时的文件系统中去除的单元模块;将剩余结点通过目录树比对的单元模块,用于发现文件修改、新增文件或目录以及删除文件或目录的用户操作。
10.根据权利要求8或9的系统,其特征在于,文件内容是否修改通过对比文件大小和文件最后编辑时间是否一致来判断;或者通过对比文件内容的摘要如MD5、SHAl来判断。
全文摘要
一种文件系统的用户操作智能发现方法,利用文件系统自有结点标识作为结点唯一标识,对本地同步目录的结点和上一次同步成功时的文件系统结点进行比对,来识别用户操作行为。具体地,本发明利用文件系统自有的结点标识ino号作为唯一标识,通过对比ino号及其对应结点的路径和内容的变化,对用户的新增、删除、改名、移动、文件内容修改等操作进行识别。这种利用文件系统自有结点标识比对方法还可以与传统的目录树比对方法相结合,来发现用户操作行为。应用本发明的文件同步系统,能够减少同步操作量,减少网络流量的消耗。
文档编号G06F17/30GK102360410SQ20111030279
公开日2012年2月22日 申请日期2011年9月30日 优先权日2011年9月30日
发明者许式伟 申请人:许式伟
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1