利用占位符的文件管理的制作方法_4

文档序号:9732048阅读:来源:国知局
组占位符也可以被存储在本地存储装置215,用于具有小于给定阈值的尺寸的内容的文件,正如前面提到的。
[0070]名称空间可包括对于文件系统的每个文件的标识符(例如,名称或其它标识符),连同关于文件的分级信息。例如,名称空间可包括对应于D:\DIR1\FILE1.TXT的名称空间条目。这个名称空间条目指示文件的名称(例如,FILE1.TXT),以及指示文件存在于某目录(例如,DIR1)中。名称空间也可以包括其它元数据。名称空间可以具有与文件系统信息的一对一的或某种其它的映射,并且可以代表虚拟文件夹分级结构。
[0071]转到图3,系统300可包括客户端305、云310、云存储系统315-317、本地存储库320、操作日志321和其它构件(未示出)。客户端305可包括文件管理器325、同步管理器326、占位符管理器327和其它构件(未示出)。
[0072]图3的构件可以通过使用如前所述的一个或多个计算设备的硬件和/或软件而被实施。实施本地存储库320和操作日志(operat1n log)321的存储设备可以以与图2的本地存储装置215类似的方式被实施,并且该存储设备可以是外部的、内部的或包括客户端305内部的某些构件和客户端305外部的某些构件。
[0073]本地存储库320可以具有计算机存储单元,其保存用于客户端的本地文件系统的本地文件系统对象的文件系统元数据,以及保存对于云存储系统的远端文件系统对象的占位符。如前所述,占位符可包括远端文件系统对象的元数据,而不需要远端文件系统对象的内容存在于本地存储库320中。
[0074]操作日志321可以具有计算机存储单元,其保存关于在本地文件系统上发生的改变的数据。来自操作日志321的数据可被使用来与云存储系统同步这些改变。在一个实现中,操作日志321可以被省略,以及对于本地文件系统的改变可以通过比较本地文件系统的改变前状态与改变后状态而被发现。
[0075]文件管理器325可被构建来经由文件系统元数据和占位符而创建名称空间,名称空间包括本地文件系统对象和远端文件系统对象。文件管理器325还可以被构建来经由接口提供对于本地文件系统对象和远端文件系统对象的元数据,而不论是否存在与云存储系统的连接性。
[0076]在不存在与云存储系统的连接性的情形下,文件管理器325仍旧可以允许对于驻留在本地的文件和由占位符代表的文件着手进行操作。例如,即使是在由占位符代表的文件系统对象的内容并没有全部驻留在本地存储库上的情况下,文件管理器也可以更新本地文件系统的文件系统数据结构,以指示对于由占位符代表的文件系统对象所执行的操作。作为另一个例子,文件管理器325可以更新名称空间,以反映诸如重新命名、移动、删除、恢复、创建、复制操作等等这样的操作。
[0077]同步管理器326可以被构建来在不存在与云存储系统的连接性的情形下,发现对文件系统对象发生的改变(例如,内容改变、包括固有的、非固有的元数据改变和名称空间改变,其它改变等等)以及当与云存储系统的连接性被重建时,使所述改变与云存储系统同步。
[0078]在不同的实现中,同步管理器326可以使用各种方法来发现改变。例如,在一个实现中,同步管理器326可以通过检查操作日志321而发现改变。作为另一个例子,在另一个实现中,同步管理器326可以通过比较文件系统和文件系统对象在改变之前的状态与文件系统和文件系统对象在改变之后的状态而发现改变。
[0079]占位符管理器327可被构建来创建、填充和保存占位符,以保证如果远端文件系统对象的内容没有完全存在于本地存储库320的话,则至少对于在名称空间中的每个远端文件系统对象存在有占位符。如前所述,当远端文件系统对象的内容确实全部存在于本地存储库320时,占位符也可以被保存在本地文件系统上。
[0080]云存储系统315-317可包括一个或多个存储设备,连同提供到这些存储设备的访问的一个或多个计算设备。在一个实施例中,云存储系统可包括数据中心,在其中计算设备被放置在单个物理位置。在另一个实施例中,云存储系统可包括在不同的位置处被附着到云的计算设备和存储装置。在一个实施例中,云存储系统可包括提供到一个或多个存储设备的访问的单个服务器。在一个实施例中,云存储系统可包括不处在客户端的局域网(LAN)上的计算设备。在另一个实施例中,云存储系统可包括未被收容在客户端中或未被直接连接到客户端的任何存储装置。
[0081]虽然在图2上显示了三个云存储系统,但在其它实现中,可以有任意数目的云存储系统。
[0082]图4-5是总的代表可以按照本文所描述主题的一些方面发生的示范性动作的流程图。为了简化说明,结合图4-5描述的方法被描绘和描述为一系列动作。应当理解和意识到,本文所描述主题的一些方面不受所图示动作和/或动作次序的限制。在一个实施例中,动作以如下所述的次序发生。然而在其它实施例中,动作可以并行地发生、以另一个次序发生、和/或与本文没有给出和描述的其它动作一起发生。而且,不是所有的举例说明的动作对于实施按照本文所描述主题的一些方面的方法来说都是必需的。另外,本领域技术人员将会理解和意识到所述方法可以替换地经由状态图被表示为一系列相关的状态或被表示为事件。
[0083]图4是总的代表按照本文所描述主题的一些方面的、从客户端视角来看可以发生的示范性动作的流程图。在方块405,动作开始。
[0084]在方块407,进行客户端相对于云存储系统是否离线的确定。如果客户端当前不能与云存储系统通信,则客户端相对于云存储系统是离线的。
[0085]在方块410,接收客户端的本地文件系统的文件的指示。例如,参照图3,文件管理器325可以接收来自某导航应用的文件的指示(未示出)。
[0086]在方块415,文件被检测为是由占位符代表的。占位符被存储在本地文件系统上。占位符至少指示文件系统对象的内容存在于云存储系统中(即使该内容也存在于本地文件系统上)。例如,参照图3,文件管理器325检测到文件由被存储在本地存储库320中的占位符代表。
[0087]类似于为本地文件系统的文件所保存的元数据,占位符可被插入到本地文件系统的名称空间或者以别的方式由该名称空间引用。在一个实现中,引用占位符的名称空间记录可以由名称空间记录的标记来确定。在另一个实现中,引用占位符的名称空间记录可以通过检查被包括在名称空间记录中的或由名称空间记录引用的元数据而被确定。
[0088]在方块420,文件系统数据结构可以取决于相对于文件所请求的操作而被更新。例如,如果操作是重新命名、移动、删除、恢复、创建、复制操作等等,则本地文件系统的名称空间可被更新为反映所述操作。例如,在移动操作中,本地文件系统的名称空间可被更新为指示文件现在驻留在名称空间中的新的位置。作为另一个例子,在删除操作中,本地文件系统的名称空间可被更新为指示文件已被删除,被删除文件的记录被存储在本地文件系统的删除容器(例如,文件系统“垃圾桶”)。作为另一个例子,在恢复操作中,本地文件系统的名称空间可被更新为指示文件已从删除容器被恢复。
[0089]在另一个例子中,操作可以是更新文件的固有或非固有元数据。在本例中,可以利用改变的元数据来更新占位符。当文件的固有或非固有元数据被改变时,本地文件系统的名称空间可以保持为相同的。
[0090]作为再一个例子,操作可以是更新文件的内容。在本例中,如果占位符指示内容是本地可得到的,则内容可被更新。
[0091]在另一个例子中,可能不需要更新文件系统数据结构。例如,如果操作是读出文件的名称,则名称可以从占位符中被读出,并被提供到读操作的请求者。这种类型的操作不牵涉到改变文件系统数据结构,所以在本例中,方块420的动作可以省略。
[0092]在方块425,对于客户端是否仍旧离线做出确定。例如,参照图3,如果客户端仍旧不能与包括占位符的内容的云存储系统通信,则客户端可被看作为对于云存储系统是离线的。
[0093]在方块430,如果客户端相对于云存储系统仍旧离线,则动作在方块410继续进行,在其中客户端可以接收另一个文件的指示;否则,动作在方块435继续进行。
[0094]在方块435,发现在客户端离线时对本地存储系统做出的改变。如先前指出的,这个发现可以采取读操作日志、比较从改变之前的时间的文件系统状态与在改变之后的时间的文件系统状态等等的形式。
[0095]在方块440,与云存储系统同步那些改变。例如,参照图3,同步管理器326可以与云存储系统315-317中的一个或多个同步那些改变。例如,当离线改变牵涉到文件的固有元数据时,同步可包括把来自占位符的元数据提供到云存储系统,以用于更新存在于云存储系统上的文件系统对象的对应固有元数据。
[0096]作为另一个例子,当离线改变牵涉到从删除容器恢复文件时,同步可包括把标识对于云存储系统的文件系统对象的标识符提供到云存储系统,与给云存储系统的指令相结合,以便从云存储系统的删除容器恢复文件系统对象。
[0097]在方块445,如果有其它动作的话,可以执行其它动作。例如,当客户端与导航应用交互时,客户端可以接收对于在本地文件系统的名称空间内的文件系统对象的元数据请求。为了应答那些牵涉到缺乏内容(该内容在云存储系统上可得到)的文件(例如,由占位符代表的文件)的请求,以及为了应答那些牵涉到使其整个内容在占位符中可得到的文件的请求,客户端可以从占位符得到元数据,以便把它提供给导航应
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1