一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

文件共享方法及终端设备与流程

2021-11-20 04:50:00 来源:中国专利 TAG:


1.本技术实施例涉及终端技术领域,尤其涉及文件共享方法及终端设备。


背景技术:

2.部署在终端设备中的应用程序(application,app)访问存储在该终端设备中的本地文件之前,该应用程序可以请求该终端设备的系统内核打开(open)本地文件,获得由系统内核向该应用程序返回的文件描述符(file descriptor,fd)。此外,系统内核可以创建本地文件的文件结构体,并且在该应用程序对应的文件描述符表中,维护文件描述符与文件结构体之间的映射关系;其中本地文件的文件结构体可以代表处于打开状态的本地文件。在该应用程序访问本地文件的过程中,比如读(read)/写(write)本地文件的过程中,该应用程序可以向系统内核提供相应的文件描述符;系统内核可以根据该文件描述符以及该应用程序对应的文件描述符表,查找到相应的文件结构体,即查找到处于打开状态的本地文件,进而根据查找的文件结构体对相应的本地文件执行访问操作,完成该应用程序对本地文件的访问。
3.由于不同的终端设备各自具有其自身的系统内核和存储器,部署在一个终端设备中的应用程序,并不能直接访问存储在另一个终端设备中的本地文件。


技术实现要素:

4.本技术实施例中提供了一种文件共享方法及终端设备,第二应用程序可以访问第一应用程序向其共享的目标文件,其中第一应用程序部署在第一终端设备中,第二应用程序部署在第二终端设备中,目标文件为第一终端设备中存储的本地文件。
5.第一方面,本技术实施例中提供了一种文件共享方法,应用于第一终端设备,该第一终端设备部署了第一分布式文件服务。该方法包括:首先打开目标文件,该目标文件是存储于第一终端设备并且待共享给第二终端设备的本地文件,第一终端设备和第二终端设备属于同一个分布式文件系统。接着在分布式文件系统中创建目标文件对应的映射文件的元数据,映射文件的元数据包括映射文件的文件标识和索引标识。接着为第一分布式文件服务生成用于访问处于打开状态的目标文件的第一文件描述符,以及建立第一文件描述符和索引标识的关联关系。接着向第二终端设备发送包含该文件标识的文件共享信息。
6.第二方面,本技术实施例中提供了一种对应于第一方面的文件共享方法,应用于第二终端设备,该第二终端设备部署了第二分布式文件服务。该方法包括:接收来自第一终端设备的文件共享信息,第一终端设备和第二终端设备属于同一个分布式文件系统,文件共享信息包括分布式文件系统中与目标文件相对应的映射文件的文件标识,目标文件是存储于第一终端设备并且待共享给第二终端设备的本地文件。接着,根据文件标识打开映射文件。接着为第二应用程序生成用于访问处于打开状态的映射文件的第二文件描述符,并且向第二应用程序提供第二文件描述符。
7.结合第一方面和第二方面,当用户期望使用第二应用程序访问目标文件时,第二
分布式文件服务可以首先接收第二应用程序对处于打开状态的映射文件的第二文件访问请求,第二文件访问请求包括请求参数和第二文件描述符;然后向第一终端设备发送第一文件访问请求,第一文件访问请求包括请求参数和映射文件的索引标识,索引标识是根据文件标识从映射文件的元数据中获取的。第一分布式文件服务可以对应的接收到来自第二终端的第一文件访问请求,然后根据索引标识查询第一终端设备中建立的关联关系,确定出用于访问储于打开状态的目标文件的第一文件描述符,并且根据请求参数和第一文件描述符访问处于打开状态的目标文件。如此,第二应用程序通过对储于打开状态的映射文件进行访问,即可完成对第一终端设备中存储的目标文件进行跨设备的访问。
8.第三方面,本技术实施例中提供了一种文件共享方法,应用于第一终端设备,该第一终端设备部署了第一分布式文件服务。该方法包括:首先打开目标文件,该目标文件是存储于第一终端设备并且待共享给第二终端设备的本地文件,第一终端设备和第二终端设备属于同一个分布式文件系统。接着生成临时标识并且建立临时标识和处于打开状态的目标文件的关联关系。接着向第二终端设备发送包含该临时标识的文件共享信息。
9.第四方面,本技术实施例中提供了一种对应于第三方面的文件共享方法,应用于第二终端设备,该第二终端设备部署了第二分布式文件服务。该方法包括:首先接收来自第一终端设备的文件共享信息,该第一终端设备和第二终端设备属于同一个分布式文件系统,文件共享信息包括临时标识,第一终端设备中建立了临时标识和处于打开状态的目标文件的关联关系,目标文件是存储于第一终端设备并且待共享给第二终端设备的本地文件。接着在第二终端设备中创建处于打开状态的临时文件。接着为第二应用程序生成用于访问处于打开状态的临时文件的第二文件描述符,并且向第二应用程序提供第二文件描述符和临时标识。
10.结合第一方面和第二方面,当用户期望使用第二应用程序访问目标文件时,第二分布式文件服务可以首先接收第二应用程序对处于打开状态的临时文件的第二文件访问请求,第二文件访问请求包括第二文件描述符、临时标识和请求参数;然后向第一终端设备发送第一文件访问请求,其中第一文件访问请求包括请求参数和临时标识。第一分布式文件服务可以对应的接收来自第二终端设备的第一文件访问请求;然后根据临时标识查询关联关系以确定出处于打开状态的目标文件,并且根据请求参数访问处于打开状态的目标文件。如此,第二应用程序通过对处于打开状态的临时文件进行访问,即可完成对第一终端设备中存储的目标文件进行跨设备的访问。
11.第五方面,提供了一种文件共享装置,应用于第一终端设备,该第一终端设备部署了第一分布式文件服务。该装置包括:本地文件管理单元,用于打开目标文件;其中,目标文件是存储于第一终端设备并且待共享给第二终端设备的本地文件,第一终端设备和第二终端设备属于同一个分布式文件系统。分布式文件管理单元,用于在分布式文件系统中,创建目标文件对应的映射文件的元数据;其中,映射文件的元数据包括映射文件的文件标识和索引标识。文件描述符传递单元,用于为第一分布式文件服务,生成用于访问处于打开状态的目标文件的第一文件描述符,以及建立第一文件描述符和索引标识的关联关系。数据发送单元,用于向第二终端设备发送文件共享信息;其中,文件共享信息包括文件标识。其中,第一分布式文件服务,用于接收来自第二终端的第一文件访问请求,第一文件访问请求包括请求参数和索引标识;根据索引标识查询关联关系,确定出第一文件描述符;根据请求参
数和第一文件描述符访问处于打开状态的目标文件。
12.第六方面,本技术实施例中提供了一种对应于第五方面的文件共享装置,应用于第二终端设备,第二终端设备中部署了第二分布式文件服务。该装置包括:数据收发单元,用于接收来自第一终端设备的文件共享信息;其中,第一终端设备和第二终端设备属于同一个分布式文件系统,文件共享信息包括分布式文件系统中与目标文件相对应的映射文件的文件标识,目标文件是存储于第一终端设备并且待共享给第二终端设备的本地文件。文件管理单元,根据文件标识打开映射文件。文件描述符传递单元,用于为第二应用程序生成用于访问处于打开状态的映射文件的第二文件描述符,以及向第二应用程序提供第二文件描述符。其中,第二分布式文件服务,用于接收第二应用程序对处于打开状态的映射文件的第二文件访问请求,第二文件访问请求包括请求参数和第二文件描述符;向第一终端设备发送第一文件访问请求,第一文件访问请求包括请求参数和映射文件的索引标识,索引标识是根据文件标识从映射文件的元数据中获取的。
13.第七方面,提供了一种文件共享装置,应用于第一终端设备,该第一终端设备部署了第一分布式文件服务。该装置包括:本地文件管理单元,用于打开目标文件;其中,目标文件是存储于第一终端设备并且待共享给第二终端设备的本地文件,第一终端设备和第二终端设备属于同一个分布式文件系统。关联关系管理单元,用于生成临时标识,以及建立临时标识和处于打开状态的目标文件的关联关系。数据收发单元,用于向第二终端设备发送文件共享信息;其中,文件共享信息包括临时标识。其中,第一分布式文件服务,用于接收来自第二终端设备的第一文件访问请求,第一文件访问请求包括请求参数和临时标识;根据临时标识查询关联关系,确定出处于打开状态的目标文件;根据请求参数访问处于打开状态的目标文件。
14.第八方面,本技术实施例中提供了一种对应于第七方面的文件共享装置,应用于第二终端设备,该第二终端设备中部署了第二分布式文件服务。该装置包括:数据收发单元,用于接收来自第一终端设备的文件共享信息;其中,第一终端设备和第二终端设备属于同一个分布式文件系统,文件共享信息包括临时标识,第一终端设备中建立了临时标识和处于打开状态的目标文件的关联关系,目标文件是存储于第一终端设备并且待共享给第二终端设备的本地文件。文件管理单元,用于在第二终端设备中创建处于打开状态的临时文件。文件描述符传递单元,用于为第二应用程序生成用于访问处于打开状态的临时文件的第二文件描述符,以及向第二应用程序提供第二文件描述符和临时标识。其中,第二分布式文件服务,用于接收第二应用程序对处于打开状态的临时文件的第二文件访问请求,第二文件访问请求包括第二文件描述符、临时标识和请求参数;向第一终端设备发送第一文件访问请求,其中第一文件访问请求包括请求参数和临时标识。
15.第九方面,提供了一种终端设备,包括存储器和处理器,所述存储器中存储有计算机程序指令/代码,所述处理器执行所述计算机程序指令/代码时,实现第一方面至第四方面中任一项所述的方法。
16.第十方面,提供了一种计算机可读存储介质,用于存储计算机程序指令/代码,当所述计算机程序指令/代码被终端设备的处理器执行时,使得所述终端设备实现第一方面至第四方面中任一项所述的方法。
17.第十一方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序
指令/代码,当所述计算机程序指令/代码在计算机上运行时,使得计算机执行上述第一方面至第四方面中任一项所述的方法。
18.以上各个方面中,第一分布式文件服务可以向第二终端设备发送元数据同步消息,该元数据同步消息包括映射文件的元数据。
19.以上各个方面中,第一终端设备还可以向第二终端设备发送文件共享请求,该文件共享请求包括目标文件的全局标识,全局标识是目标文件在所述第一终端设备中的唯一标识。第二终端设备可以向第二应用程序提供该文件共享请求,并且响应于用户通过第二应用程序对全局标识的触发操作,向第二终端设备发送包含该全局标识的文件共享响应。相应的,第一终端设备可以响应于来自第二终端设备的文件共享响应,打开目标文件。如此,使用户可以根据其自身的业务需求,通过第二应用程序按需访问目标文件。
20.以上各个方面中,文件共享请求还可以包括第一应用程序的第一应用标识,第一应用程序部署在第一终端设备中并且具有访问目标文件的权限,第一应用标识是第一应用程序在第一终端设备中的唯一标识。相应的,由第二终端设备发送的文件共享响应还可以包括第一应用标识。于是,第一终端设备可以响应于来自第二终端设备并且包括全局标识和第一应用标识的文件共享响应,通过第一应用程序打开目标文件。换而言之,通过对目标文件具有访问权限的第一应用程序来打开目标文件,确保第二应用程序能够在后续过程中对处于打开状态的目标文件进行访问。
21.以上各个方面中,目标文件的全局标识包括目标文件的统一资源定位符uri。其中目标文件的uri具体可以包括文件信息字段,文件信息字段是目标文件的存储路径或者对应于存储路径的映射字符串。
22.以上各个方面中,目标文件的uri还可以包括设备信息字段,设备信息字段是第一终端设备的设备标识或者对应于设备标识的映射字符串。
23.以上各个方面中,目标文件的uri还包括:应用信息字段,应用信息字段具体包括第一应用程序的第一应用标识或者对应于第一应用标识的映射字符串。
24.以上各个方面中,文件共享请求还包括第二应用程序的第二应用标识;其中,第二应用程序部署在第二终端设备中,第二应用标识是第二应用程序在第二终端设备中的唯一标识。
附图说明
25.下面对实施例或现有技术描述中所需使用的附图作简单地介绍。
26.图1为本技术实施例中提供的不同终端设备共享目标文件的示意图之一;
27.图2为本技术实施例中提供的不同终端设备共享目标文件的示意图之二;
28.图3为本技术实施例中提供的一种文件共享方法的流程图;
29.图4a为本技术实施例中由终端设备显示的示例性的图形用于界面之一;
30.图4b为本技术实施例中由终端设备显示的示例性的图形用于界面之二;
31.图4c为本技术实施例中由终端设备显示的示例性的图形用于界面之三;
32.图5为本技术实施例中提供的另一种文件共享方法的流程图;
33.图6为本技术实施例中提供的一种文件共享装置的示意图之一;
34.图7为本技术实施例中提供的一种文件共享装置的示意图之二;
35.图8为本技术实施例中提供的一种文件共享装置的示意图之三;
36.图9为本技术实施例中提供的一种文件共享装置的示意图之四;
37.图10为本技术实施例中提供的一种终端设备的结构示意图。
具体实施方式
38.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
39.本技术实施例中,术语“和/或”仅仅用于描述关联对象的关联关系,表示可以存在三种关系;比如“a和/或b”可以表示:单独存在a,单独存在b,同时存在a和b这三种情况。术语“多个”的含义是指两个或两个以上,“若干”是指一个或多个,除非另有说明。术语“包括”、“包含”、“具有”及其变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征;由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者多个该特征。
40.本技术实施例中,“示例性的”、“比如”或者“举例来说”等词语用于表示作例子、例证或说明,旨在以具体方式呈现相关概念。被描述为“示例性的”、“比如”或者“举例来说”的任何实施例或设计方案,不应被解释为比其它实施例或设计方案更优选或更具优势。
41.本技术实施例中,终端设备可以是手机、电视、音响、可穿戴设备、平板电脑、个人数字助理(personal digital assistant,pda)、膝上型计算机(laptop)、移动电脑、增强现实(augmented reality,ar)设备、虚拟现实(virtual reality,vr)设备、人工智能(artificialintelligence,ai)设备等。
42.就硬件结构而言,终端设备至少可以包括存储器和处理器。还可以包括显示屏、摄像头、通信接口、传感器等用于支持终端设备实现与外界进行信息交互的模块/单元。
43.就软件结构而言,终端设备的软件系统可以采用分层架构、事件驱动架构、微核架构或云架构等。以终端设备采用分层架构的软件系统为例,通常可以将分层架构的软件系统划分为四层,从上至下依次为应用程序层、应用程序框架层、系统库和安卓运行时(android runtime)、内核层,每一层都有清晰的角色和分工,层与层之间通过软件接口进行通信。
44.应用程序层包括部署在终端设备中的应用程序。示例性的,应用程序层包括但不限于桌面启动器(launcher)、文件管理器、文件编辑器等。
45.应用程序框架层可以为应用程序提供应用编程接口(application programming interface,api)和编程框架,还可以包括一些预先定义的功能模块/服务。
46.系统库和安卓运行时、内核层等可称为底层系统,底层系统中包括用于提供显示及文件管理服务的功能模块和硬件驱动,例如包括位于系统库的表面管理器(surface manager)以及位于内核层的显示驱动等。
47.运行时负责整个软件系统的调度和管理,包括核心库和虚拟机。应用程序层和应用程序框架层的计算机程序运行在虚拟机中。具体地说,虚拟机可以将应用程序层和应用程序框架层的java文件执行为二进制文件。
48.系统库还可以包括除表面管理器以外的多个功能模块。比如包括状态监测服务、媒体库(media libraries)、三维图形引擎(比如,opengl for embedded systems)和二维
图形引擎等。
49.内核层是硬件和软件之间的层,包括若干硬件的驱动程序,提供了进程管理、文件管理、系统安全权限管理以及系统与硬件设备通讯基础。示例性的,内核层可以包括显示驱动、摄像头驱动、音频驱动、触控驱动以及若干本地文件系统。
50.本地文件系统用于对终端设备的存储资源进行组织和分配,管理存储器中存储的本地文件。举例来说,本地文件系统可以负责创建、读取和修改本地文件。此外,本地文件系统可以包括但不限于ext2、ext3、ext4或fuse等linux文件系统。
51.本技术实施例中提供的技术方案,适用于如下业务场景:第一应用程序向第二应用程序共享目标文件,第一应用程序部署在第一终端设备中,第二应用程序部署在第二终端设备中,目标文件为第一终端设备中存储的本地文件或者分布式文件。
52.通常的,不同的终端设备各自具有其自身的系统内核和存储器。部署在第二终端设备中的第二应用程序并不能直接访问第一终端设备中存储的本地文件。如图1所示,第一应用程序(应用程序2011)请求将本地文件系统2021中的目标文件(本地文件2031)共享给第二应用程序(应用程序2012)时,需要由第一终端设备(终端设备101),将本地文件2031的文件内容发送至第二终端设备(终端设备102)。终端设备102在其本地文件系统2022中,创建并存储包含该文件内容的本地文件2032;应用程序2012可以访问本地文件2032。
53.本技术实施例中提供的技术方案,旨在实现对目标文件进行跨设备的直接访问。
54.图2为本技术实施例中提供的不同终端设备共享目标文件的示意图。如图2所示,分布式文件系统10包括终端设备101和终端设备102。终端设备101中部署分布式文件服务2041,终端设备102中部署分布式文件服务2042。其中,分布式文件服务可以位于终端设备的软件系统的应用程序层或者内核层。
55.分布式文件系统10中,各分布式文件的元数据可以存储在终端设备上,不同终端设备之间按需同步或者按时同步各分布式文件的元数据。或者,分布式文件系统10还包括主控服务器(master server)/名称节点(name node),各分布式文件的元数据存储在主控服务器中,终端设备从主控服务器/名称节点按需获取或者按时获取分布式文件的元数据。
56.分布式文件系统10可以包括pvfs(parallel virtual file system)、lustre文件系统、panfs(panasas file system)、googlefs(google file system),或者其它各种类型的中心化或者去中心化的分布式文件系统,或者是对前述各示例性的分布式文件系统进行的改进。
57.终端设备101中还可以部署文件共享装置61,终端设备102中还可以部署文件共享装置62,使终端设备101和终端设备102能够根据其各自部署的分布式文件服务,进行相互协作以支持应用程序2012跨设备的访问本地文件2031。
58.基于如图2所示的系统框架,本技术实施例中提供了一种文件共享方法。如图3所述,该方法可以包括但不限于如图3中所示的部分或全部步骤。
59.步骤301,终端设备101获取终端设备102的配置信息。
60.终端设备101可以从终端设备102接收终端设备102的配置信息。类似的,终端设备101可以将其自身的配置信息,发送至分布式文件系统10中的其它终端设备。
61.终端设备102的配置信息,至少包括终端设备102的设备标识。其中,终端设备102的设备标识具体可以是,终端设备102的网际互连协议(internet protocol,ip)地址或者
媒体接入控制地址(media access control address,mac)。
62.在一些实施例中,终端设备102的配置信息还可以包括:终端设备102中部署的若干应用程序各自的应用标识。其中,应用程序的应用标识具体可以是,应用程序的安装包的名称或者分配给应用程序的唯一标识。此外,对于终端设备102中部署的任一应用程序,如果该应用程序具有访问分布式文件的权限,即具有调用分布式文件服务2042的权限,则终端设备102的配置信息中包括该应用程序的应用标识。
63.步骤3021,终端设备101将本地文件2031确定为待共享的目标文件。
64.步骤3022,终端设备101确定用于访问目标文件的终端设备102。
65.在一些实施例中,终端设备101运行应用程序2011,并且显示应用程序2011的图形用户界面。用户可以在该图形用户界面中执行业务操作,终端设备101中部署的文件共享装置61,根据用户在图形用户界面中执行的业务操作,确定待共享的目标文件以及用于访问目标文件的终端设备102。
66.示例性的,终端设备101可以是手机,终端设备102可以是平板电脑;应用程序2011可以是文件管理器,应用程序2012可以是文件编辑器。文件管理器对文件名称为“文件1”和“文件2”的本地文件均具有访问权限,且用户期望将手机中文件名称为“文件1”的本地文件2031共享给平板电脑中的文件编辑器,通过平板电脑中的文件编辑器来编辑本地文件2031。
67.首先,手机可通过文件管理器显示如图4a所示的图形用户界面。用户可通过持续按压“文件1”字样所在的区域,使文件名称为“文件1”的本地文件2031被确定为待共享的目标文件。
68.接着,终端设备101显示如图4b所示的图形用户界面。该图形用户界面中不仅可以列表显示各个本地文件并且指示出被确定的目标文件,还可以显示用于支持对目标文件进行各种特定类型的管理的图标或字样。例如用于支持将目标文件通过指定的通信方式分享给其它用户的“分享”图标,用于支持对目标文件进行复制的“复制”图标,用于对目标文件进行移动以更改目标文件的存储路径的“移动”图标,以及位于“更多”列表项下的“打开方式”和“重命名”字样,其中“重命名”字样用于支持修改目标文件的文件名称,“打开方式”字样用于支持发起共享目标文件。
69.接着,用户可通过触摸/按压“打开方式”字样,使终端设备设备显示如图4c所示的图形用户界面。假设该图形用户界面所显示的当前设备、设备1和设备2中,设备1表征平板电脑的设备名称,其中终端设备的设备名称对应于终端设备的设备标识。基于该假设,用户可通过按压/触摸“设备1”字样所在的区域,使平板电脑被确定为用于访问目标文件的终端设备102。
70.终端设备102的配置信息包含若干应用标识时,与前述确定用于访问目标文件的终端设备102类似,当用户选择“设备1”为用于访问目标文件的终端设备102之后,图4c所示的图形用户界面中还可以对应的显示包含于“设备1”的配置信息种的应用标识,例如“照片”、“文件编辑器”和“pdf”等,这些应用标识是。用户可以进一步触摸/按压“文件编辑器”所在的区域,使平板电脑中部署的“文件编辑器”被确定为用于访问目标文件的应用程序2012。
71.需要说明的是,图4a、图4b以及图4c仅用于辅助描述本技术实施例中提供的技术
方案,用于支持确定待共享的目标文件、用于访问目标文件的终端设备102的图形用户界面,还可能具有其它布局和页面跳转关系。此外,还可能先执行步骤3021,然后再执行步骤3022;例如,可以在应用程序2011的一个图形用户界面中设置关联于文件共享装置61的图标,用户可以在该图形用户界面中触摸/按压该图标,使终端设备101在文件共享装置61的支持下显示另一个图形用户界面,用户可在该另一个图形用户界面中执行相应的业务操作,使终端设备101确定出待共享的目标文件、用于访问目标文件的终端设备102的图形用户界面,以及用于访问目标文件的应用程序2012等。
72.终端设备102的配置信息包含若干应用标识时,与前述确定用于访问目标文件的终端设备102类似,终端设备101还可以通过文件共享装置61,显示应用选择界面。根据用户在应用选择界面中执行的应用选择操作,确定用于访问目标文件的应用程序2012。其中,应用选择界面可以显示,终端设备102的配置信息包含的各应用标识。
73.步骤303,终端设备101确定目标文件的全局标识。其中,目标文件的全局标识是目标文件在终端设备101中的唯一标识,用于支持对目标文件的查找。
74.在一些实施例中,目标文件的全局标识可以是目标文件的存储路径,或者是对应于该存储路径的映射字符串。
75.在一些实施例中,目标文件的全局标识可以是目标文件的uri。目标文件的uri至少用于在终端设备101中标识目标文件的名称/位置的字符串。
76.示例性的,目标文件的uri具体包括设备信息字段和文件信息字段。
77.示例性的,目标文件的uri具体包括设备信息字段、应用信息字段和文件信息字段。
78.以上各个示例中,文件信息字段可以是目标文件的存储路径,或者是对应于该存储路径的映射字符串。
79.以上各个示例中,设备信息字段可以是终端设备101的设备标识,或者是对应于该设备标识的映射字符串。其中,终端设备101的设备标识具体可以是终端设备101的ip地址,或者是基于终端设备101的ip地址/mac地址获取的并且能够被域名系统(domain name system,dns)解析的其它标识。
80.以上各个示例中,应用信息字段可以是请求共享目标文件的应用程序2011的应用标识,或者是对应于该应用标识的映射字符串。
81.在以上各个示例的基础上,目标文件的uri还可以包括协议标识(例如,http、ftp、mailto或者file),包含终端设备102在内的其它终端设备,可以基于目标文件的uri所包含的协议标识,通过相应的通信协议对目标文件进行访问操作。
82.步骤304,终端设备101向终端设备102发送文件共享请求。
83.其中,文件共享请求包括目标文件的全局标识。
84.终端设备101确定应用程序2012为用于访问共享文件的应用程序,则文件共享请求中还可以包括应用程序2012的应用标识。
85.终端设备101可以在文件共享装置61的支持下,完成上述步骤301至步骤304。
86.终端设备102接收到文件共享请求后,执行步骤305,运行应用程序2012并且向应用程序2012提供文件共享请求。
87.用于访问目标文件的应用程序2012,可以由终端设备101确定。
88.用于访问目标文件的应用程序2012,可以由持有终端设备102的用户进行自主选择,或者由终端设备102预先确定。
89.换而言之,终端设备10中的文件共享装置62,可以根据其接收的文件共享请求中包含的应用程序2012的应用标识,或者根据其预先设置的应用程序2012的应用标识,或者根据用户选择的应用程序2012的应用标识,触发终端设备102启动并运行应用程序2012。接着,文件共享装置62可以根据应用程序2012的应用标识,将文件共享请求提供给应用程序2012。最后通过应用程序2012的图形用户界面,呈现文件共享请求中包含的目标文件的全局标识。如此,用户可获知请求向其共享目标文件的终端设备、请求向其共享目标文件的应用程序、需要共享的目标文件等信息中的一项或多项。此外,用户还可在应用程序2012的图形用户界面中,执行对目标文件的全局标识的触发操作,比如在图形用户界面中触摸/点击该全局标识所在的区域,对来自终端设备101的文件共享请求进行响应。
90.终端设备102可以在文件共享装置62的支持下,响应于用户对目标文件的全局标识的触发操作,执行步骤306,向终端设备101发送文件共享响应。
91.其中,文件共享响应包括目标文件的全局标识。
92.终端设备101在文件共享装置61的支持下,响应于来自终端设备102的文件共享响应,执行步骤307,根据目标文件的全局标识打开目标文件。
93.在一些实施例中,终端设备101通过文件共享装置61解析来自终端设备102的全局标识,根据全局标识中的应用信息字段确定请求共享目标文件的应用程序2011,并且根据全局标识中的文件信息字段,查找到终端设备101中存储的目标文件。接着,通过文件共享装置61触发应用程序2011,使应用程序2011请求终端设备101的系统内核打开目标文件。
94.其中,终端设备101的系统内核可以根据应用程序2011对目标文件的文件打开请求,创建目标文件的文件结构体。目标文件的文件结构体表征处于打开状态的目标文件。
95.需要说明的是,如果目标文件为应用程序2011的内部文件,可以首先根据目标文件的全局标识中的应用信息字段,将目标文件由应用程序2011的内部文件转换成可供其它应用程序访问的公共文件,然后由应用程序2011打开已经转换为公共文件的目标文件。以终端设备101采用基于android的软件系统为例,可以通过其提供的provider机制,将应用程序2011的内部文件转换成公共文件。
96.接着,终端设备101执行步骤3081,通过分布式文件服务2041,在分布式文件系统10中创建目标文件对应的映射文件的元数据。
97.具体地说,终端设备101中的文件共享装置61可以对分布式文件服务2041进行调用,完成在分布式文件系统10中创建目标文件对应的映射文件的元数据。
98.映射文件的元数据可以包括:映射文件在分布式文件系统10中的文件标识,用于支持对映射文件进行访问的索引标识(或者称为句柄)。还可以包括终端设备101的设备标识。
99.映射文件的文件标识,可以包括映射文件在分布式文件系统10的目录树中的路径。示例性的,分布式文件系统的目录树中,根目录为“aa”,根目录“aa”包括第一级子目录“bb”。终端设备101创建映射文件的元数据时,在第一级子目录“bb”下创建了第二级子目录“cc”。那么,映射文件的文件标识可以为“aa/bb/cc”。
100.分布式文件系统的目录树可以由用户进行维护,即分布式文件的文件标识可以由
用户自主的进行创建或修改,因此分布式文件的文件标识通常并不作为分布式文件的唯一标识。在分布式文件系统10中维护映射文件的文件标识时,分布式文件服务2041可以按照预定的策略为该映射文件分配一个索引标识,该索引标识是映射文件在分布式文件系统中的唯一标识。
101.如此,就用户侧的应用程序而言,可以根据映射文件的文件标识向分布式文件服务发起访问映射文件的文件访问请求;就分布式文件系统10而言,分布式文件服务2042可以根据映射文件的索引标识来访问映射文件。
102.需要说明的是,完成创建目标文件对应的映射文件的元数据之后,并不在分布式文件系统10中真正的写入映射文件的文件内容,而是在后续过程中将映射文件的索引标识和处于打开状态的目标文件作关联处理,实现将处于打开状态的目标文件的文件内容作为映射文件的文件内容。如此,当存在应用程序访问映射文件时,其实质上访问的是目标文件。
103.接着,终端设备102执行步骤3082,接收元数据同步消息。
104.元数据同步消息包括,目标文件对应的映射文件的元数据。
105.依赖分布式文件系统10的不同架构,步骤3081和步骤3082的具体实施过程可能有所不同。
106.在一个示例中,由终端设备101管理分布式文件的元数据。步骤3081中可以由分布式文件服务2041独立的完成创建目标文件对应的映射文件的元数据,将映射文件的元数据发送至分布式文件服务2042。
107.在一个示例中,终端设备101仅作为分布式文件系统10中用于存储分布式文件的数据节点,由主控服务器来统一管理分布式文件的元数据。步骤3081中可以由分布式文件服务2041与主控服务器/其它终端设备进行信息交互,完成在主控服务器中创建目标文件对应的映射文件的元数据;步骤3082中可以由分布式文件服务2042接收来自主控服务器/其它终端设备的元数据同步消息。
108.接着,终端设备101执行步骤309,为分布式文件服务2041,生成用于访问处于打开状态的目标文件的第一文件描述符,并且建立第一文件描述符和索引标识的关联关系。
109.具体地,可以查找分布式文件服务2041的文件描述符表,获知已经被分布式文件服务2041占用的文件描述符。然后,生成一个还未被分布式文件服务2041占用的第一文件描述符。最后,在该文件描述符表中建立该第一文件描述符与目标文件的文件结构体的关联关系,并且将该第一文件描述符返回给分布式文件服务2041,从而完成为分布式文件服务2041生成用于访问处于打开状态的目标文件的第一文件描述符。
110.接着,终端设备101执行步骤310,向终端设备102发送文件共享信息。
111.文件共享信息可以包括映射文件的文件标识。
112.在一些实施例中,文件共享信息还可以包括应用程序2012的应用标识。
113.终端设备102可以通过文件共享装置62接收文件共享信息,并且执行步骤311,根据映射文件的文件标识打开映射文件,为应用程序2012生成用于访问处于打开状态的映射文件的第二文件描述符,并且向应用程序2012提供第二文件描述符。
114.具体地,首先,文件共享装置62可以接收到来自终端设备101的文件共享信息。然后,文件共享装置62根据映射文件的文件标识,调用分布式文件服务2042打开映射文件。接
着,通过与前述为分布式文件服务2041生成用于访问处于打开状态的目标文件的第一文件描述符相似的方法,为应用程序2012生成用于访问处于打开状态的映射文件的第二文件描述符。如此,应用程序2012可通过该第二文件描述符对处于打开状态的映射文件进行访问。由于映射文件的文件内容实质上是处于打开状态的目标文件的文件内容,因此映射程序2012对映射文件进行访问时,实质上访问的是目标文件,即实质上访问的是存储于终端设备101的本地文件2031。
115.需要说明的是,分布式文件服务2042可以在终端打开映射文件时,根据映射文件的文件标识从映射文件的元数据中确定出该映射文件的索引标识。接着,终端设备102步骤312,通过分布式文件服务2042接收应用程序2012对处于打开状态的映射文件的文件访问请求。
116.其中,该文件访问请求中包括第二文件描述符以及相应的请求参数。请求参数可以包括文件访问类型或者用于指示文件访问类型的类型指示信息,例如包括“read”或者“write”,或者包括用于指示文件访问类型为“read”或者“write”的类型指示信息。当文件访问类型为“write”时,请求参数还可以包括待写入的文件内容。
117.终端设备102接着执行步骤313,通过分布式文件服务2042向终端设备101发送文件访问请求。其中,该文件访问请求包括映射文件的索引标识,以及来自应用程序2012的文件访问请求所包含的请求参数。
118.终端设备101通过分布式文件服务2041接收来自分布式文件服务2042的文件访问请求,然后执行步骤314,通过分布式文件服务2041,确定映射文件的索引标识关联的第一文件描述符,根据第一文件描述符和请求参数访问处于打开状态的目标文件。
119.具体地说,分布式文件服务2041可以根据文件访问请求所包括的映射文件的索引标识,从已建立的关联关系中确定出用于访问处于打开状态的目标文件的第一文件描述符。然后根据请求参数中包含的文件访问类型和第一文件描述符,调用系统内核中与该文件访问类型相对应的接口函数,使接口函数根据第一文件描述符从分布式文件服务2041的文件描述符表中查找到目标文件的文件结构体,进而基于查找的文件结构体对目标文件进行访问操作。
120.基于如图2所示的系统框架,本技术实施例中还提供了另一种文件共享方法。如图5所述,该方法可以包括但不限于如图5中所示的部分或全部步骤。
121.不同于如图3所示实施例的是,在步骤307之后,终端设备101执行步骤508,生成临时标识,并且建立临时标识和处于打开状态的目标文件的关联关系。
122.具体地,目标文件的文件结构体,代表处于打开状态的目标文件。临时标识是目标文件的文件结构体在终端设备101中的唯一标识。可以建立临时标识与目标文件的文件结构体的关联关系,完成建立临时标识和处于打开状态的目标文件的关联关系。
123.接着,终端设备101执行步骤509,向终端设备102发送文件共享信息。
124.其中,文件共享信息至少包括该临时标识,可选地包括应用程序2012的应用标识。
125.终端设备102接收到来自终端设备101的文件共享信息之后,执行步骤510,通过分布式文件服务2042创建处于打开状态的临时文件。
126.具体地,终端设备101可以通过文件共享装置62接收到文件共享信息。接着,文件共享装置62可以向分布式文件服务2042发送文件打开请求,该文件打开请求包括指示信息
和预定的分布式文件的文件标识,该指示信息用于指示分布式文件服务2042创建一个无名的临时文件,即指示分布式文件服务创建一个无名的文件结构体。
127.接着,终端设备102执行步骤511,为应用程序2012生成用于访问处于打开状态的临时文件的第二文件描述符,并且将该临时标识和第二文件描述符提供给应用程序2012。
128.终端设备102可以通过与前述为分布式文件服务2041生成用于访问处于打开状态的目标文件的第一文件描述符相似的方法,为应用程序2012生成用于访问处于打开状态的临时文件的第二文件描述符。其中,预定的分布式文件可以是分布式文件系统10的根目录,也可以是分布式文件系统10中的其它分布式文件。
129.接着,终端设备102执行步骤512,通过分布式文件服务2042接收应用程序2012对处于打开状态的临时文件的文件访问请求。
130.其中,该文件访问请求中包括临时标识、第二文件描述符以及相应的请求参数。
131.接着,终端设备102步骤513,通过分布式文件服务2032,向终端设备101发送文件访问请求。其中,该文件访问请求包括临时标识以及相应的请求参数。
132.终端设备101通过分布式文件服务2041接收到来自分布式文件服务2042的文件访问请求后,执行步骤514,通过分布式文件服务2041,确定临时标识关联的处于打开状态的目标文件,根据请求参数访问处于打开状态的目标文件。
133.具体地,分布式文件服务可以根据文件访问请求中包括的临时标识,从已建立的关联关系确定出处于打开状态的目标文件,即确定出目标文件的文件结构体。然后根据请求参数中包含的文件访问类型,调用系统内核中与该文件访问类型相对应的接口函数,使接口函数根据目标文件的文件结构体,对目标文件进行访问操作
134.在一些实施例中,终端设备101的系统内核还可以响应于应用程序2011对目标文件的文件关闭请求,关闭处于打开状态的目标文件。即从终端设备101中删除目标文件的文件结构体,使应用程序2012无法继续进行跨设备的访问目标文件。
135.与前述方法实施例基于相同的构思,本技术实施例中还提供了一种文件共享装置,该装置可以作为文件共享装置61,部署在作为第一终端设备的终端设备101中。如图6所示,该装置可以包括:本地文件管理单元611,用于打开目标文件;其中,所述目标文件是存储于所述第一终端设备并且待共享给第二终端设备的本地文件,所述第一终端设备和所述第二终端设备属于同一个分布式文件系统。分布式文件管理单元612,用于在所述分布式文件系统中,创建所述目标文件对应的映射文件的元数据;其中,所述映射文件的元数据包括所述映射文件的文件标识和索引标识。文件描述符传递单元613,用于为所述第一分布式文件服务,生成用于访问处于打开状态的所述目标文件的第一文件描述符,以及建立所述第一文件描述符和所述索引标识的关联关系。数据发送单元614,用于向所述第二终端设备发送文件共享信息;其中,所述文件共享信息包括所述文件标识。
136.与前述方法实施例基于相同的构思,本技术实施例中还提供了另一种文件共享装置,该装置可以作为文件共享装置61,部署在作为第一终端设备的终端设备101中。如图7所示,该装置可以包括:本地文件管理单元615,用于打开目标文件;其中,所述目标文件是存储于所述第一终端设备并且待共享给第二终端设备的本地文件,所述第一终端设备和所述第二终端设备属于同一个分布式文件系统。关联关系管理单元616,用于生成临时标识,以及建立所述临时标识和处于打开状态的所述目标文件的关联关系。数据收发单元617,用于
向所述第二终端设备发送文件共享信息;其中,所述文件共享信息包括所述临时标识。
137.与前述方法实施例基于相同的构思,本技术实施例中还提供了另一种文件共享装置,该装置可以作为文件共享装置62,部署在作为第二终端设备的终端设备102中。如图8所示,该装置包括:数据收发单元621,用于接收来自第一终端设备的文件共享信息;其中,所述第一终端设备和所述第二终端设备属于同一个分布式文件系统,所述文件共享信息包括所述分布式文件系统中与目标文件相对应的映射文件的文件标识,所述目标文件是存储于所述第一终端设备并且待共享给所述第二终端设备的本地文件。文件打开单元622,用于根据所述文件标识打开所述映射文件。文件描述符传递单元623,用于为第二应用程序生成用于访问处于打开状态的所述映射文件的第二文件描述符,以及向所述第二应用程序提供所述第二文件描述符。
138.与前述方法实施例基于相同的构思,本技术实施例中还提供了另一种文件共享装置,该装置可以作为文件共享装置62,部署在作为第二终端设备的终端设备102中。如图9所示,该装置包括:数据收发单元624,用于接收来自第一终端设备的文件共享信息;其中,所述第一终端设备和所述第二终端设备属于同一个分布式文件系统,所述文件共享信息包括临时标识,所述第一终端设备中建立了所述临时标识和处于打开状态的目标文件的关联关系,所述目标文件是存储于所述第一终端设备并且待共享给所述第二终端设备的本地文件。文件管理单元625,用于在所述第二终端设备中创建处于打开状态的临时文件;文件描述符传递单元626,用于为第二应用程序生成用于访问处于打开状态的所述临时文件的第二文件描述符,以及向所述第二应用程序提供所述第二文件描述符和所述临时标识。
139.以上各个方面中,第一分布式文件服务可以向第二终端设备发送元数据同步消息,该元数据同步消息包括映射文件的元数据。
140.以上各个方面中,第一终端设备还可以向第二终端设备发送文件共享请求,该文件共享请求包括目标文件的全局标识,全局标识是目标文件在所述第一终端设备中的唯一标识。第二终端设备可以向第二应用程序提供该文件共享请求,并且响应于用户通过第二应用程序对全局标识的触发操作,向第二终端设备发送包含该全局标识的文件共享响应。相应的,第一终端设备可以响应于来自第二终端设备的文件共享响应,打开目标文件。如此,使用户可以根据其自身的业务需求,通过第二应用程序按需访问目标文件。
141.以上各个文件共享装置中,文件共享请求还可以包括第一应用程序的第一应用标识,第一应用程序部署在第一终端设备中并且具有访问目标文件的权限,第一应用标识是第一应用程序在第一终端设备中的唯一标识。相应的,文件共享响应还可以包括第一应用标识。第一终端设备中的文件共享装置可以响应于包括全局标识和第一应用标识的文件共享响应,通过第一应用程序打开目标文件。
142.以上各个文件共享装置中,目标文件的全局标识包括目标文件的uri。其中目标文件的uri具体可以包括文件信息字段,文件信息字段是目标文件的存储路径或者对应于存储路径的映射字符串。
143.以上各个文件共享装置中,目标文件的uri还可以包括设备信息字段,设备信息字段是第一终端设备的设备标识或者对应于设备标识的映射字符串。
144.以上各个文件共享装置中,目标文件的uri还包括:应用信息字段,应用信息字段具体包括第一应用程序的第一应用标识或者对应于第一应用标识的映射字符串。
145.以上各个文件共享装置中,文件共享请求还包括第二应用程序的第二应用标识;第二应用程序部署在第二终端设备中,第二应用标识是第二应用程序在第二终端设备中的唯一标识。
146.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。因此,本技术实施例中还提供了一种终端设备和计算机可读存储介质。
147.如图10所示,终端设备100可以包括处理器1001、存储器1002以及通信接口1003。其中通信接口1003用于与其它终端设备进行通信。存储器1002中存储有计算机程序指令/代码,处理器1001执行该计算机程序指令/代码时:终端设备100作为终端设备101,实现如图3或图5所示实施例中由终端设备101执行的方法;或者终端设备100作为终端设备102,实现如图3或图5所示实施例中由终端设备102执行的方法。
148.计算机可读存储介质用于存储计算机程序指令/代码,该计算机程序指令/代码被终端设备的处理器执行时,使得终端设备作为终端设备101,实现如图3或图5所示实施例中由终端设备101执行的方法;或者使得终端设备作为终端设备102,实现如图3或图5所示实施例中由终端设备102执行的方法。
149.应当理解的是,在本技术实施例的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
150.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述网络设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
151.可以理解,以上所描述的装置实施例是示意性的,例如,所述模块/单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
152.以上仅为本技术实施例的具体实施方式,但本技术实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术实施例的保护范围之内
153.最后需要说明的是,以上实施例仅用以说明本技术的技术方案,而未对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解,依然可以对前述各个实施例中所提供的技术方案进行修改,或者对其中部分技术特征进行等同替换,而这些修改或替换,并不使相应技术方案的本质脱离本技术各个实施例中所提供技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献