2012文件服务器去重性能,具有用户不可知加密文件的服务器侧去重的云文件系统...

1.一种由客户端设备中的云存储客户端执行的用于将多个文件保存到云文件系统的方法,其中所述云文件系统至少部分存在于云存储系统中,所述方法包括以下步骤: 对于所述多个文件中的每一个,执行以下内容: 将该文件分成多个块, 对于所述多个块中的每一个,执行以下内容: 利用该块生成基于数据的加密密钥, 使用所生成的加密密钥来对该块进行加密, 基于加密块内的数据来生成块标识符, 将加密密钥和块标识符包括在文件清单中, 确定云存储系统是否包括加密块,以及 只要确定云存储系统不包含所述加密块就将所述加密块和块标识符传送到云存储系统, 其中所述文件清单包括对于所述多个块的加密密钥和对应块标识符的列表, 基于所述文件清单内的数据来生成文件清单加密密钥, 使用所述文件清单加密密钥来对所述文件清单进行加密, 基于加密文件清单内的数据来生成文件清单标识符, 将所述文件清单加密密钥和文件清单标识符包括在文件系统清单中, 确定云存储系统是否包括加密文件清单,以及 只要确定云存储系统不包括所述加密文件清单就将所述加密文件清单和文件清单标识符传送到云存储系统; 其中所述文件系统清单包括对于多个文件中的每一个的文件清单和多个文件的路径的列表; 对所述文件系统清单进行加密;以及 将加密文件系统清单传送到云存储系统。

2.根据权利要求1的方法,其中针对每个块生成的加密密钥基于对该块进行散列的结果。

3.根据权利要求1的方法,其中针对每个块的所生成的块标识符基于对加密块进行散列的结果。

4.根据权利要求1的方法,其中使用对客户端设备或客户端设备的用户来说唯一的加密密钥来对文件系统清单进行加密。

5.根据权利要求1的方法,还包括: 在将所述多个文件保存到所述云文件系统之后从客户端设备的本地存储系统移除那些文件。

6.根据权利要求1的方法,其中确定云存储系统是否包括加密块包括: 将请求指示与加密块相对应的块标识符是否存在于云存储系统中的信息的询问传送到云存储系统;以及 接收指示块标识符是否存在于云存储系统中的响应。

7.提供指令的至少一种非暂时性机器可读存储介质,如果所述指令由客户端设备的处理器执行则将促使所述处理器实行根据权利要求1-6中的任一项的方法。

8.—种被配置成将多个文件保存到云文件系统的客户端设备,所述客户端设备包括: 执行指令的处理器,以及 与所述处理器耦合的至少一个非暂时性机器可读存储介质,所述介质存储一个或多个指令,当所述一个或多个指令被执行时促使所述处理器实行根据权利要求1-6中的任一项的方法。

9.一种在客户端设备的云存储客户端中用于读取存储在云文件系统中的文件的方法,其中所述云文件系统至少部分存在于云存储系统中,该方法包括以下步骤: 从客户端设备的操作系统接收读取文件的指令,其中所述文件被存储在云文件系统中; 确定与所述文件相对应的文件清单标识符,其中所述文件清单标识符标识文件清单,该文件清单包括与所述文件的多个块相对应的多个块标识符和多个加密密钥的列表,其中确定与所述文件相对应的文件清单标识符包括访问文件系统清单,该文件系统清单包括存储在所述云文件系统中的文件的文件清单和这些文件的路径的列表; 响应于确定与所述文件清单标识符相对应的解密文件清单和与所述文件清单标识符相对应的加密文件清单不存在于用于所述云文件系统的客户端设备的本地缓存中,从所述云存储系统下载加密文件清单; 检索对加密文件清单进行解密所使用的密钥; 使用所检索的密钥对加密文件清单进行解密; 根据解密的文件清单来确定多个块标识符; 对于所述多个块标识符中的每一个,确定与该块标识符相对应的解密块或加密块是否存在于用于云文件系统的客户端设备的本地缓存中; 对于其中对应解密块或加密块不存在于用于所述云文件系统的客户端设备的本地缓存中的所述多个块标识符中的每一个,执行以下内容: 从所述云存储系统下载该加密块, 从解密文件清单检索使该加密块解密的密钥,以及 使用所检索的密钥来对加密块进行解密; 对于其中对应加密块存在于用于所述云文件系统的客户端设备的本地缓存中的所述多个块标识符中的每一个,执行以下内容: 从所述本地缓存检索加密块, 从解密文件清单检索对该加密块进行解密的密钥,以及 使用所检索的密钥对加密块进行解密; 对于其中解密块存在于用于所述云文件系统的客户端设备的本地缓存中的所述多个块标识符中的每一个,从所述本地缓存检索该解密块;以及将所请求的文件返回到所述云存储系统。

10.根据权利要求9的方法,还包括:将每个解密块存储在用于所述云文件系统的客户端设备的本地缓存中。

11.根据权利要求9的方法,其中从所述云存储系统下载每个加密块包括执行以下内容: 将与该加密块相对应的块标识符包括在下载队列中;访问解密文件清单以确定其对应块位于解密文件清单中的该加密块附近的一个或多个其他块标识符集合; 将其他块标识符集合包括在下载队列中;以及 根据下载队列从所述云存储系统下载加密块。

12.根据权利要求9的方法,还包括: 对于从所述云存储系统下载的加密块的每一个,从所述云存储系统下载一个或多个附加加密块集合。

13.根据权利要求12的方法,还包括: 对于从所述云存储系统下载的加密块的每一个,当访问加密块时使用指示将可能访问附加加密块集合的分析模型。

14.根据权利要求9的方法,还包括: 指示所述云存储系统将一个或多个块预取到云存储池。

15.提供指令的至少一种非暂时性机器可读存储介质,如果所述指令由客户端设备的处理器执行则将促使所述处理器实行根据权利要求9-14中的任一项的方法。

16.一种被配置 成读取存储在云文件系统中的文件的客户端设备,所述客户端设备包括: 执行指令的处理器,以及 与所述处理器耦合的至少一个非暂时性机器可读存储介质,所述介质存储一个或多个指令,当所述一个或多个指令被执行时促使所述处理器实行根据权利要求9-14中的任一项的方法。

17.—种由客户端设备中的云存储客户端执行的用于将多个文件保存到云文件系统的方法,其中所述云文件系统至少部分存在于云存储系统中,该方法包括以下步骤: 对于所述多个文件中的每一个,执行以下内容: 将该文件分成多个块, 对于所述多个块中的每一个,执行以下内容: 利用该块生成基于数据的加密密钥, 使用所生成的加密密钥来对该块进行加密, 基于加密块内的数据来生成块标识符, 将加密密钥和块标识符包括在文件清单中, 确定云存储系统是否包括加密块,以及 只要确定云存储系统不包含所述加密块就将所述加密块和块标识符传送到云存储系统, 其中所述文件清单包括对于所述多个块的加密密钥和对应块标识符的列表, 基于所述文件清单内的数据来生成文件清单加密密钥, 使用所述文件清单加密密钥来对所述文件清单进行加密, 基于加密文件清单内的数据来生成文件清单标识符, 将所述文件清单加密密钥和文件清单标识符包括在文件系统清单中, 确定云存储系统是否包括加密文件清单,以及 只要确定云存储系统不包括所述加密文件清单就将所述加密文件清单和文件清单标识符传送到云存储系统; 其中,所述文件系统清单包括文件清单的列表; 基于所述文件系统清单内的数据来生成文件系统清单加密密钥; 利用所生成的文件系统清单加密密钥对所述文件系统清单进行加密; 基于加密文件系统清单内的数据来生成文件系统清单标识符; 将所述文件系统清单密钥和文件系统清单标识符包括在与客户端设备的用户相关联的用户清单中,其中所述用户清单包括指示用户安装所述云文件系统的安装点的信息; 利用专用于用户的密钥对所述用户清单进行加密;以及 将加密的用户清单存储在云存储系统中。

18.根据权利要求17的方法,其中针对每个块生成的加密密钥基于对该块进行散列的结果。

19.根据权利要求17的方法,其中针对每个块的所生成的块标识符基于对加密块进行散列的结果。

20.根据权利要求17的方法,其中使用对客户端设备或客户端设备的用户来说唯一的加密密钥来对文件系统清单进行加密。

21.根据权利要求17的方法,还包括: 在将所述多个文件保存到所述云文件系统之后从客户端设备的本地存储系统移除那些文件。

22.根据权利要求17的方法,其中确定云存储系统是否包括加密块包括: 将请求指示与加密块相对应的块标识符是否存在于云存储系统中的信息的询问传送到云存储系统;以及 接收指示块标识符是否存在于云存储系统中的响应。

23.根据权利要求17的方法,其中所述用户清单还包括标识索引的信息。

24.提供指令的至少一种非暂时性机器可读存储介质,如果所述指令由客户端设备的处理器执行则将促使所述处理器实行根据权利要求17-23中的任一项的方法。

25.一种被配置成将多个文件保存到云文件系统的客户端设备,所述客户端设备包括: 执行指令的处理器,以及 与所述处理器耦合的至少一个非暂时性机器可读存储介质,所述介质存储一个或多个指令,当所述一个或多个指令被执行时促使所述处理器实行根据权利要求17-23中的任一项的方法。

26.一种在客户端设备的云存储客户端中用于向用户提供对云文件系统的访问的方法,其中所述云文件系统至少部分存在于云存储系统中,该方法包括: 检索加密文件系统清单和文件系统清单加密密钥,其中加密文件系统清单与已经由另一用户共享的文件系统清单相对应; 使用文件系统清单加密密钥对文件系统清单进行解密,其中解密文件系统清单包括一个或多个加密文件清单集合以及一个或多个文件清单密钥集合的列表; 使用文件清单密钥集合对加密文件清单集合进行解密,其中每个解密文件清单包括文件的加密密钥集合以及对应的块标识符集合,其中以用户不可知方式对文件加密以允许跨越云存储系统处的多个用户加密文件块被去重;以及将解密文件系统清单添加到用户的用户清单。

27.根据权利要求26的方法,还包括: 利用专用于用户的密钥对用户清单进行加密;以及 将加密用户清单传送到云存储系统。

28.根据权利要求26的方法,其中解密文件系统清单与为该文件系统清单指示安装点的元数据相关联。

29.根据权利要求28的方法,其中将解密文件系统清单添加到用户的用户清单包括: 响应于确定该数据当前存在于所指示的安装点的位置处,将解密文件系统清单安装到不同位置。

30.根据权利要求29的方法,其中由云存储客户端自动选择不同位置。

31.根据权利要求29的方法,其中由客户端设备的用户选择不同位置。

32.根据权利要求26的方法,其中文件系统清单密钥对云存储系统来说是通用唯一标识符。

33.根据权利要求26的方法,其中由所述另一用户提供文件系统清单密钥,并且其中从所述另一用户接收文件系统清单密钥。

34.提供指令的至少一种非暂时性机器可读存储介质,如果所述指令由客户端设备的处理器执行则将促使所述处理器实行根据权利要求26-33中的任一项的方法。

35.一种被配置成向用户提供对云文件系统的访问的客户端设备,所述客户端设备包括: 执行指令的处理器,以及 与所述处理器耦合的至少一个非暂时性机器可读存储介质,所述介质存储一个或多个指令,当所述一个或多个指令被执行时促使所述处理器实行根据权利要求26-33中的任一项的方法。

36.一种用于使用客户端设备上的云文件系统(CFS)的方法,其中所述CFS至少部分存在于远离客户端设备的云存储系统中,该方法包括: 在客户端设备的本地存储系统中分配用于存储数据以充当CFS的本地缓存的空间, 在执行于客户端设备中的文件浏览器界面中,接收将存储在本地文件系统中的文件夹以及其下方的多个文件转换成CFS的指示,其中所述文件夹以及多个文件被存储在本地存储系统中,并且其中在本地文件系统中的位置处标识所述文件夹, 将包括所述多个文件的文件夹从本地存储系统中的存储转换成CFS的云存储系统中的存储,其中使用以用户不可知方式加密的多个加密文件块将所述多个文件存储在云存储系统中,以允许跨越云存储系统处的多个用户加密文件块被去重, 将所述多个加密文件块中的一个或多个传送到云存储系统,其中所述多个加密文件块中的一个或多个是不存在于云存储系统中的多个加密文件块中的那些, 将文件系统清单存储在CFS的本地缓存中,其中所述文件系统清单标识所述文件夹和多个文件, 将所述文件夹的表示保持在本地文件系统的位置处,以使得能够通过先前可访问所述多个文件中的每一个的逻辑路径来访问该文件,从本地文件系统的位置移除所述多个文件,以及 将对所述文件夹的访问指引到在客户端设备上执行的CFS客户端模块以便提供经由先前可访问所述多个文件中的每一个的逻辑路径对现在位于云存储系统中的该文件的访问。

37.根据权利要求36的方法,还包括: 将多个文件块中的一个或多个缓存到CFS的本地缓存中; 响应于接收到访问多个文件块之一的请求,执行以下内容: 如果该文件块没有被缓存到CFS的本地缓存中则从云存储系统检索该文件块,以及 从云存储系统预测性地检索不在CFS的本地缓存中的多个文件块中的其他一些。

38.根据权利要求37的方法,其中从云存储系统预测性地检索多个文件块中的其他一些的步骤包括:访问文件系统清单以确定哪些块位于所请求的块附近以及从云存储系统请求那些块中的至少一些。

39.根据权利要求37的方法,其中从云存储系统预测性地检索多个文件块中的其他一些的步骤包括:当所请求的块被访问时使用指示将可能访问的一个或多个块集合的分析模型,以及从云存储系统请求那些块集合中的至少一些。

40.根据权利要求37的方法,还包括: 将标识所述多个块中的其他一些的预取命令传达给云存储系统。

41.根据权利要求37的方法,还包括: 接收对存储在云存储系统中的文件夹中可用的空间量的请求;以及 生成作为存储在云存储系统中的文件夹中可用的空间量而呈现给用户的值,所述值大于本地存储系统上可用的量。

42.根据权利要求41的方法,其中所述值是该操作系统所支持的用于存储的最大值。

43.根据权利要求37的方法,还包括: 向客户端设备的用户提供用于设置充当CFS中的本地缓存的空间量的界面;以及 经由用于设置充当CFS中的本地缓存的空间量的界面,接收充当CFS中的本地缓存的空间量的指示。

44.根据权利要求37的方法,还包括: 提供用于将文件夹转换到CFS的界面,其允许用户拖动和放弃文件夹以指示它要被转换到CFS。

45.根据权利要求37的方法,其中经由与所述文件夹相关联的上下文菜单中的选择来接收文件夹的指示。

46.提供指令的至少一种非暂时性机器可读存储介质,如果所述指令由客户端设备的处理器执行则将促使所述处理器实行根据权利要求36-45中的任一项的方法。

47.一种被配置成使用云文件系统的客户端设备,所述客户端设备包括: 执行指令的处理器,以及 与所述处理器耦合的至少一个非暂时性机器可读存储介质,所述介质存储一个或多个指令,当所述一个或多个指令被执行时促使所述处理器实行根据权利要求36-45中的任一项的方法。

48.—种包括云存储网关和一个或多个云存储池集合的云存储系统中的方法,所述云存储系统提供用于多个客户端设备的云文件系统的至少一部分,该方法包括: 以用户不可知去重方式存储多个加密文件块和多个文件块标识符,其中以用户不可知方式对所述加密文件块中的每一个去重以使得通过相同的文件块标识符来识别相同的未加密文件块的存在; 通过传送在来自多个客户端设备中的一个的检索请求中标识的多个加密文件块中的一个或多个,来对所述检索请求做出响应;以及 通过至少临时地将加密文件块存储在云存储网关处的云文件系统的远程缓存中来对来自多个客户端设备中的一个的预取命令做出响应,其中云存储网关比云存储池集合更靠近于多个客户端设备中的一个。

49.根据权利要求48的方法,其中云存储池集合包括在地理上分布的多个云存储池,并且其中云存储网关通过将包括区域的指示的检索请求指引到与该地理区域相对应的云存储池中的一个来对所述检索请求做出响应。

50.根据权利要求48的方法,还包括: 提供网络文件访问门户以便允许用户访问存储在云存储系统中的多个文件中的一个或多个; 经由网络文件访问门户接收用户的加密信息; 利用用户的加密信息来访问用户的云文件系统; 经由网络文件访问门户呈现用户的云文件系统中可用的文件的列表; 经由网络文件访问门户从用户接收对访问文件列表中的文件的请求; 生成文件的解密副本,以及 将文件的解密副本传送给用户。

51.根据权利要求50的方法,其中网络文件访问门户通过执行以下内容来生成文件的解密副本: 检索与构成该文件的一个或多个加密文件块集合相对应的一个或多个加密文件块标识符集合; 检索与一个或多个加密文件块集合相对应的一个或多个加密密钥集合; 检索一个或多个加密文件块集合;以及 利用一个或多个加密密钥中的对应一个对一个或多个加密文件块集合中的每一个进行解密。

52.提供指令的至少一种非暂时性机器可读存储介质,如果所述指令由处理器执行则将促使所述处理器实行根据权利要求48-51中的任一项的方法。

53.一种提供对存储在作为多个云文件系统(CFS)的一部分的云存储系统中的多个文件的访问的云存储系统,其中云存储系统包括: 云存储网关,其被配置成执行以下内容: 接收与CFS相对应的数据以存储在云存储系统中, 通过至少临时地将一个或多个加密文件块存储在云存储网关的远程缓存中以减小向对预取命令中标识的那些加密文件块的检索请求做出响应的等待时间来对来自客户端设备的预取命令做出响应,以及 通过传送来自客户端设备的每个检索请求中标识的一个或多个加密文件块来对所述检索请求做出响应;以及 云存储池,其被配置成存储多个加密文件块和对应的多个块标识符,其中每个加密文件块包括存储在云存储系统中的多个文件的一个或多个的至少一部分,其中以用户不可知方式对所述多个加密文件块中的每一个去重以使得通过相同的文件块标识符来识别相同的未加密文件块的存在,并且其中所述云存储池还被配置成检索多个加密文件块中的每一个并且将多个加密文件块中的每一个传送到云存储网关。

54.根据权利要求53的云存储系统,还包括: 其中所述云存储网关还被配置成通过接收每一个都与CFS相对应的一个或多个文件系统清单来接收与CFS相对应的存储在云存储系统中的数据,其中文件系统清单包括CFS中的多个文件连同标识对于多个文件中的每一个的文件清单的信息的列表; 其中所述云存储网关还被配置成接收每一个都与多个文件中的文件相对应且每一个都包括标识构成对应文件的一个或多个加密文件块集合的信息连同用于解密对应文件的加密信息的一个或多个文件清单,其中云存储网关还被配置成接收与多个文件中的一个或多个相对应的多个加密文件块。

55.根据权利要求53的云存储系统,还包括: 网络文件访问门户,其被配置成向用户提供用于通过以下内容来访问存储在云存储系统中的多个文件中的一个或多个的界面:检索用户的加密信息,利用用户的加密信息来访问用户的云文件系统,呈现用户的云文件系统中可用的文件的列表,从用户接收访问该文件的列表中的文件的请求,生成该文件的解密副本,以及向用户呈现该文件的解密副本。

56.根据权利要求55的云存储系统,其中所述网络文件访问门户还被配置成通过以下内容来生成文件的解密副本:检索与构成该文件的一个或多个加密文件块集合相对应的一个或多个加密文件块标识符集合,检索与一个或多个加密文件块集合相对应的一个或多个加密密钥集合,检索一个或多个加密文件块集合,以及利用一个或多个加密密钥中的对应一个对一个或多个加密文件块集合中的每一个进行解密。

57.一种用于内容供应商将内容分发给作为云存储系统的用户的订户的方法,其中云存储系统经由广域网耦合到充当云存储系统的客户端设备的多个计算设备,所述方法包括: 通过内容供应商的计算设备为每一个订户生成包含其内容的云文件系统(CFS),其中所述云存储系统充当云文件系统(CFS)的数据的主要存储装置,其中多个计算设备中的每一个被配置成运行云文件系统(CFS)模块,其管理该客户端设备所利用的CFS的本地缓存,其中使用用户不可知加密来对CFS的文件进行加密以使得具有由不同用户加密的同一数据的两个文件将产生具有相同的加密数据的文件,其中所述用户不可知文件加密需要CFS: 对于去到CFS的每个文件执行以下内容: 将文件分成块: 根据来自该块内的数据来生成对于每个块的加密密钥, 利用其相应的加密密钥来对每个块进行加密, 为每个块生成块标识符,以及 为每个文件生 成文件清单,其中每个文件的文件清单包括对于文件的加密块中的每一个的解密密钥和块标识符, 根据该文件清单内的数据为每个文件清单生成加密密钥, 为每个文件清单生成文件清单标识符, 利用为文件清单生成的加密密钥对文件清单进行加密; 上传已经不存储在云存储系统中的加密文件清单和加密块中的任一个; 生成具有为文件清单生成的加密密钥和文件清单标识符的文件系统清单;以及 利用加密密钥对文件系统清单进行加密;以及 与相应用户共享CFS。

58.根据权利要求57的方法,其中由内容供应商生成的CFS中的每一个都包含同一内容,并且内容供应商仅将内容上传到云存储系统一次。

59.根据权利要求57的方法,其中共享包括向每个用户传送他们的加密文件系统清单中的相应一个和用于对该文件系统清单进行加密的加密密钥。

60.根据权利要求57的方法,其中所述共享包括: 将加密文件系统清单上传到云存储系统;以及 与每个用户共享他们的 加密文件系统清单的标识符中的相应一个和用于对该文件系统清单加密的加密密钥。

61.提供指令的至少一种非暂时性机器可读存储介质,如果所述指令由云存储系统的处理器执行则将促使所述处理器实行根据权利要求57-60中的任一项的方法。

62.—种云存储系统包括: 执行指令的处理器,以及 与所述处理器耦合的至少一个非暂时性机器可读存储介质,所述介质存储一个或多个指令,当所述一个或多个指令被执行时促使所述处理器实行根据权利要求57-60中的任一项的方法。

63.一种经由广域网耦合到充当云存储系统的客户端设备的多个计算设备的云存储系统,所述多个计算设备中的每一个被配置成运行云文件系统(CFS)模块,其管理该客户端设备所利用的CFS的本地缓存,其中所述云存储系统充当云文件系统(CFS)的数据的主要存储装置,其中所述云存储系统包括: 云存储池,其存储:由内容供应商生成的CFS以便通过生成包含其内容的CFS并且与相应订户共享CFS来向订户分发内容;对于每一个CFS的以下内容: 加密文件系统清单; 多个加密文件清单;以及 多个加密文件块,其中加密文件系统清单标识多个文件清单中的每一个,并且文件清单中的每一个表示CFS的一个文件并且标识加密文件块FSM中的包括该文件的那些,其中由CFS模块利用用户不可知加密对多个加密文件清单和加密文件块进行加密,其中用户不可知加密需要根据要被加密的数据而生成的加密密钥、由所生成的密钥加密的该数据、以及针对该数据而生成的标识符;以及 云存储网关,其被耦合到广域网和云存储池以便将来自客户端设备的请求转换成针对云存储池的云存储系统应用程序编程接口(“API”)调用。

64.根据权利要求63的云存储系统,其中所述云存储网关被配置成对来自CFS模块的预取命令做出响应,所述CFS模块指示云存储网关将所述预取命令标识的加密文件块从云存储池移动到云存储网关中的远程缓存中。

65.根据权利要求63或64的云存储系统,其中由内容供应商生成的CFS中的每一个都包含同一内容并且该 内容仅上传一次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值