CN103312489B - 一种终端与服务器进行同步的方法和装置 - Google Patents
一种终端与服务器进行同步的方法和装置 Download PDFInfo
- Publication number
- CN103312489B CN103312489B CN201310270933.8A CN201310270933A CN103312489B CN 103312489 B CN103312489 B CN 103312489B CN 201310270933 A CN201310270933 A CN 201310270933A CN 103312489 B CN103312489 B CN 103312489B
- Authority
- CN
- China
- Prior art keywords
- file
- metadata
- catalogue
- mark
- terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种同步的方法和装置,该方法包括:服务器接收将文件从第一目录移动到第二目录的请求,所述请求中携带所述文件的标识和所述第二目录的标识;服务器根据所述文件的标识查找所述文件的元数据,在所述文件的元数据中将所述文件的父目录标识更改为所述第二目录的标识,并在所述第一目录下创建所述文件的代理元数据,所述代理元数据用于表示该文件已移动到第二目录;所述服务器将所述文件的代理元数据发送给所述终端,以通过所述终端本地的所述文件来进行所述服务器和所述终端之间的同步。应用本发明实施例,实现减少了带宽消耗,提高了同步效率。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种终端与服务器进行同步的方法和装置。
背景技术
随着云技术的发展,越来越多用户将文件保存在云端。目前,云端支持手机、个人计算机(personal computer,PC)、万维网Web等客户端实时跟云端的文件进行同步,在无需用户的干预下保证用户本地的数据和云端的数据相一致,以便用户无论何时何地都保证获取最新数据,给用户良好体验。
现有技术中,典型的云端同步有两种方式:全量式同步和增量式同步。
全量式同步是指当云端有更新,那么客户端需要从服务器获取全量数据到本地客户端,然后比较本地客户端数据和从云端获取得到的数据,获取不一致的数据,最后同步不一致的数据。其中,从云端获取全量数据需要大量用户的流量。
增量式同步是指当云端有更新,那么客户端和云端仅同步更新的数据,无需获取全部数据。因此可以大大减轻用户的流量。
但是,现有的增量式同步在实现移动操作时,是通过拷贝和删除操作组合来实现的。如图1所示,云端在将S目录下的f文件移动到D目录下时,现有技术是先将文件f复制到D目录下,生成新文件f’,然后删除S目录下的f文件。其中,云端需要为f’重新产生一个新的文件逻辑号(logicalFileId)(需要说明的是,云端使用文件逻辑号,而不是文件名作为文件的唯一标识符,因为文件名可以随意改名,导致无法作为文件的唯一标识符)。由于云端对于文件f’重新产生一个新的文件逻辑号,因此,会导致原有关联文件f的共享、公开以及外链的链接失效。而且,当客户端从云端同步目录S和目录D时,需要删除终端中S目录下的f文件,并从云端下载文件f’到终端的目录D下,导致网络流量的浪费。
发明内容
本发明实施例提供一种终端与服务器进行同步的方法和装置以解决在客户端与云端同步移动操作时,导致流量浪费以及链接失效的问题。
第一方面,一种终端与服务器进行同步,包括:
服务器接收将文件从第一目录移动到第二目录的请求,所述请求中携带所述文件的标识和所述第二目录的标识;
服务器根据所述文件的标识查找所述文件的元数据,在所述文件的元数据中将所述文件的父目录标识更改为所述第二目录的标识,并在所述第一目录下创建所述文件的代理元数据,所述代理元数据用于表示所述文件已移动到第二目录;
所述服务器将所述文件的代理元数据发送给所述终端,以通过所述终端本地的所述文件来进行所述服务器和所述终端之间的同步。
在第一方面的第一种可能的实现方式中,所述代理元数据包括所述文件的标识,第二目录的标识以及用于表示所述文件已发生移动的移动标记;
所述服务器将所述文件的代理元数据发送给终端后,所述方法还包括:
所述终端根据所述代理元数据中的移动标记确定所述文件已发生移动;
根据所述文件的标识在本地查找所述文件的元数据;
在查找到的所述文件的元数据中将所述文件的父目录标识更改为所述第二目录的标识。
在第一方面的第二种可能的实现方式中,所述方法还包括:将所述文件的元数据发送给所述终端;
所述终端根据所述文件的代理元数据更新所述终端中的第一目录,并根据所述文件的元数据更新所述终端中的第二目录。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述文件的元数据包括所述文件的标识和所述第二目录的标识;
所述根据所述文件的元数据更新所述终端中的第二目录具体包括:
所述终端根据所述文件的元数据中的所述文件的标识在本地查找所述文件的元数据;
在查找到的所述文件的元数据中将所述文件的父目录标识更改为所述第二目录的标识。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述代理元数据中包括所述文件的标识,第二目录的标识以及用于表示所述文件已发生移动的移动标记;
所述终端根据所述文件的代理元数据更新所述终端中的第一目录具体包括:
所述终端根据所述代理元数据中的移动标记确定所述文件已发生移动;
根据所述代理元数据中的文件的标识在本地查找所述文件的元数据;
判断查找到的所述文件的元数据中所述文件的父目录标识是否为所述第二目录的标识;
若所述文件的父目录标识不是所述第二目录的标识,则在查找到的所述文件的元数据中将所述文件设置为隐藏;
若所述文件的父目录标识是所述第二目录的标识,则不对所述文件做处理。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,在所述终端根据所述文件的元数据中的所述文件的标识在本地查找到所述文件的元数据后,所述方法还包括:确定所述文件的状态,若所述文件为隐藏状态,则在所述文件的元数据中将所述文件更改为显示状态。
结合第一方面或第一方面第一至四任一种可能的实现方式,在第六种可能的实现方式中,在所述服务器根据所述文件的标识查找所述文件的元数据后,所述方法还进一步包括:
服务器判断所述第二目录下是否存在表明所述文件已从所述第二目录移走的代理元数据;
若所述第二目录下存在用于表明所述文件已从所述第二目录移走的代理元数据,则删除所述代理元数据。
第二方面,一种终端与服务器进行同步的方法,包括:
在服务器通过在文件的元数据中更改所述文件的父目录标识的方式将所述文件从第一目录移动到第二目录,并在第一目录下创建所述文件的代理元数据后,终端从所述务器接收所述文件的代理元数据,所述代理元数据用于表示所述文件已移动到第二目录;
所述终端根据所述代理元数据在终端本地查找所述文件的元数据,通过在本地查找到的所述文件的元数据来完成与所述服务器的同步。
结合第二方面的第一种可能的实现方式,所述代理元数据包括所述文件的标识,第二目录的标识以及用于表示所述文件已发生移动的移动标记;
所述终端根据所述代理元数据在终端本地查找所述文件的元数据,通过在本地查找到的所述文件的元数据来完成与所述服务器的同步具体包括:
所述终端根据所述代理元数据中的移动标记确定所述文件已发生移动;
根据所述文件的标识在本地查找所述文件的元数据;
在查找到的所述文件的元数据中将所述文件的父目录标识更改为所述第二目录的标识。
结合第二方面的第二种可能的实现方式,所述通过在本地查找到的所述文件的元数据来完成与所述服务器的同步具体包括:通过在本地查找到的所述文件的元数据来完成所述终端中的第一目录与所述服务器中的第一目录的同步;
所述方法还包括:
所述终端从所述服务器接收所述文件的元数据;
所述终端根据接收到的所述文件的元数据完成所述终端中的第二目录与所述服务器中的第二目录的同步。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述从所述服务器接收的所述文件的元数据包括所述文件的标识和所述第二目录的标识;
所述终端根据所述文件的元数据完成所述终端中的第二目录与所述服务器中的第二目录的同步具体包括:
所述终端根据接收到的所述文件的元数据中的所述文件的标识在本地查找所述文件的元数据;
在查找到的所述文件的元数据中将所述文件的父目录标识更改为所述第二目录的标识。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述代理元数据中包括所述文件的标识,第二目录的标识以及用于表示所述文件已发生移动的移动标记;
所述终端根据所述代理元数据在终端本地查找所述文件的元数据,通过在本地查找到的所述文件的元数据来完成所述终端中的第一目录与所述服务器中的第一目录的同步具体包括:
所述终端根据所述代理元数据中的移动标记确定所述文件已发生移动;
根据所述代理元数据中的文件的标识在本地查找所述文件的元数据;
判断查找到的所述文件的元数据中所述文件的父目录标识是否为所述第二目录的标识;
若所述文件的父目录标识不是所述第二目录的标识,则在查找到的所述文件的元数据中将所述文件设置为隐藏;
若所述文件的父目录标识是所述第二目录的标识,则不对所述文件做处理。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,在所述终端根据所述文件的元数据中的所述文件的标识在本地查找到所述文件的元数据后,所述方法还包括:确定所述文件的状态,若所述文件为隐藏状态,则在所述文件的元数据中将所述文件更改为显示状态。
第三方面,一种与终端进行同步的服务器,所述服务器包括:
接收单元,用于接收将文件从第一目录移动到第二目录的请求,所述请求中携带所述文件的标识和所述第二目录的标识;
处理单元,用于根据所述文件的标识查找所述文件的元数据,在所述文件的元数据中将所述文件的父目录标识更改为所述第二目录的标识,并在所述第一目录下创建所述文件的代理元数据,所述代理元数据用于表示所述文件已移动到所述第二目录;
同步单元,用于将所述文件的代理元数据发送给终端,以通过所述终端本地的所述文件来进行所述服务器和所述终端之间的同步。
在第三方面的第一种可能的实现方式中,所述同步单元还用于将所述文件的元数据发送给所述终端;所述文件的代理元数据用以同步第一目录,所述文件的元数据用以同步第二目录。
结合第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理单元在将所述文件的父目录标识更改为所述第二目录的标识时,还进一步用于判断所述第二目录下是否存在用于表示所述文件已从所述第二目录移除的代理元数据;若所述第二目录下存在用于指示所述文件已从所述第二目录移除的代理元数据,则删除所述第二目录下的代理元数据。
第四方面,一种与服务器进行同步的终端,包括:同步单元,用于在服务器通过在文件的元数据中更改所述文件的父目录标识的方式将所述文件从第一目录移动到第二目录,并在第一目录下创建所述文件的代理元数据后,从所述服务器接收所述文件的代理元数据,并提供给处理单元,所述代理元数据用于表示所述文件已移动到第二目录;
所述处理单元,用于根据所述代理元数据在终端本地查找所述文件的元数据,通过在本地查找到的所述文件的元数据来完成与所述服务器的同步。
在第四方面的第一种可能的实现方式中,所述代理元数据包括所述第一文件的标识,所述第二目录的标识以及用于指示所述文件已发生移动的移动标记;
所述处理单元具体用于根据所述代理元数据中的移动标记确定所述文件已发生移动;根据所述文件的标识在本地查找所述文件的元数据;在查找到的所述文件的元数据中将所述文件的父目录标识更改为所述第二目录的标识。
在第四方面的第二种可能的实现方式中,所述同步单元还用于从所述服务器接收所述文件的元数据;
所述处理单元具体包括:
第一操作模块,用于根据所述代理元数据在终端本地查找所述文件的元数据,通过在本地查找到的所述文件的元数据来完成本地的第一目录与所述服务器中的第一目录的同步;
第二操作模块,用于根据接收到的所述文件的元数据完成本地的第二目录与所述服务器中的第二目录的同步。
结合第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述从所述服务器接收的所述文件的元数据包括所述文件的标识和所述第二目录的标识;
所述第二操作模块具体用于根据接收到的所述文件的元数据中的所述文件的标识在本地查找所述文件的元数据;在查找到的所述文件的元数据中将所述文件的父目录标识更改为所述第二目录的标识。
结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,所述代理元数据中包括所述文件的标识,第二目录的标识以及用于表示所述文件已发生移动的移动标记;
所述第一操作模块具体用于根据所述代理元数据中的移动标记确定所述文件已发生移动;根据所述代理元数据中的文件的标识在本地查找所述文件的元数据;判断查找到的所述文件的元数据中所述文件的父目录标识是否为所述第二目录的标识;若所述文件的父目录标识不是所述第二目录的标识,则在查找到的所述文件的元数据中将所述文件设置为隐藏;若所述文件的父目录标识是所述第二目录的标识,则不对所述文件做处理。
结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第二操作模块还用于在查找到所述文件的元数据后,确定所述文件的状态,若所述文件处于隐藏状态,则在所述文件的元数据中将所述文件更改为显示状态。
本发明实施例中,服务器通过更改文件的父目录的方式将文件从源目录移动到目的目录,并在源目录下为已移动到目标目录的文件创建代理元数据,使得终端在同步源目录和目标目录时,可以识别出服务器侧发生的是移动操作,从而利用终端本地的文件来实现与服务器的同步,而无需从服务器侧重新下载文件,节约了网络资源。而且本发明通过更改文件的父目录的方式将文件从源目录移动到目的目录,使得文件的逻辑号保持不变,从而可以保持原有关联文件f的共享、公开以及外链的链接仍然有效。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中的同步方法的流程图;
图2是本发明实施例提供的终端与服务器进行同步方法的流程图;
图3是本发明另一实施例提供的终端与服务器进行同步方法的流程图;
图4是本发明实施例提供的同步方法在具体应用中的处理流程图;
图5是本发明实施例提供的文件f的移动示意图;
图6是本发明实施例提供的网络架构示意图;
图7是本发明实施例提供的与终端进行同步的服务器的结构示意图;
图8是本发明另一实施例提供的与终端进行同步的服务器的结构示意图;
图9是本发明另一实施例提供的与服务器进行同步的终端的结构示意图;
图10是本发明另一实施例提供的与服务器进行同步的终端的结构示意图;
图11是本发明实施例提供的与终端进行同步的服务器的硬件结构示意图;
图12是本发明另一实施例提供的与服务器进行同步的终端的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2为本发明实施例提供的终端与服务器进行同步方法的流程图,具体包括:
S200,服务器接收将文件从第一目录移动到第二目录的请求,该请求中携带该文件的标识和第二目录的标识。
其中,服务器可以是云同步服务器,用于提供云同步服务,实现在用户的多个终端上同步文件。
在用户与服务器同步的多个终端中,若其中一个终端中的文件从第一目录移动到了第二目录,则该终端会向服务器发起将文件从第一目录移动到第二目录的请求,以使服务器根据该请求执行移动操作,并通过服务器同步用户的其它终端。
可选的,步骤S200中的请求也可以由用户通过Web客户端向服务器发送,使服务器根据该请求执行移动操作后,再从服务器同步到用户的所有或部分终端中。
其中,服务器接收到的请求中要携带需要移动的文件的标识以及该文件的目标目录的标识。在本实施例中,要移动的文件的源目录为第一目录,目标目录为第二目录,因此服务器接收到的请求中需要携带第二目录的标识。对于文件的源目录的标识则可以携带,也可以不携带。
S202,服务器根据请求中携带的文件的标识查找该文件的元数据,在该文件的元数据中将该文件的父目录标识更改为第二目录的标识,并在第一目录下创建该文件的代理元数据,其中,代理元数据用于表示该文件已移动到第二目录。
服务器在识别出接收到的请求为执行移动操作的请求后,执行步骤S202的操作。其中,服务器可以根据请求的名称或者请求中指定的操作类型来确定接收到的请求为执行移动操作的请求。该请求可以采用现有技术中的移动操作请求,这里不再赘述。
需要说明的是,文件的属性通常是通过文件的元数据来定义。比如,文件和目录的归属关系,可以由文件的元数据中的父目录项来定义。
本发明实施例中,服务器在接收到将文件移动第二目录的请求后,可以根据请求中携带的文件标识查找与该文件标识对应的文件的元数据,并在该文件的元数据中将该文件的父目录标识更改为第二目录的标识。另外,服务器还需要在该文件的源目录(即第一目录下)为该文件创建代理元数据,以在与终端同步第一目录时,通过代理元数据指示终端该文件已移动到第二目录。其中,文件的代理元数据可以由文件的元数据加移动标记构成,或者由文件的元数据中的部分数据加移动标记构成。其中,移动标记用于指示该文件已发生移动。通常情况下,文件的元数据可以包括文件的标识,文件的父目录标识等属性。本实施例中,由于文件已经移动到目标目录(即第二目录),因此该文件的代理元数据可以包括该文件的标识,第二目录的标识以及移动标记。
S204,服务器将文件的代理元数据发送给终端,以通过终端本地的该文件来进行服务器和终端之间的同步。
需要说明的是,本发明实施例中的同步可以是完全同步,也可以是部分同步,终端和服务器可以分别针对第一目录和第二目录进行同步。服务器在确定要同步的目录后,检测要同步的目录中自上次同步后的更新数据,将检测到的更新数据发送给终端。比如,本实施例,服务器和终端同步第一目录时,服务器检测第一目录在本次同步与上次同步期间的更新数据,在确定该更新数据包括文件的代理元数据时,则将第一目录下的文件的代理元数据发送给终端。
终端在接收到服务器返回的代理元数据后,可以根据该代理元数据中的移动标记获知接收到的数据为文件的代理元数据,然后根据该代理元数据更新本地的文件,以完成与服务器之间的同步。
需要说明的是,服务器与终端之间的同步可以由终端发起。服务器可以根据终端发送的同步请求来确定需要同步的目录。
本发明实施例通过更改文件的父目录的方式将文件从第一目录移动到第二目录,并在第一目录下为已移动到第二目录的文件创建代理元数据,使得终端在同步第一目录时,可以将表示文件发生移动的代理元数据发送给终端,终端可以通过该代理元数据识别出服务器侧发生的是移动操作,从而通过终端本地的文件来完成与服务器的同步,而无需从服务器侧重新下载文件,节约了网络资源。而且本发明通过更改文件的父目录的方式将文件从源目录移动到目的目录,使得文件的逻辑号保持不变,从而可以保持原有关联文件f的共享、公开以及外链的链接仍然有效。
在本发明一个实施例中,终端在接收到服务器发送的代理元数据后可以进行如下处理:终端根据代理元数据中的移动标记确定该文件已发生移动;根据代理元数据中携带的文件标识在本地查找该文件的元数据;在查找到的该文件的元数据中将该文件的父目录标识更改为所述第二目录的标识。
在上述实施例中,终端通过在本地找到与代理元数据对应的文件,直接将该文件的父目录更改为第二目录,从而在终端本地实现了文件在目录间的移动,而无需从服务器下载文件,却又能与服务器保持同步。
上述实施例描述了在服务器将文件从第一目录移动到第二目录后,终端在与服务器同步第一目录的过程中,完成文件移动操作的同步过程。
在本发明的另一实施例中,终端可以根据文件的代理元数据来更新终端中的第一目录,也可以在对第二目录的同步过程中更新第二目录。具体的,本实施例在图2所示实施例的基础上,可以进一步包括:服务器将该文件的元数据发送给终端;终端根据该文件的代理元数据更新终端中的第一目录,并根据该文件的元数据更新终端中的第二目录。
其中,终端与服务器在同步第二目录时,服务器检测第二目录在本次同步与上次同步期间的更新数据,在确定该更新数据包括有被移动到第二目录的文件的元数据时,将该文件的元数据发送给终端。
文件的元数据可以包括该文件的标识和第二目录的标识。终端根据文件的元数据更新终端中的第二目录具体可以包括:终端根据服务器发送的文件的元数据中携带的文件的标识在本地查找该文件的元数据;在查找到的该文件的元数据中将该文件的父目录标识更改为接收到的文件的元数据中携带的第二目录的标识。
终端根据文件的代理元数据更新终端中的第一目录具体可以包括:终端根据代理元数据中携带的文件标识在本地查找该文件的元数据;判断查找到的文件的元数据中该文件的父目录标识是否为代理元数据中携带的第二目录的标识;若该文件的父目录标识不是第二目录的标识,则在查找到的文件的元数据中将该文件设置为隐藏;若该文件的父目录标识为第二目录的标识,则不对该文件做处理。
在具体实施时,终端可能先发起对第一目录的同步,也有可能先发起对第二目录的同步。当终端先同步第一目录时,如果终端根据服务器返回的代理元数据确定第一目录下有文件移动到了第二目录中,此时,终端可以直接通过更改该文件的元数据中父目录将该文件移动到第二目录,也可以将第一目录下的该文件设置为隐藏,而不删除该文件。其中,将该文件设置为隐藏,是为了提高用户体验,以免在终端还未同步第二目录时,就更改终端中的第二目录。而且将文件设置为隐藏,不仅可以使终端在同步第二目录时还可以找到该文件,而不用从服务器重新下载该文件。而且,在用户看来,终端的第一目录与服务器的第一目录下的文件也能保持一致。
需要说明的是,如果终端根据在同步第一目录时是采用更改文件的父目录的方式,该操作与同步第二目录时的操作不冲突,只是在该文件的元数据中执行了两次同样的操作。当然,为了减少重复操作,在同步第一目录或第二目录时都可以先判断文件的父目录是否已更改为第二目录,如果已更改则无需再执行更改的操作。
如果终端在同步第一目录时采用将文件设置为隐藏的方式,则终端在同步第二目录时还可以进一步包括以下步骤:终端在查找需同步的文件的元数据后,确定该文件的状态,若该文件为隐藏状态,则还进一步在该文件的元数据中将该文件更改为显示状态。
在本发明实施例中,通过更改文件的父目录的方式将文件从源目录移动到目的目录,并在源目录下为已移动到目标目录的文件创建代理元数据,使得终端在同步源目录和目标目录时,可以识别出服务器侧发生的是移动操作,从而在终端本地按移动操作执行,而无需从服务器侧重新下载文件,节约了网络资源。而且本发明通过更改文件的父目录的方式将文件从源目录移动到目的目录,使得文件的逻辑号保持不变,从而可以保持原有关联文件f的共享、公开以及外链的链接仍然有效。
在具体实现本发明实施例所提供的方案时,有可能存在以下情况:用户先将文件f从S目录移动到D目录,然后又将文件f从D目录移动回S目录。在这种情况下,如果按照本发明实施例提供的方案,当再次将文件f从D目录移动回S目录时,S目录下已存在有文件f的代理元数据,这种情况下该代理元数据已没有必要存在。因此,在本发明的另一实施例中,步骤S102中的服务器在将文件的父目录标识更改为第二目录的标识时,还可以进一步包括以下处理:判断第二目录下是否存在用于指示该文件已从第二目录移除的代理元数据;若第二目录下存在用于指示该文件已从第二目录移除的代理元数据,则删除该代理元数据。
另外,为了节约存储资源,在本发明的另一实施例中,服务器还可以定期清除代理元数据。具体的,服务器可以为代理元数据设置时限,服务器根据预设时限,删除服务器中超期的代理元数据。
在另一可能的实施例中,服务器在发生数据更新之后,还可以向与服务器同步的终端发送更新通知,即,在步骤S202之后还可以进一步包括:向与服务器同步的终端发送第一目录和第二目录的更新通知,以便该终端根据该更新通知发起同步第一目录或第二目录的请求。
其中,与服务器同步的终端是指用户在服务器注册过,并与服务器建立了连接的终端。这里的用户是指被更新的文件所属的用户。需要说明的是,如果在步骤S200中是由用户的其中一个终端发生文件移动而想服务器发起将文件从第一目录移动到第二目录的请求,服务器在发送更新通知时可以不向发起该请求的终端发送更新通知。
下面从终端侧对本发明实施例做更进一步的说明,如图3所示,图3为本发明另一实施例提供的一种同步的方法的流程图,该方法包括:
S300,在服务器通过在文件的元数据中更改所述文件的父目录标识的方式将所述文件从第一目录移动到第二目录,并在第一目录下创建所述文件的代理元数据后,终端从服务器接收服务器创建在第一目录下的文件的代理元数据,该代理元数据用于表示该文件已移动到第二目录。
在服务器将文件从第一目录移动到第二目录后,服务器会在第一目录下创建该文件的代理元数据。当服务器与终端进行第一目录的同步时,检测第一目录下自上次同步后的更新数据。由于在本次同步和上次同步之间,第一目录下新增了文件的代理元数据。服务器在检测更新数据时,会检测到该文件的代理元数据,并把该文件的代理元数据作为更新数据发送给终端。
S302,终端根据该代理元数据在终端本地查找该文件的元数据,通过在本地查找到的文件的元数据来完成与服务器的同步。
其中,代理元数据可以包括文件的标识,第二目录的标识以及移动标记。其中,移动标记用于表示文件已发生移动,终端在接收到更新数据后,可以根据移动标记来区分是代理元数据还是元数据。第二目录为文件移动时的目标目录,即文件当前的父目录。
具体的,终端根据代理元数据在终端本地查找文件的元数据,通过在本地查找到的该文件的元数据来完成与服务器的同步具体可包括:终端根据代理元数据中的移动标记确定该文件已发生移动;根据该文件的标识在本地查找该文件的元数据,在查找到的该文件的元数据中将该文件的父目录标识更改为第二目录的标识。
上述实施例描述了在服务器将文件从第一目录移动到第二目录后,终端在与服务器同步第一目录的过程中,完成文件移动操作的同步过程。
在本发明的另一实施例中,终端接收到文件的代理元数据后,终端可以仅根据该代理元数据更新终端中的第一目录,在对第二目录的同步过程中再更新第二目录。具体的,步骤302中的通过在本地查找到的所述文件的元数据来完成与所述服务器的同步具体可包括:通过在本地查找到的所述文件的元数据来完成所述终端中的第一目录与所述服务器中的第一目录的同步。本实施例在图3所示实施例的基础上,可以进一步包括:终端从服务器接收文件的元数据,终端根据接收到的该文件的元数据完成终端中的第二目录与服务器中的第二目录的同步。
其中,终端与服务器在同步第二目录时,服务器检测第二目录在本次同步与上次同步期间的更新数据,在确定该更新数据包括有被移动到第二目录的文件的元数据时,将该文件的元数据发送给终端。
文件的元数据可以包括该文件的标识和第二目录的标识。终端根据接收到的该文件的元数据完成终端中的第二目录与服务器中的第二目录的同步具体可以包括:终端根据接收到的文件的元数据中携带的文件的标识在本地查找该文件的元数据;在查找到的该文件的元数据中将该文件的父目录标识更改为接收到的文件的元数据中携带的第二目录的标识。
文件的代理元数据中可以包括所述文件的标识,第二目录的标识以及用于表示该文件已发生移动的移动标记。终端根据文件的代理元数据在终端本地查找该文件的元数据,通过在本地查找到的该文件的元数据来完成终端中的第一目录与服务器中的第一目录的同步具体可以包括:终端根据代理元数据中携带的文件标识在本地查找该文件的元数据;判断查找到的文件的元数据中该文件的父目录标识是否为代理元数据中携带的第二目录的标识;若该文件的父目录标识不是第二目录的标识,则在查找到的文件的元数据中将该文件设置为隐藏;若该文件的父目录标识为第二目录的标识,则不对该文件做处理。
在具体实施时,终端可能先发起对第一目录的同步,也有可能先发起对第二目录的同步。当终端先同步第一目录时,如果终端根据服务器返回的代理元数据确定第一目录下有文件移动到了第二目录中,此时,终端可以直接通过更改该文件的元数据中父目录将该文件移动到第二目录,也可以将第一目录下的该文件设置为隐藏,而不删除该文件。其中,将该文件设置为隐藏,是为了提高用户体验,以免在终端还未同步第二目录时,就更改终端中的第二目录。而且将文件设置为隐藏,不仅可以使终端在同步第二目录时还可以找到该文件,而不用从服务器重新下载该文件。而且,在用户看来,终端的第一目录与服务器的第一目录下的文件也能保持一致。
如果终端先同步第二目录,则在终端同步第一目录时,就会出现文件的父目录标识已更改为第二目录的标识的情况。因此,当终端判断出第一文件的父目录标识为第二目录的标识,则不对该文件做处理。
如果终端先同步第一目录,则可能会存在该文件被设置成隐藏状态的情况。因此,终端在接收到该文件的元数据时,可以进一步判断该文件是否被设置为了隐藏状态,若设置为了隐藏状态,则将该文件更改为显示状态,若未设置为隐藏状态,则无需更改该文件的状态。
本发明实施例中,服务器通过更改文件的父目录的方式将文件从第一目录移动到第二目录,并在第一目录下为已移动到第二目录的文件创建代理元数据,使得终端在与服务器同步第一目录时,服务器可以将表示文件发生移动的代理元数据发送给终端,终端可以通过该代理元数据识别出服务器侧发生的是移动操作,从而通过终端本地的文件来完成与服务器的同步,而无需从服务器侧重新下载文件,节约了网络资源。而且本发明通过更改文件的父目录的方式将文件从源目录移动到目的目录,使得文件的逻辑号保持不变,从而可以保持原有关联文件f的共享、公开以及外链的链接仍然有效。
下面通过具体的实施例来对本发明进行详细说明。本实施例以终端向服务器发同步请求为例进行说明,假设终端A和终端B是用户与云端的服务器保持同步的两个终端,被移动的文件为f,文件f的源目录为S,目标目录为D。如图4所示,图4为本实施例提供的同步方法的流程图,该方法具体包括:
S400,终端A将本地源目录S下的文件f移动到目标目录D下。
本实施例以用户与服务器同步的多个终端中的一个终端发生文件移动为例进行说明。如果是用户采用Web客户端操作云端的服务器进行文件移动,则可省略步骤S400。
文件f与目录之间的归属关系可通过文件f的元数据来描述,文件f的元数据的数据结构如表1所示:
表1
文件标识 | 父目录ID | 更新时间 | 删除标识位 | 文件名 |
f | S | 20121128000000 | False | f文件名 |
其中,文件标识可采用系统生成的文件逻辑号来表示。表1所示的元数据的数据结构仅为举例,在具体应用时,还可包括其它属性或仅包含表1中的部分属性。
S402,终端A向云端的服务器发送将文件f从目录S移动到目录D的请求。
其中,该请求中可以包括用户的账号,文件f的标识,目标目录D的标识,操作类型。本实施例中,操作类型为移动操作。
S404,服务器在源目录S下创建文件f的代理元数据f’,并在文件f的元数据中将文件f的父目录修改为目标目录D。
服务器根据接收到的请求中携带的用户的账号获取用户存储在云端的数据。在用户的数据中查找文件f的元数据,并在文件f的元数据中将文件f的父目录修改为目标目录D。如图5所示,图5为文件f的移动示意图。移动前目录A下面有源目录S和目标目录D,源目录S下面有文件f。移动后源目录S下存放文件f的代理元数据f’,文件f位于目录D下。
其中,移动后的文件f的元数据的数据结构如表2所示:
表2
文件标识 | 父目录ID | 更新时间 | 删除标识位 | 文件名 |
f | D | 20121128120000 | False | f文件名 |
文件f的代理元数据f’的数据结构如表3所示:
表3
在移动文件的过程中,有可能在目录D中已经存在有文件f的代理元数据f’。因此,服务器还可以先检查目标目录D下面是否有该文件f的代理元数据;如果没有,则直接执行步骤S404;如果目标目录D下面有该文件f的代理元数据,则服务器还进一步删除目标目录D下的该文件f的代理元数据,并执行步骤S404。
S406,服务器向该用户与服务器同步的终端B推送更新通知。
终端可以主动向服务器发起同步第一目录的请求,也可以根据服务器发送的关于第一目录的更新通知来发起同步请求。本实施例以服务器向终端发送更新通知为例进行说明。
当用户有多个终端与服务器保持同步时,服务器可以维护用户的各个在线终端的连接。当服务器检测到用户的数据发生更新后,可以分别向用户已连接到服务器的各同步终端发送更新通知。在发起更新通知时,可以不再向发起移动请求中终端A发送。
服务器可以分别发送源目录S和目标目录D的更新通知,也可以以一条更新通知来通知源目录S和目标目录D的更新。
S408,终端B向服务器发起同步目录S的同步请求。
其中,同步请求中携带目录S的标识和同步令牌环syncToken,该同步令牌环syncToken用来表示每次的同步的序列号。
S410,服务器检测目录S下的更新数据,检测到更新数据为文件f的代理元数据时,将该代理元数据返回给终端。
服务器接收到终端B发起的同步目录S的请求后,会返回目录S下新增或修改的文件的元数据。具体的,服务器根据终端B请求的syncToken检测出源目录S下自从上次的syncToken后的所有的更新数据,同时产生一个新的syncToken做下次该终端端同步的syncToken,最后服务器返回更新数据和新的syncToken。
假设用户发起同步目录S和目录D时,携带的syncToken为20121128000000,服务器检测出自从20121128000000后源目录S的更新数据为文件的代理元数据f’,返回源目录S下的更新数据,并且设置新的syncToken为20121128120000.
S412,终端B根据服务器返回的代理元数据f’将本地的文件f设置为隐藏。
终端B接收到服务器返回的更新数据后,根据数据中的移动标记确定文件f已从目录S中移走。终端B在本地查找到文件f的元数据,在文件f的元数据中将文件f设置为隐藏。具体的,被设置为隐藏的文件f的元数据的数据结构如表4所示:
表4
文件标识 | 父目录 | 更新时间 | 显示标识符 | 文件名 |
f | D | 20121128120000 | No | f文件名 |
文件f被设置成隐藏后,在目录S下将不会出现文件f,使得目录S保持了与云端的同步。同时,又避免了删除文件f,使得后续在同步目录D时,可以直接将文件f移动到目录D中。
当然,终端B也可以不将文件f设置为隐藏,而直接将文件f的父目录更改为目录D,这样,同样能使文件f从目录S中移走。但是,当用户仅选择性同步目录S,而不同步目录D时,这种方式会导致目录D也发生变化,影响用户体验。
本实施例以将文件f设置成隐藏为例进行说明。
S414,终端B向服务器发起同步目录D的同步请求。
其中,同步请求中携带目录D的标识和同步令牌环syncToken。
S416,服务器检测目录D下的更新数据,检测到更新数据为文件f的元数据时,将该文件f的元数据返回给终端。
服务器检测更新数据的过程可参考步骤S410中的说明,这里不再赘述。
S418,终端B根据服务器返回文件f的元数据将本地的文件f的父目录更改为目录D。
终端B接收到文件f的元数据后,发现文件f的父目录更改为目录D,则查找本地的文件f的元数据,在查找到的元数据中将f的父目录更改为目录D。另外,终端B还进一步判断文件f的状态,如果文件f已被设置为隐藏状态,则终端B还进一步将文件f的状态更改为显示状态。
需要说明的是,上述步骤S408-S412与步骤S414-S418之间没有先后顺序,终端B可以先同步目录S,也可以先同步目录D。
上述方法实施例可以应用在云端服务器和终端的同步中,其中实现同步的网络架构如图6所示,可以包括:客户端,同步服务器和推送服务器。
其中,同步服务器和推送服务器均位于云端,两者可以合设在一个物理设备中。本发明实施例所称的服务器是云端的同步服务器和推送服务器的合称,不过,本发明实施例中推送服务器可以是可选的,在不需要推送服务器的实施例中本发明实施例中所称的服务器则指同步服务器。
客户端运行在用户终端上,实现终端与同步服务器之间的同步。客户端和同步服务器可以通过HTTP协议通信。另外,客户端可以通过注册连接到推送服务器,以接收推送服务器推送的消息。客户端和推送服务器可以通过HTTP或者XMPP协议来建立连接。
上述网络架构中各设备之间的交互过程如下:终端中的客户端首先建立与推送服务器之间的连接。当同步服务器检测出有数据更新时,同步服务器向推送服务器发送更新通知。推送服务器将该更新通知推送到终端中的客户端。客户端根据该更新通知发起与同步服务器的同步。
下面对上述网络结构中的各设备的结构进行详细介绍。如图7所示,图7为本发明实施例提供的与终端进行同步的服务器700的结构示意图,该服务器700为实现云端的功能的装置。该服务器700可以包括:
接收单元701,用于接收将文件从第一目录移动到第二目录的请求,以及请求中携带该文件的标识和第二目录的标识;
处理单元702,用于根据接收单元701接收到的该文件的标识查找该文件的元数据,在该文件的元数据中将该文件的父目录标识更改为第二目录的标识,并在第一目录下创建该文件的代理元数据,该代理元数据用于表示该文件已移动到所述第二目录;
同步单元703,用于将该文件的代理元数据发送给终端,以通过终端本地的该文件来进行服务器和终端之间的同步。
其中,接收单元701接收到的请求中携带有需要移动的文件的标识以及该文件的目标目录的标识。而本实施例中,要移动的文件的源目录为第一目录,目标目录为第二目录,因此服务器接收到的请求中需要携带第二目录的标识。对于文件的源目录的标识则可以携带,也可以不携带。
处理单元702在接收单元701接收到移动文件的请求后,可以根据请求的名称或者请求中指定的操作类型来确定接收到的请求为执行移动操作的请求。其中,处理单元702在将文件的父目录标识更改为第二目录的标识时,还进一步用于判断第二目录下是否存在用于指示该文件已从第二目录移除的代理元数据;若第二目录下存在用于指示该文件已从第二目录移除的代理元数据,则删除第二目录下的代理元数据。
同步单元703检测要同步的目录中自上次同步后的更新数据,将检测到的更新数据发送给终端。比如,本实施例,当要与终端同步第一目录时,同步单元703检测第一目录在本次同步与上次同步期间的更新数据,在确定该更新数据包括代理元数据时,则将第一目录下的代理元数据发送给终端。当要同步第二目录时,同步单元703检测第二目录在本次同步与上次同步期间的更新数据,在确定该更新数据包括有被移动到第二目录的文件的元数据时,将该文件的元数据发送给终端。
在本发明实施例中,通过更改文件的父目录的方式将文件从源目录移动到目的目录,并在源目录下为已移动到目标目录的文件创建代理元数据,使得终端在同步源目录和目标目录时,可以识别出服务器侧发生的是移动操作,从而在终端本地按移动操作执行,而无需从服务器侧重新下载文件,节约了网络资源。而且本发明通过更改文件的父目录的方式将文件从源目录移动到目的目录,使得文件的逻辑号保持不变,从而可以保持原有关联文件f的共享、公开以及外链的链接仍然有效。
另外,为了节约存储资源,在本发明的另一实施例中,还可以定期清除代理元数据。如图8所示,图8为本发明另一实施例提供的与终端进行同步的服务器700的结构示意图,该服务器700在图7所示实施例的基础上还可以进一步包括:维护单元704,用于根据预设时限,删除服务器中超期的代理元数据。
另外,该服务器还可以在图7所示实施例的基础上进一步包括:通知单元705,用于向与该服务器同步的终端发送第一目录和第二目录的更新通知,以便该终端根据所述更新通知发起同步所述第一目录或第二目录的请求。
图7和图8所示实施例中的各单元的功能的具体实现可参考方法实施例部分,这里不再赘述。
本发明另一实施例提供的与服务器进行同步的终端900如图9所示。该终端900可以包括:
同步单元901,用于在服务器通过在文件的元数据中更改该文件的父目录标识的方式将该文件从第一目录移动到第二目录,并在第一目录下创建该文件的代理元数据后,从服务器接收该文件的代理元数据,并提供给处理单元902,其中,该代理元数据用于表示该文件已移动到第二目录;
处理单元902,用于根据该代理元数据在终端本地查找该文件的元数据,通过在本地查找到的该文件的元数据来完成与所述服务器的同步。
其中,代理元数据可以包括文件的标识,第二目录的标识以及移动标记。其中,移动标记用于指示该文件已发生移动,终端在接收到更新数据后,可以根据移动标记来区分是代理元数据还是元数据。第二目录为文件移动时的目标目录,即该文件当前的父目录。
处理单元902具体可用于根据代理元数据中的移动标记确定该文件已发生移动;根据该文件的标识在本地查找所述文件的元数据;在查找到的该文件的元数据中将该文件的父目录标识更改为第二目录的标识。
在本发明另一实施例中,同步单元901还可用于从所述服务器接收所述文件的元数据。本实施例中,处理单元902的具体结构可以如图10所示,该处理单元902具体可以包括:
第一操作模块9021,用于根据代理元数据在终端本地查找该文件的元数据,通过在本地查找到的该文件的元数据来完成本地的第一目录与服务器中的第一目录的同步;
第二操作模块9022,用于根据接收到的文件的元数据完成本地的第二目录与服务器中的第二目录的同步。
其中,同步单元901从服务器接收的文件的元数据可包括文件的标识和第二目录的标识。第二操作模块9022,具体可用于根据接收到的文件的元数据中的该文件的标识在本地查找该文件的元数据;在查找到的该文件的元数据中将该文件的父目录标识更改为第二目录的标识。
第一操作模块9021具体可用于根据代理元数据中的移动标记确定该文件已发生移动;根据该代理元数据中的文件的标识在本地查找该文件的元数据;判断查找到的该文件的元数据中该文件的父目录标识是否为第二目录的标识;若该文件的父目录标识不是第二目录的标识,则在查找到的该文件的元数据中将该文件设置为隐藏;若该文件的父目录标识是所述第二目录的标识,则不对所述文件做处理。
另外,第二操作模块9022还用于在查找到该文件的元数据后,确定第二文件的状态,若第二文件处于隐藏状态,则在第二文件的元数据中将第二文件更改为显示状态。
图10所示的终端900可以主动向服务器发起同步第一目录的请求,也可以根据服务器发送的关于第一目录的更新通知来发起同步请求。在接收更新通知的实施例中,图10所示的终端900中的同步单元901还用于与服务器建立连接,在服务器将文件从第一目录移动到第二目录后,接收服务器发送的关于第一目录和第二目录的更新通知。
图9和图10所示实施例中的各单元的功能的具体实现可参考方法实施例部分,这里不再赘述。
需要说明的是,本发明图7和图8所示实施例中的服务器700可基于计算机的硬件结构来实现,如图11所述,该装置700的硬件结构包括存储器1101、收发器1102,处理器1103和总线1104。
其中,处理器1103、存储器1101和收发器1102通过总线1104通信连接。
存储器1101可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器1101可以存储操作系统和其他应用程序的指令以及应用数据。存储器1101中存储的指令由处理器1103来运行执行。
本发明实施例中存储器1101可用于存储实现图7以及图8所示实施例中各功能单元的指令。
收发器1102用来实现装置700与其他设备之间的通信。
本发明实施例中,收发器1102用于接收来自终端的消息以及向终端发送消息。
处理器1103可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序。
本发明实施例中,处理器1103用于执行存储器1101中的指令,具体可执行图2所示方法实施例中的步骤,这里不再赘述。
总线1104可包括一通路,在同步装置700各个部件(例如处理器1103、存储器1101和接收器1102)之间传送信息。
上述图9和图10所示实施例中的终端900同样可基于计算机的硬件结构来实现,如图12所述,该终端900的硬件结构包括存储器1201、收发器1202,处理器1203和总线1204。
其中,处理器1203、存储器1201和收发器1202通过总线1204通信连接。
存储器1201可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器1201可以存储操作系统和其他应用程序的指令以及应用数据。存储器1201中存储的指令由处理器1203来运行执行。
本发明实施例中存储器1201可用于存储实现图9以及图10所示实施例中各功能单元的指令。
收发器1202用来实现终端900与其他设备或通信网络(例如但不限于以太网,无线接入网(Radio Access Network,RAN),无线局域网(Wireless Local Area Network,WLAN)等)之间的通信。
本发明实施例中,收发器1202用于接收来自云端的服务器的消息以及向云端的服务器发送消息。
处理器1203可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序。
本发明实施例中,处理器1203用于执行存储器1201中的指令,具体可执行图3所示方法实施例中的步骤,这里不再赘述。
总线1204可包括一通路,在终端900各个部件(例如处理器1203、存储器1201和收发器1202)之间传送信息。
通过以上的实施例的描述,本领域普通技术人员可以理解:实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如上述方法实施例的步骤,所述的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述,仅为本发明的具体实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (16)
1.一种终端与服务器进行同步的方法,其特征在于,所述方法包括:
服务器接收将文件从第一目录移动到第二目录的请求,所述请求中携带所述文件的标识和所述第二目录的标识;
服务器根据所述文件的标识查找所述文件的元数据,在所述文件的元数据中将所述文件的父目录标识更改为所述第二目录的标识,并在所述第一目录下创建所述文件的代理元数据,所述代理元数据用于表示所述文件已移动到第二目录;
所述服务器将所述文件的代理元数据发送给所述终端,所述文件的代理元数据用以同步第一目录;所述服务器将所述文件的元数据发送给所述终端,所述文件的元数据用以同步第二目录。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述终端根据所述文件的代理元数据更新所述终端中的第一目录,并根据所述文件的元数据更新所述终端中的第二目录。
3.根据权利要求2所述的方法,其特征在于,所述文件的元数据包括所述文件的标识和所述第二目录的标识;
所述根据所述文件的元数据更新所述终端中的第二目录具体包括:
所述终端根据所述文件的元数据中的所述文件的标识在本地查找所述文件的元数据;
在查找到的所述文件的元数据中将所述文件的父目录标识更改为所述第二目录的标识。
4.根据权利要求3所述的方法,其特征在于,所述代理元数据中包括所述文件的标识,第二目录的标识以及用于表示所述文件已发生移动的移动标记;
所述终端根据所述文件的代理元数据更新所述终端中的第一目录具体包括:
所述终端根据所述代理元数据中的移动标记确定所述文件已发生移动;
根据所述代理元数据中的文件的标识在本地查找所述文件的元数据;
判断查找到的所述文件的元数据中所述文件的父目录标识是否为所述第二目录的标识;
若所述文件的父目录标识不是所述第二目录的标识,则在查找到的所述文件的元数据中将所述文件设置为隐藏;
若所述文件的父目录标识是所述第二目录的标识,则不对所述文件做处理。
5.根据权利要求4所述的方法,其特征在于,在所述终端根据所述文件的元数据中的所述文件的标识在本地查找到所述文件的元数据后,所述方法还包括:确定所述文件的状态,若所述文件为隐藏状态,则在所述文件的元数据中将所述文件更改为显示状态。
6.根据权利要求1-5任一项所述的方法,其特征在于,在所述服务器根据所述文件的标识查找所述文件的元数据后,所述方法还进一步包括:
服务器判断所述第二目录下是否存在表明所述文件已从所述第二目录移走的代理元数据;
若所述第二目录下存在用于表明所述文件已从所述第二目录移走的代理元数据,则删除所述代理元数据。
7.一种终端与服务器进行同步的方法,其特征在于,包括:
在服务器通过在文件的元数据中更改所述文件的父目录标识的方式将所述文件从第一目录移动到第二目录,并在第一目录下创建所述文件的代理元数据后,终端从所述务器接收所述文件的代理元数据,所述代理元数据用于表示所述文件已移动到第二目录;
所述终端根据所述代理元数据在终端本地查找所述文件的元数据,通过在本地查找到的所述文件的元数据来完成与所述服务器的同步;
所述通过在本地查找到的所述文件的元数据来完成与所述服务器的同步具体包括:通过在本地查找到的所述文件的元数据来完成所述终端中的第一目录与所述服务器中的第一目录的同步;
所述方法还包括:
所述终端从所述服务器接收所述文件的元数据;
所述终端根据接收到的所述文件的元数据完成所述终端中的第二目录与所述服务器中的第二目录的同步。
8.根据权利要求7所述的方法,其特征在于,所述从所述服务器接收的所述文件的元数据包括所述文件的标识和所述第二目录的标识;
所述终端根据所述文件的元数据完成所述终端中的第二目录与所述服务器中的第二目录的同步具体包括:
所述终端根据接收到的所述文件的元数据中的所述文件的标识在本地查找所述文件的元数据;
在查找到的所述文件的元数据中将所述文件的父目录标识更改为所述第二目录的标识。
9.根据权利要求7所述的方法,其特征在于,所述代理元数据中包括所述文件的标识,第二目录的标识以及用于表示所述文件已发生移动的移动标记;
所述终端根据所述代理元数据在终端本地查找所述文件的元数据,通过在本地查找到的所述文件的元数据来完成所述终端中的第一目录与所述服务器中的第一目录的同步具体包括:
所述终端根据所述代理元数据中的移动标记确定所述文件已发生移动;
根据所述代理元数据中的文件的标识在本地查找所述文件的元数据;
判断查找到的所述文件的元数据中所述文件的父目录标识是否为所述第二目录的标识;
若所述文件的父目录标识不是所述第二目录的标识,则在查找到的所述文件的元数据中将所述文件设置为隐藏;
若所述文件的父目录标识是所述第二目录的标识,则不对所述文件做处理。
10.根据权利要求9所述的方法,其特征在于,在所述终端根据所述文件的元数据中的所述文件的标识在本地查找到所述文件的元数据后,所述方法还包括:确定所述文件的状态,若所述文件为隐藏状态,则在所述文件的元数据中将所述文件更改为显示状态。
11.一种与终端进行同步的服务器,其特征在于,所述服务器包括:
接收单元,用于接收将文件从第一目录移动到第二目录的请求,所述请求中携带所述文件的标识和所述第二目录的标识;
处理单元,用于根据所述文件的标识查找所述文件的元数据,在所述文件的元数据中将所述文件的父目录标识更改为所述第二目录的标识,并在所述第一目录下创建所述文件的代理元数据,所述代理元数据用于表示所述文件已移动到所述第二目录;
同步单元,用于将所述文件的代理元数据发送给终端,以通过所述终端本地的所述文件来进行所述服务器和所述终端之间的同步;
所述同步单元还用于将所述文件的元数据发送给所述终端;所述文件的代理元数据用以同步第一目录,所述文件的元数据用以同步第二目录。
12.如权利要求11所述的服务器,其特征在于,所述处理单元在将所述文件的父目录标识更改为所述第二目录的标识时,还进一步用于判断所述第二目录下是否存在用于表示所述文件已从所述第二目录移除的代理元数据;若所述第二目录下存在用于指示所述文件已从所述第二目录移除的代理元数据,则删除所述第二目录下的代理元数据。
13.一种与服务器进行同步的终端,其特征在于,包括:
同步单元,用于在服务器通过在文件的元数据中更改所述文件的父目录标识的方式将所述文件从第一目录移动到第二目录,并在第一目录下创建所述文件的代理元数据后,从所述服务器接收所述文件的代理元数据,并提供给处理单元,所述代理元数据用于表示所述文件已移动到第二目录;
所述处理单元,用于根据所述代理元数据在终端本地查找所述文件的元数据,通过在本地查找到的所述文件的元数据来完成与所述服务器的同步;
所述同步单元还用于从所述服务器接收所述文件的元数据;
所述处理单元具体包括:
第一操作模块,用于根据所述代理元数据在终端本地查找所述文件的元数据,通过在本地查找到的所述文件的元数据来完成本地的第一目录与所述服务器中的第一目录的同步;
第二操作模块,用于根据接收到的所述文件的元数据完成本地的第二目录与所述服务器中的第二目录的同步。
14.如权利要求13所述的终端,其特征在于,所述从所述服务器接收的所述文件的元数据包括所述文件的标识和所述第二目录的标识;
所述第二操作模块具体用于根据接收到的所述文件的元数据中的所述文件的标识在本地查找所述文件的元数据;在查找到的所述文件的元数据中将所述文件的父目录标识更改为所述第二目录的标识。
15.如权利要求13所述的终端,其特征在于,所述代理元数据中包括所述文件的标识,第二目录的标识以及用于表示所述文件已发生移动的移动标记;
所述第一操作模块具体用于根据所述代理元数据中的移动标记确定所述文件已发生移动;根据所述代理元数据中的文件的标识在本地查找所述文件的元数据;判断查找到的所述文件的元数据中所述文件的父目录标识是否为所述第二目录的标识;若所述文件的父目录标识不是所述第二目录的标识,则在查找到的所述文件的元数据中将所述文件设置为隐藏;若所述文件的父目录标识是所述第二目录的标识,则不对所述文件做处理。
16.如权利要求14所述的终端,其特征在于,所述第二操作模块还用于在查找到所述文件的元数据后,确定所述文件的状态,若所述文件处于隐藏状态,则在所述文件的元数据中将所述文件更改为显示状态。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310270933.8A CN103312489B (zh) | 2013-06-29 | 2013-06-29 | 一种终端与服务器进行同步的方法和装置 |
PCT/CN2014/080993 WO2014206346A1 (zh) | 2013-06-29 | 2014-06-27 | 一种终端与服务器进行同步的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310270933.8A CN103312489B (zh) | 2013-06-29 | 2013-06-29 | 一种终端与服务器进行同步的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103312489A CN103312489A (zh) | 2013-09-18 |
CN103312489B true CN103312489B (zh) | 2016-12-07 |
Family
ID=49137300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310270933.8A Active CN103312489B (zh) | 2013-06-29 | 2013-06-29 | 一种终端与服务器进行同步的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103312489B (zh) |
WO (1) | WO2014206346A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312489B (zh) * | 2013-06-29 | 2016-12-07 | 华为技术有限公司 | 一种终端与服务器进行同步的方法和装置 |
CN103500129B (zh) * | 2013-10-16 | 2017-08-11 | 华为技术有限公司 | 一种备份对象的发送、备份方法、生产端、灾备端及系统 |
CN103595776A (zh) * | 2013-11-05 | 2014-02-19 | 福建网龙计算机网络信息技术有限公司 | 分布式缓存方法及系统 |
CN104935966A (zh) * | 2015-06-03 | 2015-09-23 | 无锡天脉聚源传媒科技有限公司 | 一种分类视频信息的复制方法及装置 |
CN104994164A (zh) * | 2015-07-08 | 2015-10-21 | 浪潮(北京)电子信息产业有限公司 | 一种统计目录信息的方法和装置 |
CN107346338B (zh) * | 2017-06-30 | 2021-01-01 | 武汉斗鱼网络科技有限公司 | 文件目录排序方法及装置 |
CN110019208A (zh) * | 2017-11-14 | 2019-07-16 | 中国移动通信有限公司研究院 | 一种数据迁移方法、装置和介质 |
CN110275863B (zh) * | 2019-06-26 | 2022-03-25 | 北京达佳互联信息技术有限公司 | 文件移动方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1436413A (zh) * | 2000-04-10 | 2003-08-13 | 捷讯研究有限公司 | 将信息从主机系统推送到移动数据通信设备的系统和方法 |
CN1954317A (zh) * | 2004-05-26 | 2007-04-25 | 诺基亚公司 | 用于管理媒体项的方法、系统、计算机程序和设备 |
CN102693233A (zh) * | 2011-03-23 | 2012-09-26 | 中兴通讯股份有限公司 | 一种实现电子书签的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312489B (zh) * | 2013-06-29 | 2016-12-07 | 华为技术有限公司 | 一种终端与服务器进行同步的方法和装置 |
-
2013
- 2013-06-29 CN CN201310270933.8A patent/CN103312489B/zh active Active
-
2014
- 2014-06-27 WO PCT/CN2014/080993 patent/WO2014206346A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1436413A (zh) * | 2000-04-10 | 2003-08-13 | 捷讯研究有限公司 | 将信息从主机系统推送到移动数据通信设备的系统和方法 |
CN1954317A (zh) * | 2004-05-26 | 2007-04-25 | 诺基亚公司 | 用于管理媒体项的方法、系统、计算机程序和设备 |
CN102693233A (zh) * | 2011-03-23 | 2012-09-26 | 中兴通讯股份有限公司 | 一种实现电子书签的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2014206346A1 (zh) | 2014-12-31 |
CN103312489A (zh) | 2013-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103312489B (zh) | 一种终端与服务器进行同步的方法和装置 | |
US9058334B2 (en) | Parallel file system processing | |
US9400800B2 (en) | Data transport by named content synchronization | |
CN102404338B (zh) | 一种文件同步方法和装置 | |
CN103379159B (zh) | 一种分布式Web站点数据同步的方法 | |
TWI549080B (zh) | The method, system and device for sending information of category information | |
CN107315825B (zh) | 一种索引更新系统、方法及装置 | |
CN102611745B (zh) | 文件在线迁移方法、装置和系统 | |
CN104488248B (zh) | 一种文件同步方法、服务器及终端 | |
CN104980486A (zh) | 使用等同匹配网络名称的集合同步 | |
CN103428264B (zh) | 数据同步的方法、设备及系统 | |
US10021181B2 (en) | System and method for discovering a LAN synchronization candidate for a synchronized content management system | |
EP1788493A1 (en) | Detecting changes in data | |
CN107181686B (zh) | 路由表的同步方法、装置及系统 | |
EP3062486A1 (en) | Methods, apparatuses and computer program products for enabling intelligent merging of modified data | |
CN102917061A (zh) | 资源同步方法和系统 | |
US20150363421A1 (en) | Directories in distributed file systems | |
CN104283926A (zh) | 一种数据同步方法、装置及服务器 | |
CN104636437A (zh) | 一种事件通知方法、监听器的处理方法及装置 | |
JP2015026207A (ja) | ファイル管理プログラム,ファイル管理装置及びファイル管理方法 | |
CN104079623A (zh) | 多级云存储同步控制方法及系统 | |
TW200843433A (en) | Efficient detection of deleted objects against a stateless content directory service | |
CN102624932A (zh) | 基于索引的异地云数据同步方法 | |
AU2011358857B2 (en) | Method and apparatus for managing content in a processing device | |
CN103685405B (zh) | 网络服务系统及其更新固件的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |