用于向第三方应用端到端地暴露原生数据类型的导出的表示的系统和方法
【专利说明】用于向第三方应用端到端地暴露原生数据类型的导出的表示的系统和方法
[0001]有关串请的交叉引用
[0002]本申请要求对于2012年6月26日提交的第61/664,527号美国临时申请和于2013年3月15日提交的第13/833,479号美国非临时申请的权益,其二者通过引用而各自整体结合于此。
技术领域
[0003]一般而言,这一公开内容涉及基于web的存储系统、具体地涉及用于向第三方应用暴露原生数据类型的导出的表示的系统和方法。
【背景技术】
[0004]基于web的存储系统是允许用户存储和取回从一个或者多个用户设备可访问的数据的文件托管系统。这些存储系统可以使用云存储装置以存储用户数据。有时,基于web的存储系统存储可以使用原生应用而查看或者编辑的而标准第三方应用不可查看或者编辑的原生文件。因此,在web存储系统上的处于原生格式的文件的原始内容并不总是可由第三方应用访问。
【发明内容】
[0005]这里公开用于提供原生数据的导出的表示的系统和方法。一个方面涉及一种用于向应用导出文件的系统或方法。处理器从用户接收对于访问在基于web的存储系统上存储的文件的请求。该请求包括对用于打开文件的应用的指明,并且该文件与原生格式关联。处理器确定应用未被配置为导入处于原生格式的文件,并且确定文件是否能被转换成可由应用导入的可导入格式。处理器将文件从原生格式转换成可导入格式并且向应用导出所转换的、处于可导入格式的文件,该应用打开所转换的文件。
[0006]在一个实施例中,确定文件是否能被转换包括标识与文件关联的可导出格式,该可导出格式匹配与应用关联的可导入格式。标识步骤包括交叉引用与文件关联的可导出格式列表和与应用关联的可导入格式列表。可导出格式列表与第一方原生应用或者第三方原生应用关联。交叉引用包括标识在可导出格式列表和可导入格式列表二者中包括的一个或者多个格式。处理器在存在在可导出格式列表与可导入格式列表之间的多个匹配时接收指示期望的格式的用户输入。
[0007]在一个实施例中,处理器接收对于关联可导入格式与应用的应用请求。可选地,处理器基于关联请求来更新与应用关联的可导入格式列表。
[0008]在一个实施例中,导出步骤包括传输与所转换的文件对应的下载数据。
【附图说明】
[0009]本公开内容的以上和其它特征、包括它的性质和它的各种优点将在考虑与附图结合进行的以下具体描述时更为清楚,在附图中:
[0010]图1是根据说明性实施例的用于提供访问文件的表示的计算机化系统的框图。
[0011]图2是根据说明性实施例的在包括与原生文件有关的数据的原生数据库上存储的示例数据结构。
[0012]图3是根据说明性实施例的在包括与第三方应用有关的数据的第三方数据库上存储的示例数据结构。
[0013]图4是根据说明性实施例的由处理器用来导出原生文件的表示的方法的流程图。
[0014]图5是根据说明性实施例的由处理器用来确定是准许还是拒绝对于访问原生文件的表示的请求的方法的流程图。
[0015]图6是根据说明性实施例的由处理器用来转换和导出原生文件的表示的方法的流程图。
[0016]图7是根据说明性实施例的由处理器用来更新与第三方应用关联的文件格式列表的方法的流程图。
[0017]图8是根据说明性实施例的用于执行这里描述的过程中的任何过程的计算设备的框图。
【具体实施方式】
[0018]为了提供对这里描述的系统和方法的全面理解,现在将描述包括基于web的存储系统的某些说明性实施例。然而,本领域普通技术人员将理解可以如对于解决的应用而言适合的那样适配和修改这里描述的系统和方法并且可以在其它适当应用中运用这里描述的系统和方法而且这样的其它添加和修改不会脱离其范围。一般而言,这里描述的计算机化系统可以包括一个或者多个引擎,该一个或者多个引擎包括一个或者多个处理设备、比如计算机、微处理器、逻辑设备或者其它设备或者处理器,该一个或者多个处理设备用硬件、固件和软件被配置为实现这里描述的计算机化方法中的一种或者多种方法。
[0019]本公开内容提供用于向第三方应用提供访问基于web的存储系统上的文件内容的系统和方法。有时,第三方应用不能访问特殊地格式化的文件。这里公开的系统和方法将特殊地格式化的文件转换成第三方可以访问的表示。具体而言,本公开内容涉及一种存储原生文件并且将原生文件中的文件内容转换成用于第三方的可导出格式的基于web的存储系统。在可以通过网络与其它系统通信以存储和共享用户数据的基于web的存储系统方面描述这里公开的系统和方法。一般而言,本领域普通技术人员将理解这里描述的系统和方法适用于本地互连的系统而未脱离其范围。
[0020]图1描绘可以用来实施这里的系统和方法的网络和数据库结构的示例。图1是用于允许第三方应用访问在基于web的存储系统上存储的文件的表示的计算化系统100的框图。系统100包括基于web的存储系统101、用户设备114和第三方系统103。基于web的存储系统101包括服务器104、原生数据库106和元数据数据库109,该服务器包括处理器105。第三方系统103包括第三方数据库107、第三方服务器108和开发者设备112,该第三方服务器包括处理器110。如这里所用,术语“处理器”或者“计算设备”是指用硬件、固件和软件配置为执行这里描述的计算机化技术中的一种或者多种技术的一个或者多个计算机、微处理器、逻辑设备、服务器或者其它设备。处理器和处理设备也可以包括用于存储当前正在处理的输入、输出和数据的一个或者多个存储器设备。参照图8具体地描述可以用来实施这里描述的处理器和服务器中的任何处理器和服务器的示例计算设备800。如这里所用,“开发者设备”和“用户设备”包括而不限于一个或者多个输入设备(例如小键盘、触屏、轨迹球、语音识别系统等)和/或一个或者多个输出设备(例如可视显示器、扬声器、触觉显示器、打印设备等)的任何适当组合。如这里所用,“服务器”包括而不限于用硬件、固件和软件配置为实现这里描述的计算机化技术中的一种或者多种技术的一个或者多个设备的任何适当组合。在图1中仅示出一个基于web的存储系统101、一个用户设备114和一个第三方系统103以避免使附图变复杂。一般而言,系统100可以支持多个基于web的存储系统、第三方系统、服务器、数据库、开发者设备和用户设备。
[0021]基于web的存储系统101是允许用户经由一个或者多个用户设备、比如用户设备114存储、取回和修改数据的文件托管系统。这一数据可以称为用户的web数据。作为示例,基于web的存储系统101可以存储于单个服务器系统上或者分布式系统中。具体而言,基于web的存储系统101可以使用云存储装置来存储用户数据。
[0022]元数据数据库109存储若干类型的数据。具体而言,元数据数据库109存储与在基于web的存储系统101上或者在第三方系统103上存储的文件内容关联的元数据。元数据可以包括指向关联文件内容的快捷方式(shortcut)、引用或者指针。例如元数据可以包括指向数据库、比如原生数据库106或者第三方数据库107中的原有文件的指针。在示例中,元数据数据库109存储与在原生数据库106上存储的二进制文件内容关联的二进制文件。在另一示例中,元数据数据库109存储用于原生数据库106上的内部、第三方应用(即与基于web的存储系统关联的原生应用)的引用文件。在另一示例中,元数据数据库109例如存储用于在第三方数据库107上存储的第三方应用(即与第三方系统103关联)的引用文件。
[0023]原生数据库106存储可以使用原生应用而被查看或者编辑的原生文件。原生应用对应于基于web的存储系统101中的内部、第一方应用。作为示例,原生应用可以提供通过web浏览器在用户与原生文件之间的访问(即用于查看和/或编辑原生文档)。原生文件可以与文本文档、电子表格文档、演示文档、绘图文档或者任何其它适当文档有关。具体而言,原生数据库106存储处于适合用于基于web的存储系统101的特定格式的原生文件。适当格式可以是基于web的存储系统101特有的格式并且可以被称为“第一方原生”格式。
[0024]第三方系统103通过网络102与基于web的存储系统101通信以访问在原生数据库106上存储的原生文件的表示。如图1中描绘的那样,第三方系统103包括第三方数据库107、第三方服务器108和开发者设备112。第三方数据库107可以存储处于适合用于第三方系统103的特定格式的第三方原生文件。适合格式可以是第三方系统103特有的格式并且可以被称为“第三方”格式。
[0025]有时希望第三方应用访问原生文件的内容,从而第三方应用可以对文件内容操作。如果文件是第一方原生文件或者与分离第三方应用关联的第三方原生文件,则第三方应用可以不能直接地访问文件的原始内容。以下具体地描述在文件是第一方原生文件时的情况。然而,一般而言,本领域普通技术人员将理解这里描述的用于向第三方应用提供文件内容的导出的表示的系统和方法也可以应用于与一个或者多个其它第三方应用关联的第三方原生文件。
[0026]在文件是第一方原生文件时,第三方应用可以未被配置为直接地读取或者