与远程网络存储系统连接的本地网络存储的制作方法

文档序号:6495564阅读:318来源:国知局
与远程网络存储系统连接的本地网络存储的制作方法
【专利摘要】公开与远程网络存储系统连接的本地网络存储的各种实施方案。在客户端应用程序中,确定客户端是否通过本地网络可访问本地网络存储系统。在本地网络存储系统被确定为由客户端通过本地网络可访问时,通过本地网络将文件发送到本地网络存储系统以由本地网络存储系统存储。在本地网络存储系统被确定为不通过本地网络可访问时,通过远程网络将文件发送到远程网络存储系统以由与用户账户相关联的远程网络存储系统存储。
【专利说明】与远程网络存储系统连接的本地网络存储
[0001]发明背景
[0002]用户可能希望使用网络存储系统来存储数据,所述网络存储系统提供存储保证以确保数据不会遭到火灾和其他灾害的危险。不幸的是,由于缺乏计算技能和其他问题,可能很难让一些用户与网络存储系统交互作用。
[0003]附图简述
[0004]参照以下附图,可以更好地理解本公开的许多方面。附图中的组件未必按比例绘制,而是重点清楚地说明本公开的原理。此外,在附图中,贯穿几个视图中相似的参考数字指定相应的零件。
[0005]图1为根据本公开的各种实施方案的网络环境的图式。
[0006]图2A和图2B为图示根据本公开的各种实施方案的功能性的实例的流程图,其被实施为在图1的网络环境中的客户端计算设备中执行的存储管理应用程序的部分。
[0007]图3A和图3B为图示根据本公开的各种实施方案的功能性的实例的流程图,其被实施为在图1的网络环境中的计算设备中执行的本地网络存储系统的部分。
[0008]图4为提供根据本公开的各种实施方案的用于图1的网络环境中的计算设备的一个示例性说明的示意性方框图。
【具体实施方式】
[0009]本公开的各种实施方案涉及根据效用计算模型的数据文件的远程存储。网络文件系统可以用于对存储在包括多个网络计算设备的云计算资源中的文件提供访问。在一些实施方案中,网络文件系统可以对应于将文件的实际数据对象存储在单独的数据存储系统中的虚拟文件系统。元数据服务可以用于使元数据与文件相关联,由此促进使用元数据来搜索文件。通过将文件存储在此网络文件系统中,用户可以从具有网络连通性的任何计算设备访问文件。
[0010]根据各种实施方案,网络连接存储设备用于为客户端设备的远程网络存储系统提供本地可访问存储。通过访问连接到本地网络的网络连接存储设备,客户端可能比通过直接访问远程网络存储系统会经历更快的性能。然而,因为网络连接存储设备得到远程网络存储系统的支持,所以数据可能比只被本地存储的数据更广泛地可访问。此外,数据可能受到远程网络存储系统的可靠性和/或可用性保证的保护。
[0011]当客户端将文件存储到网络连接存储设备时,将文件最终存储在可以包括云存储系统的远程网络存储系统中,其中可以在网络连接存储设备中保持存储在远程网络存储系统中的文件的列表。也可以将存储在远程网络存储系统中的已经被最近访问的文件的子集存储在网络连接存储设备中。可以与网络连接存储设备联合执行应用程序,网络连接存储设备用于在网络连接存储设备上和远程网络存储系统中管理文件存储。另外,根据其他实施方案讨论其他功能性。在以下讨论中,首先提供各种组件的物理性质的描述,然后提供各种组件的操作的讨论。
[0012]参照图1,示出根据各种实施方案的网络环境100。网络环境100包括通过网络109进行数据通信的一个或多个计算设备103、一个或多个计算设备105和一个或多个客户端106。例如,网络109包括互联网、内联网、外联网、广域网(WANs)、局域网(LANs)、有线网络、无线网络或其他适合的网络等,或两个或多个此类网络的任何组合。
[0013]另外,客户端106通过本地网络110与计算设备105进行数据通信。本地网络110可以对应于基于家庭的网络、专用网络、有线网络、无线网络,和/或有线网络与无线网络的组合。本地网络Iio可以通过虚拟专用网络或其他网关从网络109可访问。计算设备105和客户端106可以通过本地网络110的网关(例如,代理服务器、网络地址转换设备、防火墙、路由器等)耦合到网络109。在各种实施方案中,本地网络110可以比网络109提供快得多的连接。与本地网络110相比,网络109可以被认为是远程网络109。
[0014]例如,计算设备103可以包括服务器计算机或提供计算能力的任何其他系统。或者,可以使用例如以一个或多个服务器组或计算机组或其他布置来布置的多个计算设备103。例如,多个计算设备103 —起可以包括云计算资源、网格计算资源和/或任何其他分布式计算布置。此类计算设备103可以位于单一的安装中或可以分布在许多不同的地理位置中。为了方便起见,计算设备103在本文中以单数形式被提及。尽管计算设备103以单数形式被提及,但是应理解如上所述,多个计算设备103可以用于各种布置中。
[0015]根据各种实施方案,可以在计算设备103中执行各种应用程序和/或其他功能性。此外,将计算设备103可访问的各种数据存储在数据存储器113中。如可以了解,数据存储器113可以代表多个数据存储器113。例如,存储在数据存储器113中的数据与下文所述的各种应用程序和/或功能实体的操作相关联。
[0016]例如,在计算设备103上执行的组件包括远程网络存储系统116和在本文中没有详细讨论的其他应用程序、服务、过程、系统、引擎或功能性。执行远程网络存储系统116以在网络文件系统或基于元数据的文件系统中为用户保持文件和文件夹的文件层次结构。为此目的,远程网络存储系统116可以支持各种与文件相关的操作,例如,创建文件、删除文件、修改文件、设置文件的权限、下载文件和/或其他操作。远程网络存储系统116可以被配置成提供由统一资源定位器(URL)通过超文本传输协议(HTTP)寻址的数据。
[0017]可以与远程网络存储系统116联合或作为远程网络存储系统116的部分来执行元数据服务以保持与文件相关联的元数据项目。为此目的,此元数据服务可以支持各种操作,例如,创建元数据项目、删除元数据项目、检索元数据项目、搜索元数据项目和/或其他操作。元数据服务也可以实施元数据项目的一个或多个可搜索的索引。应注意,与远程网络存储系统116中的每个用户存储账户相关联的网络文件系统可以为基于元数据的文件系统,例如,在2011年2月28日提交并且以引用的方式整体并入本文的标题为“METADATA-BASEDFILE SYSTEM”的美国专利申请号13 / 036,539中所描述。
[0018]可以提供对应于托管应用程序的各种应用程序,托管应用程序可以访问存储在网络文件系统中的数据。例如,此类应用程序可以具有基于网络的界面并且可以提供网络页面(例如,网页或其他形式的网络内容)以促进用户交互。其他应用程序可以为内部应用程序并且可能不具有基于网络的界面。此类应用程序的非限制性实例可以包括相片管理工具、音乐文件管理器和回放工具、文字处理器、电子数据表、电子邮件应用程序等。
[0019]例如,存储在数据存储器113中的数据包括存储账户133。与每个存储账户133相关联的是帐户设置136、主标识符139和潜在的其他信息。例如,如将要描述的,主标识符139可以包括电子邮件地址、字符串或其他类型的标识符。如将要描述的,与每个存储账户133相关联的是一个或多个存储桶153,将代表持有存储账户133的用户的各种文件156存储在存储桶153中。
[0020]存储账户133可以包括关于与存储账户133相关联的用户的信息。例如,此信息可以包括名称、地址、支付凭证和其他信息。帐户设置136可以用于指定和跟踪关于给定存储账户133的各种设置和其他功能性,例如,密码、安全凭证、文件管理权限、存储配额和限制、授权访问的应用程序、账单信息和/或其他数据。主标识符139为与各自的存储账户133的持有人相关联的标识符。此用户可以被认为是账户的主要持有人并且可以控制其使用。
[0021]计算设备105可以包括网络连接存储设备。为此目的,计算设备105可以包括例如服务器计算机或提供计算能力和数据存储能力的任何其他系统。或者,可以使用例如以一个或多个计算机组或其他布置来布置的多个计算设备105。为了方便起见,计算设备105在本文中以单数形式被提及。尽管计算设备105以单数形式被提及,但是应理解如上所述,多个计算设备105可以用于各种布置中。
[0022]根据各种实施方案,可以在计算设备105中执行各种应用程序和/或其他功能性。此外,将计算设备105可访问的各种数据存储在数据存储器157中。如可以了解,数据存储器157可以代表多个数据存储器157。例如,存储在数据存储器157中的数据与下文所述的各种应用程序和/或功能实体的操作相关联。在一些实施方案中,数据存储器157可以使用独立磁盘冗余阵列(RAID)、集群和/或其他技术来增加可靠性。
[0023]例如,在计算设备105上执行的组件包括本地网络存储系统158和在本文中没有详细讨论的其他应用程序、服务、过程、系统、引擎或功能性。执行本地网络存储系统158以在远程网络存储系统116的网络文件系统或基于元数据的文件系统中为用户保持文件和文件夹的文件层次结构的缓存。为此目的,本地网络存储系统158可以支持各种与文件相关的操作,例如,创建文件、删除文件、修改文件、设置文件的权限、下载文件和/或其他操作。本地网络存储系统158可以被配置成提供由URL通过HTTP寻址的数据。
[0024]例如,存储在数据存储器157中的数据包括文件缓存159。文件缓存159对应于在远程网络存储系统116的文件156中可用于用户的数据的完整或部分镜像。可以响应于用户通过本地网络存储系统158访问数据而定期或按需更新文件缓存159。文件缓存159也可以包括来自远程网络存储系统116中的用户的文件系统的元数据和/或其他信息。
[0025]客户端106代表可以耦合到网络109的多个客户端设备。例如,客户端106可以包括基于处理器的系统,例如,计算机系统。可以用台式计算机、膝上型计算机、个人数字助理、蜂窝电话、机顶盒、音乐播放器、上网机、平板计算机系统、游戏机、电子图书阅读器、智能电话或具有相似能力的其他设备的形式实施此计算机系统。如可以了解,客户端106可以包括显示设备160,例如,液晶显示器(LCD)或其他类型的显示设备。
[0026]客户端106可以被配置成执行操作系统163、存储管理应用程序166和其他应用程序169,例如,电子邮件应用程序、即时消息应用程序、浏览器、文字处理器、电子数据表、绘图应用程序和/或其他应用程序。在各种实施方案中,存储管理应用程序166可以对应于与由远程网络存储系统116和/或本地网络存储系统158提供的基于浏览器的界面结合提供的客户端可执行代码。[0027]接着,提供网络环境100的各种组件的操作的一般描述。首先,用户可以配置计算设备103上的存储账户133。可以通过用户的主标识符139将一个或多个存储桶153分配给用户。一旦配置存储账户133,用户就可以开始存储远程网络存储系统116上的文件156。
[0028]首先描述客户端106直接使用远程网络存储系统116。在一个实例中,用户可以通过网络109经由基于浏览器的界面将文件156上载到远程网络存储系统116。在另一实例中,在客户端106中执行的存储管理应用程序166可以被配置成使远程网络存储系统116看起来像是本地存储设备。在此实例中,用户可能只存储远程网络存储系统116上的文件156,就像远程网络存储系统116是任何本地存储设备一样,并且存储管理应用程序166处理后台上载。在又一实例中,用户可以购买文件156或以其他方式通过在计算设备103中执行的应用程序生成文件156,并且应用程序为用户将文件156存储在存储桶153中。
[0029]一旦文件156可用于远程网络存储系统116中,用户就可以开始读取文件和/或修改描述文件的元数据。在一个实例中,用户可以通过基于浏览器的界面访问远程网络存储系统116并且通过此界面下载或修改文件156。在另一实例中,用户可以通过存储管理应用程序166访问远程网络存储系统116,就像远程网络存储系统116是任何本地可访问的存储设备一样。例如,操作系统163可以被配置成提供远程网络存储系统116,就像远程网络存储系统116是客户端106中的安装驱动或文件系统一样。文件156可以被下载、由用户组织成目录、重命名、修改等。
[0030]因为远程网络存储系统116保持文件156的存储,所以文件156可以与计算设备103的操作员的服务水平协议相关联。例如,此服务水平协议可以包括可靠性、可用性和/或其他保证。此外,文件156可以由可能在网络109的不同部分上的用户的不同的客户端106进行访问。例如,用户的客户端106可以包括通过家庭宽带连接而连接到网络109的台式计算机、通过在公共场所共享的W1-Fi连接而连接到网络109的膝上型计算机、通过蜂窝数据网络而连接到网络109的智能电话等。
[0031]可以通过使用为连接到本地网络110的客户端106提供网络连接存储的计算设备105增强远程网络存储系统116的性能。在各种实施方案中,计算设备105对应于不管本地网络110上的客户端106的状态如何都通常保持在线的任何独立的网络连接存储设备。然而,应理解,计算设备105可以对应于为本地网络110的客户端106提供网络文件存储的任何计算机系统。计算设备105的本地网络存储系统158可以为可安装的,和/或在客户端106在本地网络110上时以其他方式看起来像是由客户端106本地可访问的。
[0032]本地网络存储系统158可以比远程网络存储系统116支持客户端106的更快的访问。作为非限制性实例,本地网络110可以对应于1000兆比特每秒以太网网络,而客户端106与网络109的连接可以对应于768千比特每秒数字用户线路(DSL)互联网连接。另外,本地网络存储系统158可以比远程网络存储系统116为用户支持更多的存储。作为非限制性实例,本地网络存储系统158可以支持3兆兆字节的存储,而远程网络存储系统116可以提供5千兆字节的存储供用户免费使用,并且收取经常性费用来提供可用于用户的额外的存储。
[0033]因此,当客户端106通过本地网络110可访问本地网络存储系统158时,存储管理应用程序166可以被配置成将一些或所有文件156的请求路由到本地网络存储系统158而不是远程网络存储系统116。文件156可能或可能不在文件缓存159中。如果将文件156的当前版本存储在文件缓存159中,那么本地网络存储系统158可能响应于读取请求而通过本地网络110只将缓存文件156传回到客户端106。
[0034]如果客户端106请求读取不在文件缓存159中的文件156,那么本地网络存储系统158可以充当代理服务器并且从代表客户端106的远程网络存储系统116请求文件156。在各种实施方案中,在文件156被获得后或在被获得时同时出现在数据块中时,可以通过本地网络存储系统158将文件156传回到客户端106。或者,如果文件156没有出现在文件缓存159中,那么客户端106可以独立于远程网络存储系统而获得文件156。存储管理应用程序166可以随后将文件的副本提供到本地网络存储系统158以便将文件的副本添加到文件缓存159。
[0035]对于新的文件156、写入、修改和/或其他更新,本地网络存储系统158可以充当存储管理应用程序166的直写式高速缓存。当更新数据时,将数据存储在文件缓存159中并且传播到远程网络存储系统116。在一个实施方案中,首先将数据存储在文件缓存159中,然后将数据发送到远程网络存储系统116。在另一实施方案中,同时进行将数据存储在文件缓存159中和由本地网络存储系统158发送数据,以便将数据存储在远程网络存储系统116中。在各种其他替代实施方案中,存储管理应用程序166可以被配置成将数据发送到本地网络存储系统158,然后将数据发送到远程网络存储系统116、将数据发送到远程网络存储系统116,然后将数据发送到本地网络存储系统158,或将数据同时发送到本地网络存储系统158和远程网络存储系统116。
[0036]在一些实施方案中,本地网络存储系统158可以在本地网络110上透明地增加远程网络存储系统116。为此目的,存储管理应用程序166可以参与某些类型的探索以确定是否存在本地网络存储系统158。此探索可以包括客户端106上的应用程序以测量吞吐量、等待时间和/或其他网络性能基准参数,从而确定连接到本地网络存储系统158是否将提供胜过连接到远程网络存储系统116的性能优势。作为替代方法,存储管理应用程序166可以由用户显式配置成使用本地网络存储系统158。作为另一替代方法,当远程网络存储系统116检测到本地网络存储系统158和存储管理应用程序166由连接到同一本地网络110的设备执行时,存储管理应用程序166可以由远程网络存储系统116配置成使用本地网络存储系统158。
[0037]在一个实施方案中,包括由本地网络存储系统158生成的文件156的列表的用户界面可以指示每个文件156(或文件156的目录)是由远程网络存储系统116保持的文件156的缓存的副本还是未由远程网络存储系统116保持的原始文件。此外,用户可能能够标示或以其他方式控制将哪些文件156保持在远程网络存储系统116中,而不是仅仅保持在本地网络存储系统158中。当本地网络存储系统158具有比远程网络存储系统116更大的存储容量时,此选择可能是有帮助的。作为一个实例,由于可靠性的原因,用于可以指定某些重要文件156包括在远程网络存储系统116中。作为另一实例,用于可以指定可能由没有连接到本地网络110的客户端106访问的某些文件156包括在远程网络存储系统116中。
[0038]在一些情况下,在本地网络110外面的客户端106可以访问本地网络存储系统158。可以通过虚拟专用网络、代理服务器、远程终端和/或一些其他方法促进此访问。然而,客户端106通过网络109与计算设备105的连接可能慢于与计算设备103的连接。当通过本地网络Iio的访问不能利用时,客户端106可能更喜欢访问远程网络存储系统116而不是本地网络存储系统158。然而,在一些情况下,例如,对于也不是由远程网络存储系统116存储的数据、在远程网络存储系统116不能利用时等,通过网络109访问本地网络存储系统158可能是有用的。
[0039]在各种实施方案中,本地网络存储系统158或远程网络存储系统116可以为文件156授权。由于可靠性、可用性和/或其他原因,可能优选的是远程网络存储系统116为经授权的。如果远程网络存储系统116为经授权的,那么本地网络存储系统158可遗不确认文件156的更新完成直到也在远程网络存储系统116中已经成功地更新文件156。相比之下,如果本地网络存储系统158为经授权的,那么远程网络存储系统116可能不确认文件156的更新完成直到也在本地网络存储系统158中已经更新文件156。此外,本地网络存储系统158可能必须将新版本直接发送到不在本地网络110上的客户端106直到将更新传播到远程网络存储系统116。
[0040]本地网络存储系统158可以从文件156的标题或可以用于列出文件156以供用户访问的那些文件156的部分中缓存数据。例如,当文件156是以MP3格式的歌曲时,可以将歌曲的一部分存储在文件缓存159中以为用户进行播放,从而确定用户是否想要访问歌曲。或者,可以在文件缓存159中包括其他信息,例如,元数据、图像的缩略图和其他数据。在一个实施方案中,可以将用户的文件156的元数据的完整镜像保持在文件缓存159中。在另一实施方案中,每当执行元数据访问或搜索时,本地网络存储系统158可以为远程网络存储系统116查询元数据。
[0041]在一些实施方案中,远程网络存储系统116和本地网络存储系统158也可以通过客户端106中的缓存数据的本地存储加以补充。涉及使用客户端106上的本地存储的各种技术在2011年3月29日提交并且以引用的方式整体并入本文的标题为“LOCAL STORAGELINKED TO NETWORKED STORAGE SYSTEM” 的美国专利申请号 13 / 074,325 中加以描述。
[0042]接着参看图2A,示出提供根据各种实施方案的存储管理应用程序166的一部分的操作的一个实例的流程图。应理解,图2A的流程图仅仅提供可以用于实施本文所述的存储管理应用程序166的部分的操作的许多不同类型的功能布置的实例。作为替代方法,图2A的流程图可以被看作是描绘根据一个或多个实施方案的在客户端106 (图1)中实施的方法的步骤的实例。
[0043]以方框203开始,存储管理应用程序166从远程网络存储系统116(图1)获得读取数据对象的请求。可以通过由客户端106中的存储管理应用程序166呈现的用户界面生成此请求。此用户界面可以包括网络页面、操作系统163(图1)的文件浏览器应用程序、应用程序169(图1)的扩展,和/或其他类型的用户界面。用户界面可能或可能不辨别存储在远程网络存储系统116和本地网络存储系统158 (图1)中的文件或存储在远程网络存储系统116中但是不存储在本地网络存储系统158中的文件。
[0044]在方框206中,存储管理应用程序166确定本地网络存储系统158是否在本地可用。换句话说,存储管理应用程序166确定本地网络存储系统158是否可以由客户端106通过本地网络110(图1)联系。为此目的,存储管理应用程序166可以参与一种形式的探索和/或执行网络性能基准以确定本地网络存储系统158是否通过本地网络110可访问。
[0045]如果本地网络存储系统158在本地可用,那么存储管理应用程序166移动到方框209。在方框209中,存储管理应用程序166从本地网络存储系统158获得数据对象。在方框212中,存储管理应用程序166传回数据对象。此后,存储管理应用程序166的部分结束。
[0046]作为替代,如果存储管理应用程序166在方框206中确定本地网络存储系统158在本地不可用,那么存储管理应用程序166继续从方框206到方框215。在方框215中,存储管理应用程序166确定远程网络存储系统116是否可用。作为非限制性实例,存储管理应用程序166可以启动网络连接、网络诊断工具,和/或执行其他类型的扩大服务以确定远程网络存储系统116是否可用。如果远程网络存储系统116可用,那么存储管理应用程序166移动到方框218并且从远程网络存储系统116获得数据对象。为此目的,存储管理应用程序166可以将存储账户133(图1)的指示(例如,主标识符139(图1))提供到远程网络存储系统116。在方框221中,存储管理应用程序166获得数据对象。此后,存储管理应用程序166的部分结束。
[0047]作为替代,如果存储管理应用程序166在方框215中确定远程网络存储系统116不可用,那么存储管理应用程序166继续到方框224。在方框224中,存储管理应用程序166确定本地网络存储系统158是否可用,即使在不通过本地网络110,例如,通过网络109(图1)、虚拟专用网络等的情况下。如果本地网络存储系统158可用,那么存储管理应用程序166进入方框227并且从本地网络存储系统158获得数据对象。在方框230中,存储管理应用程序166传回数据对象。此后,存储管理应用程序166的部分结束。
[0048]如果存储管理应用程序166在方框224中确定本地网络存储系统158不可用,那么存储管理应用程序166替代地继续到方框233并且生成错误。或者,存储管理应用程序166可以传回客户端106上的数据对象的本地副本(在此本地副本可用的情况下)。此后,存储管理应用程序166的部分结束。
[0049]移动到图2B,示出提供根据各种实施方案的存储管理应用程序166的一部分的操作的另一实例的流程图。应理解,图2B的流程图仅仅提供可以用于实施本文所述的存储管理应用程序166的部分的操作的许多不同类型的功能布置的实例。作为替代方法,图2B的流程图可以被看作是描绘根据一个或多个实施方案的在客户端106 (图1)中实施的方法的步骤的实例。
[0050]以方框236开始,存储管理应用程序166获得写入、更新或以其他方式修改远程网络存储系统116(图1)上的数据对象的请求。可以通过由客户端106中的存储管理应用程序166呈现的用户界面生成此请求。此用户界面可以包括网络页面、操作系统163(图1)的文件浏览器应用程序、应用程序169 (图1)的扩展,和/或其他类型的用户界面。用户界面可能或可能不辨别存储在远程网络存储系统116和本地网络存储系统158 (图1)中的文件或存储在远程网络存储系统116中但是不存储在本地网络存储系统158中的文件。
[0051]在方框239中,存储管理应用程序166确定本地网络存储系统158是否在本地可用。换句话说,存储管理应用程序166确定本地网络存储系统158是否可以由客户端106通过本地网络110(图1)联系。为此目的,存储管理应用程序166可以参与一种形式的探索和/或执行网络性能基准以确定本地网络存储系统158是否通过本地网络110可访问。
[0052]如果本地网络存储系统158在本地可用,那么存储管理应用程序166移动到方框242。在方框242中,存储管理应用程序166将写入请求发送到本地网络存储系统158。在各种实施方案中,存储管理应用程序166可以接收成功写入的确认。同步方法可以用于本地网络存储系统158中以使更新的数据对象全局地可用。写入是否成功可能取决于本地网络存储系统158是否为数据对象授权和/或是否已经将写入成功地传播到远程网络存储系统116。此后,存储管理应用程序166的部分结束。
[0053]作为替代,如果存储管理应用程序166在方框239中确定本地网络存储系统158在本地不可用,那么存储管理应用程序166继续从方框239到方框245。在方框245中,存储管理应用程序166确定远程网络存储系统116是否可用。作为非限制性实例,存储管理应用程序166可以启动网络连接、网络诊断工具,和/或执行其他类型的扩大服务以确定远程网络存储系统116是否可用。如果远程网络存储系统116可用,那么存储管理应用程序166移动到方框248并且将写入请求发送到远程网络存储系统116。在各种实施方案中,存储管理应用程序166可以接收成功写入的确认。写入是否成功可能取决于远程网络存储系统116是否为数据对象授权。此后,存储管理应用程序166的部分结束。
[0054]作为替代,如果存储管理应用程序166在方框245中确定远程网络存储系统116不可用,那么存储管理应用程序166继续到方框251。在方框251中,存储管理应用程序166确定本地网络存储系统158是否可用,即使在不通过本地网络110,例如,通过网络109(图1)、虚拟专用网络等的情况下。如果本地网络存储系统158可用,那么存储管理应用程序166进入方框254并且将写入请求发送到本地网络存储系统158。在各种实施方案中,存储管理应用程序166可以接收成功写入的确认。同步方法可以用于本地网络存储系统158中以使更新的数据对象全局地可用。写入是否成功可能取决于本地网络存储系统158是否为数据对象授权和/或是否已经将写入成功地传播到远程网络存储系统116。此后,存储管理应用程序166的部分结束。
[0055]如果存储管理应用程序166在方框224中确定本地网络存储系统158不可用,那么存储管理应用程序166替代地继续到方框233并且生成错误。或者,存储管理应用程序166可以将数据对象写入到客户端106上的本地缓存(在此本地缓存可用的情况下)。此后,存储管理应用程序166的部分结束。
[0056]现在转向图3A,示出提供根据各种实施方案的本地网络存储系统158的一部分的操作的一个实例的流程图。应理解,图3A的流程图仅仅提供可以用于实施本文所述的本地网络存储系统158的部分的操作的许多不同类型的功能布置的实例。作为替代方法,图3A的流程图可以被看作是描绘根据一个或多个实施方案的在计算设备105 (图1)中实施的方法的步骤的实例。
[0057]以方框303开始,本地网络存储系统158从在客户端106 (图1)中执行的存储管理应用程序166(图1)获得读取数据对象的请求。在方框306中,本地网络存储系统158确定数据对象在文件缓存159(图1)中。如果数据对象不在文件缓存159中,那么本地网络存储系统158继续到方框309并且从远程网络存储系统116 (图1)获得数据对象。在方框312中,本地网络存储系统158将数据对象存储在文件缓存159中。在方框315中,本地网络存储系统158将数据对象传回到客户端106。在各种实施方案中,当从远程网络存储系统116获得数据对象时,在将数据对象存储在文件缓存159中之前、在将数据对象存储在文件缓存159中之后,或与将数据对象存储在文件缓存159中同时,可以将数据对象传回到客户端106。此后,本地网络存储系统158的部分结束。
[0058]作为替代,如果本地网络存储系统158在方框306中确定将数据对象存储在文件缓存159中,那么本地网络存储系统158移动到方框318。如果本地网络存储系统158为未经授权的,那么在方框318中,本地网络存储系统158确定数据对象的缓存的副本是否对应于数据对象的最新版本。作为非限制性实例,本地网络存储系统158可以与远程网络存储系统116通信以确定与数据对象相关联的文件签名是否为当前的。如果数据对象的缓存的副本不是最新版本,那么本地网络存储系统158移动到方框309并且获得如上所述的数据对象的最新版本。
[0059]如果本地网络存储系统158在方框318中确定存储在文件缓存159中的数据对象的副本为最新版本,那么本地网络存储系统158从方框318转变到方框321并且从文件缓存159获得数据对象。接着,在方框315中,本地网络存储系统158将数据对象传回到客户端106。此后,本地网络存储系统158的部分结束。
[0060]继续到图3B,示出提供根据各种实施方案的本地网络存储系统158的一部分的操作的另一实例的流程图。应理解,图3B的流程图仅仅提供可以用于实施本文所述的本地网络存储系统158的部分的操作的许多不同类型的功能布置的实例。作为替代方法,图3B的流程图可以被看作是描绘根据一个或多个实施方案的在计算设备105 (图1)中实施的方法的步骤的实例。
[0061]以方框324开始,本地网络存储系统158从在客户端106 (图1)中执行的存储管理应用程序166(图1)获得写入数据对象的请求。此请求可以为写入新的数据对象、更新现有的数据对象、修改现有的数据对象的元数据或执行其他类型的数据修改操作的请求。在方框327中,本地网络存储系统158在文件缓存159 (图1)中存储写入/修改的数据对象。在方框330中,本地网络存储系统158将写入的数据对象发送到远程网络存储系统116(图1)。
[0062]在方框333中,本地网络存储系统158确定其是否为数据对象授权。如果是这样,那么本地网络存储系统158在方框336中将成功结果的指示传回到客户端106。此后,本地网络存储系统158的部分结束。
[0063]如果本地网络存储系统158在方框333中确定其不为数据对象授权,那么本地网络存储系统158替代地从方框333移动到方框339。在方框339中,本地网络存储系统158确定是否将更新已经成功地传播或复制到远程网络存储系统116。例如,本地网络存储系统158可以从远程网络存储系统116接收确认。如果已经成功地传播更新,那么本地网络存储系统158移动到方框336并且将成功结果的指示传回到客户端106。此后,本地网络存储系统158的部分结束。
[0064]如果本地网络存储系统158替代地在方框339中确定没有成功地传播更新,那么本地网络存储系统158从方框339移动到方框342并且确定其是否将重试发送数据。如果本地网络存储系统158将重试发送数据,那么本地网络存储系统158移动到方框345并且将写入的数据对象重发送到远程网络存储系统116。然后,本地网络存储系统158返回到方框339以验证如上所述的成功的传播。
[0065]如果本地网络存储系统158不将重试发送数据,那么本地网络存储系统158替代地从方框342移动到方框348并且中止写入操作。本地网络存储系统158也可以将文件缓存159恢复到数据对象的较早的状态,由此有效地消除写入的任何先前的委托。在方框351中,本地网络存储系统158将错误的指示传回到客户端106。此后,本地网络存储系统158的部分结束。
[0066]参照图4,示出根据本公开的实施方案的计算设备105的示意性方框图。计算设备105包括至少一个处理器电路,例如,具有处理器403和存储器406,这两者都耦合到本地接口 409。为此目的,计算设备105可以包括例如至少一个服务器计算机或相似的设备。如可以了解,例如,本地接口 409可以包括具有伴随的地址/控制总线或其他总线结构的数据总线。应理解,客户端106和计算设备103可以使用类似于计算设备105的处理器和存储器电路体系结构。
[0067]存储在存储器406中的是由处理器403执行的数据和几个组件。具体来说,存储在存储器406中并且由处理器403执行的是本地网络存储系统158和潜在的其他应用程序。也存储在存储器406中的可以是数据存储器157和其他数据。另外,操作系统可以存储在存储器406中并且由处理器403执行。
[0068]应理解,如可以了解,可能存在存储在存储器406中并且由处理器403执行的其他应用程序。在以软件形式实施本文所述的任何组件的情况下,可以使用许多程序设计语言中的任何一个,例如,C、C++、C#、Objective C、Java'JavaScript' Perl、PHP,
Visual Basic.1'、Python1'、Ruby> Delphi1', Flash:K:或其他程序设计语言。
[0069]许多软件组件存储在存储器406中并且由处理器403执行。在这方面,术语“可执行文件”意指以可能最终由处理器403运行的形式的程序文件。例如,可执行程序的实例可以为编成程序,其可以被转化成以可能被加载到存储器406的随机访问部分中并且由处理器403运行的格式的机器代码、可能以能够被加载到存储器406的随机访问部分中并且由处理器403执行的适当的格式(例如,目标代码)表示的源代码,或可能由另一可执行程序解释以在存储器406的随机访问部分中生成指令以由处理器403执行的源代码等。可执行程序可以存储在存储器406的任何部分或组件中,存储器406包括例如随机访问存储器(RAM)、只读存储器(ROM)、硬盘驱动器、固态驱动器、USB闪存驱动器、存储卡、光盘(例如,压缩光盘(CD)或数字通用光盘(DVD))、软盘、磁带,或其他存储组件。
[0070]存储器406在本文中被定义为包括易失性存储器、非易失性存储器和数据存储组件。易失性组件为在功率损失后不保留数据值的那些组件。非易失性组件为在功率损失后保留数据的那些组件。因此,存储器406可以包括例如随机访问存储器(RAM)、只读存储器(ROM)、硬盘驱动器、固态驱动器、USB闪存驱动器、通过存储卡读卡器访问的存储卡、通过相关联的软盘驱动器访问的软盘、通过光盘驱动器访问的光盘、通过适当的磁带驱动器访问的磁带,和/或其他存储器组件,或任何两个或多个这些存储器组件的组合。另外,RAM可以包括例如静态随机访问存储器(SRAM)、动态随机访问存储器(DRAM),或磁性随机访问存储器(MRAM)和其他此类设备。ROM可以包括例如可编程只读存储器(PROM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)或其他相似的存储设备。
[0071]此外,处理器403可以代表多个处理器403,并且存储器406可以代表分别在并行处理电路中操作的多个存储器406。在此情况下,本地接口 409可以为促进多个处理器403的任何两个之间、任何处理器403与任何存储器406之间,或存储器406的任何两个之间等的通信的适当的网络。本地接口 409可以包括被设计成协调此通信(例如,包括执行负载平衡)的额外的系统。处理器403可以具有电气构造或某一其他可用的构造。[0072]尽管本地网络存储系统158、远程网络存储系统116(图1)、存储管理应用程序166 (图1)和本文所述的其他各种系统可能以由如上所述的通用硬件执行的软件或代码来实施,但是作为替代方法,同样也可能以专用硬件或软件/通用硬件与专用硬件的组合来实施。如果以专用硬件来实施,那么每个可以被实施为使用许多技术的任何一个或组合的电路或状态机。这些技术可以包括(但不限于)具有在施加一个或多个数据信号后实施各种逻辑功能的逻辑门的离散逻辑电路、具有适当的逻辑门的专用集成电路,或其他组件等。此类技术一般为本领域技术人员众所周知,并且因此在本文中不详细加以描述。
[0073]图2A至图3B的流程图示出存储管理应用程序166和本地网络存储系统158的部分的实施的功能性和操作。如果以软件来实施,那么每个方框可以代表包括程序指令以实施指定的逻辑功能的代码的模块、区段或部分。程序指令可以用包括以程序设计语言写入的人类可读语句的源代码,或包括由适合的执行系统(例如,计算机系统或其他系统中的处理器403)可识别的数字指令的机器代码的形式来实施。可以从源代码等转换机器代码。如果以硬件来实施,那么每个方框可以代表电路或许多互连电路以实施指定的逻辑功能。
[0074]尽管图2A至图3B的流程图示出特定执行顺序,但是应理解执行顺序可以与描绘的顺序不同。例如,可以相对于示出的顺序打乱两个或多个方框的执行顺序。此外,在图2A至图3B中接连示出的两个或多个方框可以被同时或部分同时地执行。此外,在一些实施方案中,在图2A至图3B中示出的一个或多个方框可以被跳过或忽略。另外,为了增强效用、会计、性能测量或提供故障排除援助等,可以将任何数目的计数器、状态变量、警告信号或消息添加到本文所述的逻辑流程。应理解,所有此类变化在本公开的范围内。
[0075]此外,本文所述的任何逻辑或应用程序,包括包括软件或代码的本地网络存储系统158、远程网络存储系统116和存储管理应用程序166,可能以任何非暂态计算机可读介质来实施以供指令执行系统(例如,计算机系统或其他系统中的处理器403)使用或与指令执行系统结合使用。在这个意义上,逻辑可以包括例如语句,其包括可以从计算机可读介质提取并且由指令执行系统执行的指令和声明。在本公开的上下文中,“计算机可读介质”可以为可以含有、存储或保持本文所述的逻辑或应用程序以供指令执行系统使用或与指令执行系统结合使用的任何介质。计算机可读介质可以包括许多物理介质中的任何一个,例如,磁性、光学或半导体介质。适合的计算机可读介质的更具体的实例将包括(但不限于)磁带、磁性软盘、磁性硬盘驱动器、存储卡、固态驱动器、USB闪存驱动器或光盘。此外,计算机可读介质可以为随机访问存储器(RAM),其包括例如静态随机访问存储器(SRAM)和动态随机访问存储器(DRAM),或磁性随机访问存储器(MRAM)。另外,计算机可读介质可以为只读存储器(ROM)、可编程只读存储器(PROM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM),或其他类型的存储设备。
[0076]条款
[0077]1.一种非暂态计算机可读介质,其实施可执行在客户端计算设备中的程序,所述程序包括:
[0078]确定所述客户端计算设备是否通过本地网络可访问本地网络存储系统的代码,所述本地网络存储系统包括网络连接存储设备;
[0079]呈现被配置成促进远程网络存储系统中的文件存储的用户界面的代码;
[0080]获得用户通过所述用户界面存储的所述文件的指示的代码,所述文件存储在所述客户端计算设备中;
[0081]在所述本地网络存储系统被确定为由所述客户端计算设备通过所述本地网络可访问时,通过所述网络连接存储设备的所述本地网络将所述文件发送到所述本地网络存储系统以由所述本地网络存储系统存储的代码;
[0082]在所述本地网络存储系统被确定为不由所述客户端计算设备通过所述本地网络可访问时,通过远程网络将所述文件发送到所述远程网络存储系统以由与用户账户相关联的基于元数据的文件系统中的所述远程网络存储系统存储的代码;以及
[0083]其中所述本地网络存储系统被配置成响应于所述文件由所述本地网络存储系统存储,通过所述远程网络将所述文件复制到与所述用户账户相关联的所述远程网络存储系统。
[0084]2.如条款I所述的非暂态计算机可读介质,其中确定本地网络存储系统是否由所述计算设备通过本地网络可访问的所述代码进一步包括执行所述客户端计算设备与所述本地网络存储系统之间的网络性能基准的代码。
[0085]3.如条款I所述的非暂态计算机可读介质,其中所述用户界面不辨别存储在所述本地网络存储系统和所述远程网络存储系统中的文件,和存储在所述远程网络存储系统中但是不存储在所述本地网络存储系统中的文件。
[0086]4.如条款I所述的非暂态计算机可读介质,其中通过所述本地网络的网关访问所述远程网络。
[0087]5.一种系统,其包括:
[0088]计算设备;以及
[0089]可执行在所述计算设备中的存储管理应用程序,所述存储管理应用程序包括:
[0090]确定本地网络存储系统是否由所述计算设备通过本地网络可访问的逻辑;
[0091]在所述本地网络存储系统被确定为由所述计算设备通过所述本地网络可访问时,通过所述本地网络将文件发送到所述本地网络存储系统以由所述本地网络存储系统存储的逻辑;以及
[0092]在所述本地网络存储系统被确定为不由所述计算设备通过所述本地网络可访问时,通过远程网络将所述文件发送到远程网络存储系统以由与用户账户相关联的所述远程网络存储系统存储的逻辑。
[0093]6.如条款5所述的系统,其中所述存储管理应用程序进一步包括:
[0094]在所述本地网络存储系统被确定为由所述计算设备通过所述本地网络可访问时,通过所述本地网络将读取另一文件的请求发送到所述本地网络存储系统的逻辑;以及
[0095]在所述本地网络存储系统被确定为不由所述计算设备通过所述本地网络可访问时,通过所述远程网络将读取另一文件的请求发送到与所述用户账户相关联的所述远程网络存储系统的逻辑。
[0096]7.如条款6所述的系统,其中响应于读取另一文件的所述请求,所述本地网络存储系统被配置成:
[0097]在另一文件被缓存时,将另一文件从文件缓存传回到所述计算设备;以及
[0098]在另一文件不被缓存时,从与所述用户账户相关联的所述远程网络存储系统获得另一文件。[0099]8.如条款7所述的系统,其中所述本地网络存储系统被配置成在从所述远程网络存储系统获得另一文件时,同时将另一文件传回到所述计算设备并且将另一文件存储在所述文件缓存中。
[0100]9.如条款7所述的系统,其中所述本地网络存储系统被配置成在从所述远程网络存储系统获得另一文件之后,将另一文件传回到所述计算设备。
[0101]10.如条款5所述的系统,其中所述本地网络存储系统被配置成比所述远程网络存储系统的所述用户账户的配额提供更大数量的数据存储。
[0102]11.如条款5所述的系统,其中所述远程网络为互联网。
[0103]12.如条款5所述的系统,其中所述本地网络存储系统包括网络连接存储设备。
[0104]13.如条款5所述的系统,其中所述本地网络存储系统被配置成响应于由所述本地网络存储系统存储的所述文件,通过所述远程网络将所述文件复制到与所述用户账户相关联的所述远程网络存储系统。
[0105]14.如条款5所述的系统,其中所述存储管理应用程序进一步包括呈现用户界面的逻辑,所述用户界面被配置成获得是否将所述文件复制到所述远程网络存储系统的用户指示。
[0106]15.如条款14所述的系统,其中将所述文件发送到所述本地网络存储系统的所述逻辑进一步包括:
[0107]在所述用户指示指定将所述文件复制到所述远程网络存储系统时,将所述本地网络存储系统配置成将所述文件复制到与所述用户账户相关联的所述远程网络存储系统的逻辑;以及
[0108]在所述用户指示指定没有将所述文件复制到所述远程网络存储系统时,将所述本地网络存储系统配置成不将所述文件复制到所述远程网络存储系统的逻辑。
[0109]16.一种方法,其包括以下步骤:
[0110]在计算设备中获得读取存储在与用户账户相关联的远程网络存储系统中的文件的请求,客户端计算设备通过本地网络获得所述请求;
[0111]在所述计算设备中确定是否将所述文件存储在本地缓存中;
[0112]当将所述文件存储在所述本地缓存中时,在所述计算设备中通过所述本地网络将所述文件发送到所述客户端计算设备;
[0113]当没有将所述文件存储在所述本地缓存中时,在所述计算设备中从所述远程网络存储系统获得所述文件,其中将所述用户账户的标识提供到所述远程网络存储系统;以及
[0114]在从所述远程网络存储系统获得所述文件时,在所述计算设备中将所述文件发送到所述客户端计算设备。
[0115]17.如条款16所述的方法,其中所述计算设备为被配置成在所述本地网络上保持在线的网络连接存储设备。
[0116]18.如条款16所述的方法,其进一步包括以下步骤:
[0117]在所述计算设备中为由所述远程网络存储系统存储的基于元数据的文件系统保持元数据镜像,所述基于元数据的文件系统与所述用户账户相关联。
[0118]19.如条款16所述的方法,其进一步包括以下步骤:
[0119]在所述计算设备中获得关于由与所述用户账户相关联的所述远程网络存储系统存储的至少一个文件的元数据的查询,从所述客户端计算设备获得所述查询;
[0120]在所述计算设备中将所述查询发送到所述远程网络存储系统;
[0121]在所述计算设备中从所述远程网络文件系统获得所述查询的响应;以及
[0122]在所述计算设备中将所述查询的所述响应传回到所述客户端计算设备。
[0123]20.如条款16所述的方法,其进一步包括以下步骤:
[0124]在所述计算设备中通过所述本地网络从所述客户端计算设备获得存储在与所述用户账户相关联的所述远程网络存储系统中的另一文件;
[0125]在所述计算设备中将另一文件存储在所述本地缓存中;以及
[0126]在所述计算设备中通过所述远程网络将另一文件发送到所述远程网络存储系统以存储在与所述用户账户相关联的所述远程网络存储系统中,将所述用户账户的所述标识提供到所述远程网络存储系统。
[0127]21.如条款20所述的方法,其进一步包括以下步骤:
[0128]在所述计算设备中确定所述计算设备是否为另一文件授权;
[0129]在所述计算设备中通过所述本地网络将在所述计算设备为另一文件授权时成功存储另一文件的指示传回到所述客户端计算设备;
[0130]在所述计算设备中确定是否将另一文件成功存储在所述远程网络存储系统中;以及
[0131]在所述计算设备中通过所述本地网络将在所述计算设备不为另一文件授权时没有成功存储另一文件以及没有将另一文件成功存储在所述远程网络计算系统中的指示传回到所述客户端计算设备。
[0132]22.如条款16所述的方法,其进一步包括以下步骤:
[0133]在所述计算设备中获得所述文件的更新;
[0134]在所述计算设备中将所述文件的所述更新存储在所述本地缓存中;以及
[0135]在所述计算设备中通过所述远程网络将所述文件的所述更新发送到所述远程网络存储系统以存储在与所述用户账户相关联的所述远程网络存储系统中,将所述用户账户的所述标识提供到所述远程网络存储系统。
[0136]应该强调的是,为了清晰的理解本公开的原理,本公开的上述实施方案仅仅是所陈述的实施的可能的实例。在实质上不脱离本公开的精神和原理的情况下,可以对上述实施方案进行许多变化和修改。所有此类修改和变化意图在本文中包括在本公开的范围内并且受以下权利要求书保护。
【权利要求】
1.一种非暂态计算机可读介质,其包含有可在客户端计算设备中执行的程序,所述程序包括: 确定所述客户端计算设备是否通过本地网络可访问本地网络存储系统的代码,所述本地网络存储系统包括网络连接存储设备; 呈现被配置成促进远程网络存储系统中的文件存储的用户界面的代码; 获得由用户通过所述用户界面存储的所述文件的指示的代码,所述文件存储在所述客户端计算设备中; 在所述本地网络存储系统被确定为由所述客户端计算设备通过所述本地网络可访问时,通过所述网络连接存储设备的所述本地网络将所述文件发送到所述本地网络存储系统以由所述本地网络存储系统存储的代码; 在所述本地网络存储系统被确定为不可由所述客户端计算设备通过所述本地网络访问时,通过远程网络将所述文件发送到所述远程网络存储系统以由与用户账户相关联的基于元数据的文件系统中的所述远程网络存储系统存储的代码;以及 其中所述本地网络存储系统被配置成响应于所述文件由所述本地网络存储系统存储,通过所述远程网络将所述文件复制到与所述用户账户相关联的所述远程网络存储系统。
2.如权利要求1所述的非暂态计算机可读介质,其中确定本地网络存储系统是否由所述计算设备通过本地网络可访问的所述代码进一步包括执行所述客户端计算设备与所述本地网络存储系统之间的网络性能基准的代码。
3.一种系统,其包括: 计算设备;以及 可在所述计算设备中执行的存储管理应用,所述存储管理应用包括: 确定本地网络存储系统是否可由所述计算设备通过本地网络访问的逻辑; 在所述本地网络存储系统被确定为可由所述计算设备通过所述本地网络访问时,通过所述本地网络将文件发送到所述本地网络存储系统以由所述本地网络存储系统存储的逻辑;以及 在所述本地网络存储系统被确定为不可由所述计算设备通过所述本地网络访问时,通过远程网络将所述文件发送到远程网络存储系统以由与用户账户相关联的所述远程网络存储系统存储的逻辑。
4.如权利要求3所述的系统,其中所述存储管理应用进一步包括: 在所述本地网络存储系统被确定为可由所述计算设备通过所述本地网络访问时,通过所述本地网络将读取另一文件的请求发送到所述本地网络存储系统的逻辑;以及 在所述本地网络存储系统被确定为不可由所述计算设备通过所述本地网络访问时,通过所述远程网络将读取所述另一文件的请求发送到与所述用户账户相关联的所述远程网络存储系统的逻辑。
5.如权利要求4所述的系统,其中响应于读取所述另一文件的所述请求,所述本地网络存储系统被配置成: 在所述另一文件被缓存时,将所述另一文件从文件缓存传回到所述计算设备;以及在所述另一文件不 被缓存时,从与所述用户账户相关联的所述远程网络存储系统获得所述另一文件。
6.如权利要求5所述的系统,其中所述本地网络存储系统被配置成在从所述远程网络存储系统获得所述另一文件时,同时将所述另一文件传回到所述计算设备并且将所述另一文件存储在所述文件缓存中。
7.如权利要求4所述的系统,其中所述本地网络存储系统被配置成在从所述远程网络存储系统获得所述另一文件之后,将所述另一文件传回到所述计算设备。
8.如权利要求3所述的系统,其中所述本地网络存储系统包括网络连接存储设备。
9.如权利要求3所述的系统,其中所述本地网络存储系统被配置成响应于由所述本地网络存储系统存储所述文件,通过所述远程网络将所述文件复制到与所述用户账户相关联的所述远程网络存储系统。
10.如权利要求3所述的系统,其中将所述文件发送到所述本地网络存储系统的所述逻辑进一步包括: 在所述用户指示指定将所述文件复制到所述远程网络存储系统时,将所述本地网络存储系统配置成将所述文件复制到与所述用户账户相关联的所述远程网络存储系统的逻辑;以及 在所述用户指示指定没有将所述文件复制到所述远程网络存储系统时,将所述本地网络存储系统配置成不将所述文件复制到所述远程网络存储系统的逻辑。
11.一种方法,其包括以下步骤: 在计算设备中获得读取存储在与用户账户相关联的远程网络存储系统中的文件的请求,客户端计算设备通过本地网络获得所述请求; 在所述计算设备中确定是否将所述文件存储在本地缓存中; 当将所述文件存储在所述本地缓存中时,在所述计算设备中通过所述本地网络将所述文件发送到所述客户端计算设备; 当没有将所述文件存储在所述本地缓存中时,在所述计算设备中从所述远程网络存储系统获得所述文件,其中将所述用户账户的标识提供到所述远程网络存储系统;以及 在从所述远程网络存储系统获得所述文件时,在所述计算设备中将所述文件发送到所述客户端计算设备。
12.如权利要求11所述的方法,其中所述计算设备为被配置成在所述本地网络上保持在线的网络连接存储设备。
13.如权利要求11所述的方法,其进一步包括以下步骤: 在所述计算设备中获得关于由与所述用户账户相关联的所述远程网络存储系统存储的至少一个文件的元数据的查询,从所述客户端计算设备获得所述查询; 在所述计算设备中将所述查询发送到所述远程网络存储系统; 在所述计算设备中从所述远程网络文件系统获得所述查询的响应;以及 在所述计算设备中将所述查询的所述响应传回到所述客户端计算设备。
14.如权利要求11所述的方法,其进一步包括以下步骤: 在所述计算设备中通过所述本地网络从所述客户端计算设备获得存储在与所述用户账户相关联的所述远程网络存储系统中的另一文件; 在所述计算设备中将另一文件存储在所述本地缓存中;以及 在所述计算设备中通过所述远程网络将所述另一文件发送到所述远程网络存储系统以存储在与所述用户账户相关联的所述远程网络存储系统中,将所述用户账户的所述标识提供到所述远程网络存储系统。
15.如权利要求14所述的方法,其进一步包括以下步骤: 在所述计算设备中确定所述计算设备是否为所述另一文件授权; 在所述计算设备中通过所述本地网络将在所述计算设备为所述另一文件授权时成功存储所述另一文件的指示传回到所述客户端计算设备; 在所述计算设备中确定是否将所述另一文件成功存储在所述远程网络存储系统中;以及 在所述计算设备中通过所述本地网络将在所述计算设备不为所述另一文件授权时没有成功存储所述另一文件以及没有将所述另一文件成功存储在所述远程网络计算系统中的指示传回到所述客户端 计算设备。
【文档编号】G06F17/30GK103797484SQ201280029135
【公开日】2014年5月14日 申请日期:2012年6月7日 优先权日:2011年6月15日
【发明者】P.韦卢米伦, J.S.奥尔森, K.J.史密斯, J.H.伍德, C.G.埃默里, W.马 申请人:亚马逊科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1