CN104488248B - 一种文件同步方法、服务器及终端 - Google Patents

一种文件同步方法、服务器及终端 Download PDF

Info

Publication number
CN104488248B
CN104488248B CN201480001814.5A CN201480001814A CN104488248B CN 104488248 B CN104488248 B CN 104488248B CN 201480001814 A CN201480001814 A CN 201480001814A CN 104488248 B CN104488248 B CN 104488248B
Authority
CN
China
Prior art keywords
terminal
file
record data
version number
synchronous
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
Application number
CN201480001814.5A
Other languages
English (en)
Other versions
CN104488248A (zh
Inventor
徐开富
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN104488248A publication Critical patent/CN104488248A/zh
Application granted granted Critical
Publication of CN104488248B publication Critical patent/CN104488248B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (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)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了一种文件同步方法、服务器及终端,其中方法包括:接收终端发送的文件同步请求;响应所述文件同步请求,从服务器保存的所述文件的各版本数据中查找第一记录数据,所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录;发送所述第一记录数据至所述终端,以使所述终端根据所述第一记录数据及所述终端上的第二记录数据得到所述终端应执行的操作,所述第二记录数据包括所述终端在最近一次同步所述文件之后对所述文件执行的操作记录。本申请可以缩短文件同步的时间,减少网络资源消耗、提高同步的效率。

Description

一种文件同步方法、服务器及终端
技术领域
本申请涉及数据同步技术领域,尤其涉及一种文件同步方法、服务器及终端。
背景技术
随着互联网技术的发展和信息化程度的提高,为了提高数据管理的便捷性和安全性,终端用户可凭借数据同步技术,将一台终端上的文件数据同步备份到其他终端,实现在不同终端上管理同一份文件数据。目前,文件数据同步通常采用两种方式,其中,方式一是:终端向服务器端查询文件数据的目录结构,对比终端与服务器端各自保存的文件数据的目录结构,根据双方目录结构的差异更新终端上的文件数据;方式二是:终端下载服务器端所保存的文件数据的目录结构,终端对比其与服务器端各自保存的文件数据的目录结构,根据双方目录结构的差异更新终端上的文件数据。
在方式一中,终端每次同步文件数据,都需要与服务器端进行多次交互,遍历服务器端所保存的文件数据的每一层目录、子目录及子文件,然后与终端保存的文件数据的目录结构进行比较,因此同步时耗时较长。在方式二中,终端在同步前,要将服务器端保存的文件数据的目录结构下载到本地,当文件数据的目录结构较大时,下载目录结构不仅会增加带宽压力,也会消耗较长时间,影响同步的效率。
发明内容
本申请提供了一种文件同步方法、服务器及终端,可提高文件数据的同步效率,同时减少同步文件数据时的网络资源消耗和带宽压力。
本申请第一方面提供一种文件同步方法,包括:
接收终端发送的文件同步请求;
响应所述文件同步请求,从服务器保存的所述文件的各版本数据中查找第一记录数据,所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录;
发送所述第一记录数据至所述终端,以使所述终端根据所述第一记录数据及所述终端上的第二记录数据得到所述终端应执行的操作,所述第二记录数据包括所述终端在最近一次同步所述文件之后对所述文件执行的操作记录。
结合第一方面,在第一种可能的实现方式中,所述文件同步请求包括所述终端最近一次同步所述文件的版本号以及本次同步的最高版本号;
所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后产生的全部操作记录,其中所述预定版本的版本号高于所述终端最近一次同步所述文件的版本号,且低于或等于本次同步的最高版本号。
结合第一方面,在第二种可行的实施方式中,所述文件同步请求包括所述终端最近一次同步所述文件的版本号以及数量阈值;
所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后依次产生的预定数量的操作记录,其中所述预定版本的版本号高于所述终端最近一次同步所述文件的版本号,所述预定数量的值等于所述数量阈值。
结合第一方面以及第一方面的第一和第二种可行的实施方式,在第三种可行的实施方式中,所述发送所述第一记录数据至所述终端之后,所述方法还包括:
接收所述终端发送的所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识;
根据所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识,更新所述用户对所述终端的同步记录;
查询所述用户的其他终端最近一次同步所述文件的版本号;
若所述终端本次同步所述文件的版本号低于所述用户的其他终端最近一次同步所述文件的版本号,则从所述服务器保存的所述文件的各版本数据中,删除在接收所述文件同步请求的之前产生的操作记录。
本申请第二方面提供一种文件同步方法,包括:
发送文件同步请求至服务器;
查找第二记录数据,所述第二记录数据包括终端在最近一次同步所述文件之后对所述文件执行的操作记录;
接收所述服务器响应所述文件同步请求而发送的第一记录数据,所述第一记录数据包括所述服务器保存的所述文件的各版本数据中预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录;
根据所述第一记录数据和所述第二记录数据得到所述终端应执行的操作,并执行所述操作。
结合第二方面,在第一种可行的实施方式中,所述查找第二记录数据,包括:
查找所述终端在最近一次同步所述文件之后对所述文件执行的每一条操作记录;
按照操作路径拆分或合并所述每一条操作记录,得到所述第二记录数据。
结合第二方面,在第二种可行的实施方式中,所述第一记录数据包括至少一条操作记录;
所述根据所述第一记录数据和所述第二记录数据得到所述终端应执行的操作,并执行所述操作,包括:
按照操作路径拆分或合并所述至少一条操作记录,以简化所述第一记录数据;
根据简化后的第一记录数据和所述第二记录数据,得到所述终端应执行的操作,并执行所述操作。
结合第二方面以及第二方面的第一和第二种可行的实施方式,在第三种可行的实施方式中,所述根据所述第一记录数据和所述第二记录数据得到所述终端应执行的操作,并执行所述操作之后,所述方法还包括:
将所述第一记录数据中所述文件的最高版本号记录为所述终端本次同步所述文件的版本号;
发送所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识至所述服务器,以使所述服务器更新所述用户对所述终端的同步记录。
本申请第三方面提供一种服务器,包括:
第一接收模块,用于接收终端发送的文件同步请求;
查找模块,用于响应所述文件同步请求,从服务器保存的所述文件的各版本数据中查找第一记录数据,,所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录;
发送模块,用于发送所述第一记录数据至所述终端,以使所述终端根据所述第一记录数据及所述终端上的第二记录数据得到所述终端应执行的操作,所述第二记录数据包括所述终端在最近一次同步所述文件之后对所述文件执行的操作记录。
结合第三方面,在第一种可行的实施方式中,所述文件同步请求包括所述终端最近一次同步所述文件的版本号以及本次同步的最高版本号;
所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后产生的全部操作记录,其中所述预定版本的版本号高于所述终端最近一次同步所述文件的版本号,且低于或等于本次同步的最高版本号。
结合第三方面,在第二种可行的实施方式中,所述文件同步请求包括所述终端最近一次同步所述文件的版本号以及数量阈值;
所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后依次产生的预定数量的操作记录,其中所述预定版本的版本号高于所述终端最近一次同步所述文件的版本号,所述预定数量的值等于所述数量阈值。
结合第三方面以及第三方面的第一和第二种可行的实施方式,在第三种可行的实施方式中,所述服务器还包括:
第二接收模块,用于接收所述终端发送的所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识;
更新模块,用于根据所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识,更新所述用户对所述终端的同步记录;
查询模块,用于查询所述用户的其他终端最近一次同步所述文件的版本号;
删除模块,用于在所述终端本次同步所述文件的版本号低于所述用户的其他终端最近一次同步所述文件的版本号时,从所述服务器保存的所述文件的各版本数据中删除在接收所述文件同步请求的之前产生的操作记录。
本申请第四方面提供一种计算机存储介质,所述计算机存储介质存储有程序,执行所述程序时包括本申请第一方面提供的文件同步方法的全部或部分步骤。
本申请第五方面提供一种服务器,包括:输入装置、输出装置和处理器,所述输入装置、所述输出装置和所述处理器通过总线相连接,其中:
所述输入装置,用于接收终端发送的文件同步请求;
所述处理器,响应所述文件同步请求,从服务器保存的所述文件的各版本数据中查找第一记录数据,所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录;
所述输出装置,用于发送所述第一记录数据至所述终端,以使所述终端根据所述第一记录数据及所述终端上的第二记录数据得到所述终端应执行的操作,所述第二记录数据包括所述终端在最近一次同步所述文件之后对所述文件执行的操作记录。
结合第五方面,在第一种可行的实施方式中,所述文件同步请求包括所述终端最近一次同步所述文件的版本号以及本次同步的最高版本号;
所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后产生的全部操作记录,其中所述预定版本的版本号高于所述终端最近一次同步所述文件的版本号,且低于或等于本次同步的最高版本号。
结合第五方面,在第二种可行的实施方式中,所述文件同步请求包括所述终端最近一次同步所述文件的版本号以及数量阈值;
所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后依次产生的预定数量的操作记录,其中所述预定版本的版本号高于所述终端最近一次同步所述文件的版本号,所述预定数量的值等于所述数量阈值。
结合第五方面以及第五方面的第一和第二种可行的实施方式,在第三种可行的实施方式中,所述输入装置,还用于接收所述终端发送的所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识;
所述处理器还用于:
根据所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识,更新所述用户对所述终端的同步记录;
查询所述用户的其他终端最近一次同步所述文件的版本号;
若所述终端本次同步所述文件的版本号低于所述用户的其他终端最近一次同步所述文件的版本号,则从所述服务器保存的所述文件的各版本数据中,删除在接收所述文件同步请求之前产生的操作记录。
本申请第六方面提供一种终端,包括:
第一发送模块,用于发送文件同步请求至服务器;
查找模块,用于查找第二记录数据,所述第二记录数据包括终端在最近一次同步所述文件之后对所述文件执行的操作记录;
接收模块,用于接收所述服务器响应所述文件同步请求而发送的第一记录数据,所述第一记录数据包括所述服务器保存的所述文件的各版本数据中预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录;
执行模块,用于根据所述第一记录数据和所述第二记录数据得到所述终端应执行的操作,并执行所述操作。
结合第六方面,在第一种可行的实施方式中,所述查找模块,包括:
查找单元,用于查找所述终端在最近一次同步所述文件之后对所述文件执行的每一条操作记录;
第一简化单元,用于按照操作路径拆分或合并所述每一条操作记录,得到所述第二记录数据。
结合第六方面,在第二种可行的实施方式中,所述第一记录数据包括至少一条操作记录;
所述执行模块,包括:
第二简化单元,用于按照操作路径拆分或合并所述至少一条操作记录,以简化所述第一记录数据;
执行单元,用于根据简化后的第一记录数据和所述第二记录数据,得到所述终端应执行的操作,并执行所述操作。
结合第六方面以及第六方面的第一和第二种可行的实施方式,在第三种可行的实施方式中,所述终端还包括:
记录模块,用于将所述第一记录数据中所述文件的最高版本号记录为所述终端本次同步所述文件的版本号;
第二发送模块,用于发送所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识至所述服务器,以使所述服务器更新所述用户对所述终端的同步记录。
本申请第七方面提供一种计算机存储介质,所述计算机存储介质存储有程序,执行所述程序时包括本申请第二方面提供的文件同步方法的全部或部分步骤。
本申请第八方面提供一种终端,包括:输入装置、输出装置和处理器,所述输入装置、所述输出装置和所述处理器通过总线相连接,其中:
所述输出装置,用于发送文件同步请求至服务器;
所述输入装置,用于接收所述服务器响应所述文件同步请求而发送的第一记录数据,所述第一记录数据包括所述服务器保存的所述文件的各版本数据中预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录;
所述处理器用于:
查找第二记录数据,所述第二记录数据包括所述终端在所述最近一次同步所述文件之后对所述文件执行的操作记录;
根据所述第一记录数据和所述第二记录数据得到所述终端应执行的操作,并执行所述操作。
结合第八方面,在第一种可行的实施方式中,所述处理器查找第二记录数据时,具体步骤为:
查找所述终端在最近一次同步所述文件之后对所述文件执行的每一条操作记录;
按照操作路径拆分或合并所述每一条操作记录,得到所述第二记录数据。
结合第八方面,在第二种可行的实施方式中,所述第一记录数据包括至少一条操作记录;
所述处理器根据所述第一记录数据和所述第二记录数据得到所述终端应执行的操作,并执行所述操作时,具体步骤为:
按照操作路径拆分或合并所述至少一条操作记录,以简化所述第一记录数据;
根据简化后的第一记录数据和所述第二记录数据,得到所述终端应执行的操作,并执行所述操作。
结合第八方面以及第八方面的第一和第二种可行的实施方式,在第三种可行的实施方式中,
所述处理器,还用于将所述第一记录数据中所述文件的最高版本号记录为所述终端本次同步所述文件的版本号;
所述输出装置,还用于发送所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识至所述服务器,以使所述服务器更新所述用户对所述终端的同步记录。
本申请中,服务器接收到终端发送的文件同步请求之后,从保存的该文件的各版本数据中查找在终端上次同步该文件之后,该文件产生的操作记录,并发送给该终端,无需与终端进行多次交互,且该文件的这些操作记录与该文件的整个目录结构相比,数据量较小,传输时不仅节约时间,还可减少用户的网络资源消耗。终端可结合服务器发送的操作记录以及该终端本身在上次同步该文件之后对该文件执行的操作记录,确定应执行的操作,无需逐层遍历服务器上的文件目录并与终端的文件目录进行对比,从而可有效减少同步时间,提高同步效率。
附图说明
为了更清楚地说明本申请中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的文件同步方法的一实施例的流程示意图;
图2是本申请提供的文件同步方法的另一实施例的流程示意图;
图3是本申请提供的文件同步方法的又一实施例的流程示意图;
图4是本申请提供的服务器的一实施例的结构示意图;
图5是本申请提供的服务器的另一实施例的结构示意图;
图6是本申请提供的服务器的又一实施例的结构示意图;
图7是本申请提供的终端的一实施例的结构示意图;
图8是本申请提供的终端的另一实施例的结构示意图;
图9是本申请提供的终端的又一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供了一种文件同步方法、服务器及终端,可以缩短同步时间、提高同步效率以及减少网络资源消耗。以下结合附图分别进行详细说明。
请参阅图1,图1为本申请提供的文件同步方法的一实施例的流程示意图。其中,图1所示的文件同步方法具体可由服务器实现,如图1所示,该文件同步方法可以包括以下步骤:
步骤S101,接收终端发送的文件同步请求。
本申请中,服务器接收终端发送的文件同步请求,该文件同步请求可指示该终端本次要同步的文件、该终端最近一次同步该文件的时间、该终端最近一次同步该文件的版本号、和/或该终端本次同步该文件需要服务器提供的数据(包括目录结构和/或操作记录等)。
步骤S102,响应所述文件同步请求,从服务器保存的所述文件的各版本数据中查找第一记录数据,所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录。
具体实现中,第一记录数据为其他终端或数据管理应用发送给服务器的该文件的各版本数据中,在该终端最近一次同步完该文件之后,预定版本的该文件由于各种修改操作,如插入、添加、删除等而产生的操作记录。具体地,上述的预定版本由终端发送的文件同步请求来确定。
作为一种可能的实施方式,文件同步请求可包括终端最近一次同步该文件的版本号以及本次同步的最高版本号。此时,第一记录数据包括预定版本的该文件在该终端最近一次同步该文件之后产生的全部操作记录,其中该预定版本为版本号介于终端最近一次同步该文件的版本号和本次同步的最高版本号之间(包括本次同步的最高版本号)的所有版本,具体地,本次同步的最高版本号可以是当前该文件的最高版本号,也可以是任何一个比最近一次同步的版本号更高的版本号,具体可视终端当前的网络状况而定,例如当终端的网络资源充裕时(如处于宽带网络连接或无线网络连接状态时),本次同步的最高版本号可以是当前该文件的最高版本号;当终端的网络资源匮乏时(如处于移动网络状态时),本次同步的最高版本号可以高于终端最近一次同步该文件的版本号,而且低于当前该文件的最高版本号。举例来说,终端最近一次同步该文件的版本号为V1.0,时间是2014-2-25,9:00:00,当前为止该文件的最高版本号为V9.0,然而终端处于移动网络状态且流量剩余不多,则本次同步的最高版本号可以是V4.0,上述的预定版本为V2.0至V4.0,第一记录数据包括V2.0至V4.0版本的该文件在2014-2-25,9:00:00之后产生的操作记录。
作为一种可能的实施方式,文件同步请求可包括该终端最近一次同步该文件的版本号以及数量阈值。此时,第一记录数据可包括预定版本的该文件在该终端最近一次同步完该文件之后依次产生的预定数量的操作记录,其中该预定版本的版本号高于终端最近一次同步该文件的版本号,该预定数量的值等于该数量阈值。具体实现中,可先从服务器保存的该文件的各版本数据中查找出版本号高于终端最近一次同步该文件的版本号的文件数据,然后以该终端最近一次同步完该文件的时间点为起始点,按照操作时间从先到后的顺序从查找出的文件数据中筛选出预定数量(该预定数量的值等于文件同步请求中的数量阈值)的操作记录,作为第一记录数据。
步骤S103,发送所述第一记录数据至所述终端,以使所述终端根据所述第一记录数据及所述终端上的第二记录数据得到所述终端应执行的操作,所述第二记录数据包括所述终端在最近一次同步所述文件之后对所述文件执行的操作记录。
具体实现中,在步骤S102中查找到的第一记录数据是由至少一条操作记录组成的。
作为一种可能的实施方式,若终端所处的环境网络资源充裕,服务器可直接将查找到的至少一条操作记录发送给终端,以减缓服务器的计算压力。
作为另一种可能的实施方式,若终端处于移动网络环境或网络通道拥塞,此时将第一记录数据发送给终端之前,可先将该至少一条操作记录按照操作路径进行拆分或合并。例如,“MOVEA,f1to f2”可以拆分成“DELETE A,f1”和“ADD A,f2”;“ADD B,f1”、“ADD C,f1”“DELETE B,f1”可以合并成“ADD C,f1”。
拆分该至少一条操作记录,可以将该至少一条操作记录转换成ADD或DELETE这两种只涉及一个路径的基础操作记录;按照操作路径合并这些拆分后得到的基础操作记录,可去掉冗余数据,直观呈现第一记录数据导致的该文件的最终变更,从而可以减少网络资源的消耗和数据传输时间。
在一些可行的实施方式中,发送第一记录数据给终端后,该文件同步方法还可包括:
接收终端发送的该终端的标识信息、该终端本次同步该文件的版本号、以及该终端的用户标识;
根据该终端的标识信息、该终端本次同步该文件的版本号、以及该终端的用户标识,更新用户对该终端的同步记录;
查询该用户的其他终端最近一次同步该文件的版本号;
若该终端本次同步该文件的版本号低于该用户的其他终端最近一次同步该文件的版本号,则从该服务器保存的该文件的各版本数据中,删除在接收该文件同步请求之前产生的操作记录。
具体实现中,用户对该终端的同步记录可包括该终端的标识信息、该终端的用户标识、同步该文件的时间和版本号等。
具体实现中,在同步结束后,若该终端上保存的是该文件的最低版本,则可删除服务器保存的该文件在本次同步开始的时间点之前产生的操作记录,以减少服务器的冗余存储,减缓服务器的存储压力。
在图1所描述的文件同步方法中,服务器接收到终端发送的文件同步请求之后,从保存的该文件的各版本数据中查找在终端上次同步该文件之后,该文件产生的操作记录,并发送给该终端,无需与终端进行多次交互,且该文件的这些操作记录与该文件的整个目录结构相比,数据量较小,传输时不仅节约时间,还可减少用户的网络资源消耗。终端可结合服务器发送的操作记录以及该终端本身在上次同步该文件之后对该文件执行的操作记录,确定应执行的操作,无需逐层遍历服务器上的文件目录并与终端的文件目录进行对比,从而可有效减少同步时间,提高同步效率。
请参阅图2,图2为本申请提供的文件同步方法的另一实施例的流程示意图。其中,图2所示的文件同步方法具体可由终端实现。如图2所示,该文件同步方法可以包括以下步骤:
S201,发送文件同步请求至服务器。
本申请中,终端向服务器发送文件同步请求,该文件同步请求可指示终端本次要同步的文件、终端最近一次同步该文件的时间、终端最近一次同步该文件的版本号、和/或本次同步该文件需要服务器提供的数据(包括目录结构和/或操作记录等)。
S202,查找第二记录数据,所述第二记录数据包括终端在最近一次同步所述文件之后对所述文件执行的操作记录。
本申请中,终端可包括两种:一种是可直接获取到对该文件的操作记录的终端,此类终端一般含有输入装置和处理器,可独立对文件进行操作,例如计算机、平板电脑等;另一种是无法直接获取到文件的操作记录的终端,例如同步U盘。
基于终端类型的不同,终端查找第二记录数据也有相应不同的实施方式。
作为一种可行的实施方式,当终端可以直接获取到对该文件的操作记录时,查找第二记录数据的步骤可包括:首先,查找该终端在最近一次同步完该文件之后对该文件执行的每一条操作记录;然后,按照操作路径拆分或合并这些操作记录,得到第二记录数据。
具体地,拆分是指将一条涉及到多个路径的操作记录拆分成多条只涉及一个路径的基础操作记录,如“MOVEA,f1to f2”可以拆分成“DELETE A,f1”和“ADDA,f2”。合并是指将多条操作路径相同的操作记录合并成数量较少的操作记录,例如“ADD B,f1”、“ADD C,f1”和“DELETE B,f1”可以合并成“ADD C,f1”。拆分合并操作,可将同步时需要的数据简化,去掉冗余的数据,从而缩短同步的时间,提高同步效率。
作为另一种可行的实施方式,当终端无法直接获取到文件的操作记录时,查找第二记录数据的步骤可包括:首先,读取终端在最近一次同步完该文件后得到并保存的该文件的目录信息;然后,将最近一次同步完该文件后得到的该文件的目录信息与该终端当前本地存储的该文件的目录信息进行对比,可得到该终端在最近一次同步完该文件之后对该文件执行的操作记录,包括添加的数据和/或删除的数据等,这些操作记录即为第二记录数据。
S203,接收所述服务器响应所述文件同步请求而发送的第一记录数据,所述第一记录数据包括所述服务器保存的所述文件的各版本数据中预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录。
具体实施中,基于文件同步请求的内容的不同,第一记录数据也相应有几种不同的情况。
作为一种可能的实施方式,文件同步请求可包括终端最近一次同步该文件的版本号以及本次同步的最高版本号。此时,第一记录数据包括预定版本的该文件在该终端最近一次同步该文件之后产生的全部操作记录,其中该预定版本为版本号介于终端最近一次同步该文件的版本号和本次同步的最高版本号之间(包括本次同步的最高版本号)的所有版本,具体地,本次同步的最高版本号可以是当前该文件的最高版本号,也可以是任何一个比最近一次同步的版本号更高的版本号,具体可视终端当前的网络状况而定。
作为一种可能的实施方式,文件同步请求可包括该终端最近一次同步该文件的版本号以及数量阈值。此时,第一记录数据可包括预定版本的该文件在该终端最近一次同步完该文件之后依次产生的预定数量的操作记录,其中该预定版本的版本号高于终端最近一次同步该文件的版本号,该预定数量的值等于该数量阈值。
S204,根据所述第一记录数据和所述第二记录数据得到所述终端应执行的操作,并执行所述操作。
具体实现中,结合在该终端最近一次同步完该文件的时间点之后之后,服务器保存的预定版本的该文件产生的操作记录,以及终端对该文件执行的操作记录,可计算得到本次同步终端需要执行的操作,如:需要添加的数据、需要删除的数据等。
作为一种可能的实施方式,服务器所发送的第一记录数据为服务器直接从该文件的各版本数据中查找出来的未经过简化处理的多条操作记录,此时,根据第一记录数据和第二记录数据得到终端应执行的操作可包括如下步骤:
首先,按照操作路径拆分或合并该多条操作记录,以简化第一记录数据。具体地,拆分是指将一条涉及到多个路径的操作记录拆分成多条只涉及一个路径的基础操作记录,合并是指将多条操作路径相同的操作记录合并成数量较少的操作记录,例如“MOVEA,f1tof2”可以拆分成“DELETE A,f1”和“ADD A,f2”;“ADD B,f1”、“ADD C,f1”、“DELETE B,f1”可以合并成“ADD C,f1”。拆分合并操作,可将同步时需要的数据简化,去掉冗余的数据,从而缩短同步的时间,提高同步效率。
然后,根据简化后的第一记录数据和第二记录数据,得到所述终端应执行的操作,并执行所述操作。此时,第一记录数据和第二记录数据中的操作记录均为只涉及一个操作路径的基础操作记录,则根据第一记录数据和第二记录数据得到终端应执行的操作,可具体为:以终端上次同步完该文件的时间点为起始点,按照操作时间由先到后的顺序将第一记录数据和第二记录数据中操作路径相同的操作记录合并,根据合并后的操作记录即可得到终端应执行的操作。例如:操作路径为磁盘1(f1)的操作记录依次有:“ADD A,f1”、“ADDB,f1”、“ADD C,f1”和“DELETE B,f1”,以上4条操作记录可以合并成“ADD AB,f1”,则终端应执行的操作为:在磁盘1中添加“AB”。
作为一种可行的实施方式,在得到终端应执行的操作并执行该操作之后,该文件同步方法还可包括:
将第一记录数据中该文件的最高版本号记录为该终端本次同步该文件的版本号;发送该终端的标识信息、该终端本次同步该文件的版本号、以及该终端的用户标识至服务器,以使服务器更新该用户对该终端的同步记录。
具体实现中,用户对该终端的同步记录可包括该终端的标识信息、该终端的用户标识、同步该文件的时间和版本号等。
在图2所描述的文件同步方法中,终端向服务器发送文件同步请求,然后查找第二记录数据,并接收服务器发送的第一记录数据,无需与服务器进行多次交互,也无需逐层遍历服务器上的文件目录,而且第一记录数据由终端上次同步该文件之后该文件产生的操作记录组成,与该文件的整个目录结构相比,数据量较小,传输时不仅节约时间,还可减少用户的网络资源消耗。第二记录数据为终端在上次同步完该文件之后对该文件执行过的操作记录,终端可将第一记录数据进行拆分合并后结合第二记录数据,得到终端应执行的操作,不仅可减少冗余数据以及同步时的计算量,缓解终端的计算压力,同时提高同步效率。
请参阅图3,图3为本申请提供的文件同步方法的又一实施例的流程示意图。其中,图3所示的文件同步方法具体可由服务器和终端交互实现。如图3所示,该文件同步方法可以包括以下步骤:
S301,终端发送文件同步请求至服务器。
本申请中,终端向服务器发送文件同步请求,该文件同步请求可指示终端本次要同步的文件、终端最近一次同步该文件的时间、终端最近一次同步该文件的版本号、和/或本次同步该文件需要服务器提供的数据(包括目录结构和/或操作记录等)。
S302,终端查找第二记录数据。
本申请中,第二记录数据包括终端在上次同步完该文件之后对该文件执行的操作记录。其中终端可包括两种:一种是可直接获取到对该文件的操作记录的终端,此类终端一般含有输入装置和处理器,可独立对文件进行操作,例如计算机、平板电脑等;另一种是无法直接获取到文件的操作记录的终端,例如同步U盘。
基于终端类型的不同,终端查找第二记录数据也有相应不同的实施方式。
作为一种可行的实施方式,当终端可以直接获取到对该文件的操作记录时,查找第二记录数据的步骤可包括:首先,查找该终端在最近一次同步完该文件最近一次之后对该文件执行的每一条操作记录;然后,按照操作路径拆分或合并这些操作记录,得到第二记录数据。
作为另一种可行的实施方式,当终端无法直接获取到文件的操作记录时,查找第二记录数据的步骤可包括:首先,读取终端在最近一次同步完该文件后得到并保存的该文件的目录信息;然后,将最近一次同步完该文件后得到的该文件的目录信息与该终端当前本地存储的该文件的目录信息进行对比,可得到终端在最近一次同步完该文件之后对该文件执行的操作记录,包括添加的数据和/或删除的数据等,这些操作记录即为第二记录数据。
步骤S303,服务器查找第一记录数据。
具体实现中,第一记录数据为其他终端或数据管理应用发送给服务器的该文件的各版本数据中,在该终端最近一次同步完该文件之后,预定版本的该文件由于各种修改操作,如插入、添加、删除等而产生的操作记录。具体地,上述的预定版本由终端发送的文件同步请求来确定。
作为一种可能的实施方式,文件同步请求可包括终端最近一次同步该文件的版本号以及本次同步的最高版本号。此时,第一记录数据包括预定版本的该文件在该终端最近一次同步该文件之后产生的全部操作记录,其中该预定版本为版本号介于终端最近一次同步该文件的版本号和本次同步的最高版本号之间(包括本次同步的最高版本号)的所有版本,具体地,本次同步的最高版本号可以是当前该文件的最高版本号,也可以是任何一个比最近一次同步的版本号更高的版本号,具体可视终端当前的网络状况而定。
作为一种可能的实施方式,文件同步请求可包括该终端最近一次同步该文件的版本号以及数量阈值。此时,第一记录数据可包括预定版本的该文件在该终端最近一次同步完该文件之后依次产生的预定数量的操作记录,其中该预定版本的版本号高于终端最近一次同步该文件的版本号,该预定数量的值等于该数量阈值。具体实现中,可先从服务器保存的该文件的各版本数据中查找出版本号高于终端最近一次同步该文件的版本号的文件数据,然后以该终端最近一次同步完该文件的时间点为起始点,按照操作时间从先到后的顺序从查找出的文件数据中筛选出预定数量(该预定数量的值等于文件同步请求中的数量阈值)的操作记录,作为第一记录数据。
步骤S304,服务器将第一记录数据发送给终端。
具体实现中,第一记录数据包括至少一条操作记录,作为一种可能的实施方式,若终端所处的环境网络资源充裕,服务器可直接将查找到的至少一条操作记录发送给终端,以减缓服务器的计算压力。
作为另一种可能的实施方式,若终端处于移动网络环境或网络通道拥塞,此时将第一记录数据发送给终端之前,可先将该至少一条操作记录按照操作路径进行拆分或合并。
步骤S305,终端确定应执行的操作。
具体实现中,终端结合第一记录数据和第二记录数据,可计算得到当前同步需要执行的操作,如:需要添加的数据、需要删除的数据等。
作为一种可能的实施方式,第一记录数据为服务器直接从该文件的各版本数据中查找出来的未经过简化处理的多条操作记录,此时,根据第一记录数据和第二记录数据得到终端应执行的操作,可包括如下步骤:
首先,按照操作路径拆分或合并该多条操作记录,以简化第一记录数据。具体地,拆分是指将一条涉及到多个路径的操作记录拆分成多条只涉及一个路径的基础操作记录,合并是指将多条操作路径相同的操作记录合并成数量较少的操作记录。
然后,根据简化后的第一记录数据和所述第二记录数据,得到所述终端应执行的操作,并执行所述操作。此时,第一记录数据和第二记录数据中的操作记录均为只涉及一个操作路径的基础操作记录,则根据第一记录数据和第二记录数据得到终端应执行的操作,可具体为:以终端上次同步完该文件的时间点为起始点,按照操作时间由先到后的顺序将第一记录数据和第二记录数据中操作路径相同的操作记录合并,根据合并后的操作记录即可得到终端应执行的操作。
步骤S306,终端执行上述应执行的操作。
步骤S307,终端记录本次同步该文件的版本号,具体为将第一记录数据中该文件的最高版本号记录为该终端本次同步该文件的版本号。
步骤S308,终端发送该终端的标识信息、该终端本次同步该文件的版本号、以及该终端的用户标识至服务器。
步骤S309,服务器根据该终端的标识信息、该终端本次同步该文件的版本号、以及该终端的用户标识,更新用户对该终端的同步记录。具体实现中,用户对该终端的同步记录可包括该终端的标识信息、该终端的用户标识、同步时间、同步的版本号等。
步骤S310,服务器查询该用户的其他终端最近一次同步该文件的版本号。
步骤S311,服务器删除冗余操作记录。具体为,若该终端本次同步该文件的版本号低于该用户的其他终端最近一次同步该文件的版本号,则从该服务器保存的该文件的各版本数据中,删除在接收该文件同步请求之前产生的操作记录,以减少服务器的冗余存储,减缓服务器的存储压力。
在图3所描述的文件同步方法中,服务器与终端无需进行多次交互,也无需逐层遍历服务器上的文件目录,可减少同步的时间消耗;终端将操作记录简化后再进行同步,可减少冗余数据,进一步缩短同步的耗时,提高同步效率。
相应的,本申请还提供了可用于实施本申请方法实施例的服务器和终端的装置实施例,下面结合附图对本申请的服务器和终端的结构组成进行举例说明。
请参阅图4,图4为本申请提供的服务器的一实施例的结构示意图。如图4所示,该服务器可包括:第一接收模块401、查找模块402和发送模块403;在一些可能的实施方式中,该服务器还可包括第二接收模块404、更新模块405、查询模块406以及删除模块407中至少一种,其中:
第一接收模块401,用于接收终端发送的文件同步请求。
查找模块402,用于响应所述文件同步请求,从服务器保存的所述文件的各版本数据中查找第一记录数据,所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录。
发送模块403,用于发送所述第一记录数据至所述终端,以使所述终端根据所述第一记录数据及所述终端上的第二记录数据得到所述终端应执行的操作,所述第二记录数据包括所述终端在最近一次同步所述文件之后对所述文件执行的操作记录。
本申请中,服务器接收终端发送的文件同步请求,该文件同步请求可指示该终端本次要同步的文件、该终端最近一次同步该文件的时间、该终端最近一次同步该文件的版本号、和/或该终端本次同步该文件需要服务器提供的数据(包括目录结构和/或操作记录等)。
具体实现中,第一记录数据为其他终端或数据管理应用发送给服务器的该文件的各版本数据中,在该终端最近一次同步完该文件之后,预定版本的该文件由于各种修改操作,如插入、添加、删除等而产生的操作记录。具体地,上述的预定版本由终端发送的文件同步请求来确定。
作为一种可能的实施方式,文件同步请求可包括终端最近一次同步该文件的版本号以及本次同步的最高版本号。此时,第一记录数据包括预定版本的该文件在该终端最近一次同步该文件之后产生的全部操作记录,其中该预定版本为版本号介于终端最近一次同步该文件的版本号和本次同步的最高版本号之间(包括本次同步的最高版本号)的所有版本,具体地,本次同步的最高版本号可以是当前该文件的最高版本号,也可以是任何一个比最近一次同步的版本号更高的版本号,具体可视终端当前的网络状况而定,例如当终端的网络资源充裕时(如处于宽带网络连接或无线网络连接状态时),本次同步的最高版本号可以是当前该文件的最高版本号;当终端的网络资源匮乏时(如处于移动网络状态时),本次同步的最高版本号可以高于终端最近一次同步该文件的版本号,而且低于当前该文件的最高版本号。
作为一种可能的实施方式,文件同步请求可包括该终端最近一次同步该文件的版本号以及数量阈值。此时,第一记录数据可包括预定版本的该文件在该终端最近一次同步完该文件之后依次产生的预定数量的操作记录,该预定版本的版本号高于终端最近一次同步该文件的版本号,该预定数量的值等于该数量阈值。具体实现中,查找模块402可先从服务器保存的该文件的各版本数据中查找出版本号高于终端最近一次同步该文件的版本号的文件数据,然后以该终端最近一次同步完该文件的时间点为起始点,按照操作时间从先到后的顺序从查找出的文件数据中筛选出预定数量(该预定数量的值等于文件同步请求中的数量阈值)的操作记录,作为第一记录数据。
具体实现中,查找模块402查找到的第一记录数据是由至少一条操作记录组成的。
作为一种可能的实施方式,若终端所处的环境网络资源充裕,发送模块403可直接将查找到的至少一条操作记录发送给终端,以减缓服务器的计算压力。
作为另一种可能的实施方式,若终端处于移动网络环境或网络通道拥塞,此时发送模块403将第一记录数据发送给终端之前,可先将该至少一条操作记录按照操作路径进行拆分或合并。例如,“MOVEA,f1to f2”可以拆分成“DELETE A,f1”和“ADD A,f2”;“ADD B,f1”、“ADD C,f1”“DELETE B,f1”可以合并成“ADD C,f1”。
拆分该至少一条操作记录,可以将该至少一条操作记录转换成ADD或DELETE这两种只涉及一个路径的基础操作记录;按照操作路径合并这些拆分后得到的基础操作记录,可去掉冗余数据,直观呈现第一记录数据导致的该文件的最终变更,从而可以减少网络资源的消耗和数据传输时间
作为一种可行的实施方式,如图5所示,该服务器还可包括第二接收模块404、更新模块405、查询模块406、删除模块407中的至少一种,其中:
第二接收模块404,用于接收所述终端发送的所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识。
更新模块405,用于根据所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识,更新所述用户对所述终端的同步记录。
查询模块406,用于查询所述用户的其他终端最近一次同步所述文件的版本号。
删除模块407,用于在所述终端本次同步该文件的版本号低于该用户的其他终端最近一次同步该文件的版本号时,从该服务器保存的该文件的各版本数据中,删除在接收该文件同步请求之前产生的操作记录。
具体实现中,用户对该终端的同步记录可包括该终端的标识信息、该终端的用户标识、同步该文件的时间和版本号等。
具体实现中,在同步结束后,若该终端上保存的是该文件的最低版本,则可删除服务器保存的该文件在本次同步开始的时间点之前产生的操作记录,以减少服务器的冗余存储,减缓服务器的存储压力。
在图4或图5所描述的服务器中,在第一接收模块接收到终端发送的文件同步请求之后,查找模块从服务器保存的该文件的各版本数据中查找在该终端上次同步该文件之后该文件产生的操作记录;发送模块将这些操作记录发送给该终端,服务器无需与终端进行多次交互,且与该文件的整个目录结构相比,这些操作记录的数据量较小,传输时不仅节约时间,还可减少用户的网络资源消耗。终端可结合服务器发送的操作记录以及该终端本身在上次同步该文件之后对该文件执行的操作记录,得到应执行的操作,无需逐层遍历服务器上的文件目录并与终端的文件目录进行对比,从而可有效减少同步时间,提高同步效率。
请参阅图6,图6为本申请提供的服务器的又一实施例的结构示意图。如图6所示,该服务器可包括:输入装置601、输出装置602和处理器603。在本申请的一些实施例中,输入装置601和处理器603之间、输出装置602和处理器603之间可以通过总线或其他方式连接,其中,图6中以通过总线连接为例。
其中,输入装置601,用于接收终端发送的文件同步请求。
处理器603,用于响应所述文件同步请求,从服务器保存的所述文件的各版本数据中查找第一记录数据,所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录。
输出装置602,用于发送所述第一记录数据至所述终端,以使所述终端根据所述第一记录数据及所述终端上的第二记录数据得到所述终端应执行的操作,所述第二记录数据包括所述终端在最近一次同步所述文件之后对所述文件执行的操作记录。
作为一种可能的实施方式,该文件同步请求包括该终端最近一次同步该文件的版本号以及本次同步的最高版本号;此时第一记录数据包括预定版本的该文件在该终端最近一次同步该文件之后产生的全部操作记录,其中该预定版本的版本号高于该终端最近一次同步该文件的版本号,且低于或等于本次同步的最高版本号。
作为一种可能的实施方式,文件同步请求包括该终端最近一次同步该文件的版本号以及数量阈值;此时,第一记录数据包括预定版本的该文件在该终端最近一次同步完该文件之后依次产生的预定数量的操作记录,其中该预定版本的版本号高于终端最近一次同步该文件的版本号,该预定数量的值等于该数量阈值。
作为一种可能的实施方式,第一记录数据中包括至少一条操作记录,此时输出模块602发送第一记录数据至该终端前,可先将其中的至少一条操作记录按照操作路径进行拆分或合并后,再发送给该终端。
作为一种可能的实施方式,输入装置601还用于接收该终端发送的该终端的标识信息、该终端本次同步该文件的版本号、以及该终端的用户标识。
处理器603还用于:
根据该终端的标识信息、该终端本次同步该文件的版本号、以及该终端的用户标识,更新用户对该终端的同步记录;
查询该用户的其他终端最近一次同步该文件的版本号;
若该终端本次同步该文件的版本号低于该用户的其他终端最近一次同步该文件的版本号,则从服务器保存的该文件的各版本数据中,删除在接收文件同步请求的之前产生的操作记录。
在图6所描述的服务器中,服务器无需与终端进行多次交互,且无需逐层遍历服务器上的文件目录并与终端的文件目录进行对比,此外与该文件的整个目录结构相比,在终端最近一次同步该文件的之后产生的操作记录数据量较小,同步时不仅缩短数据传输时间,还可减少用户的网络资源消耗,从而提高同步效率。
请参阅图7,图7为本申请提供的终端的一实施例的结构示意图。如图7所示,该终端可包括:第一发送模块701、查找模块、接收模块703和执行模块,其中:
第一发送模块701,用于发送文件同步请求至服务器。
查找模块,用于查找第二记录数据,所述第二记录数据包括终端在最近一次同步所述文件之后对所述文件执行的操作记录。
接收模块703,用于接收所述服务器响应所述文件同步请求而发送的第一记录数据,所述第一记录数据包括所述服务器保存的所述文件的各版本数据中预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录。
执行模块,用于根据所述第一记录数据和所述第二记录数据得到所述终端应执行的操作,并执行所述操作。
本申请中,终端向服务器发送文件同步请求,该文件同步请求可指示终端本次要同步的文件、终端最近一次同步该文件的时间、终端最近一次同步该文件的版本号、和/或本次同步该文件需要服务器提供的数据(包括目录结构和/或操作记录等)。
本申请中,终端可包括两种:一种是可直接获取到对该文件的操作记录的终端,此类终端一般含有输入装置和处理器,可独立对文件进行操作,例如计算机、平板电脑等;另一种是无法直接获取到文件的操作记录的终端,例如同步U盘。
基于终端类型的不同,查找模块查找第二记录数据也有相应不同的实施方式。
作为一种可行的实施方式,当终端可以直接获取到对该文件的操作记录时,查找模块可进一步包括可包括以下单元(图中未示):
查找单元,用于查找该终端最近一次同步该文件之后对该文件执行的每一条操作记录。
按照操作路径拆分或合并这些操作记录,得到第二记录数据。
具体地,拆分是指将一条涉及到多个路径的操作记录拆分成多条只涉及一个路径的基础操作记录,如“MOVEA,f1to f2”可以拆分成“DELETE A,f1”和“ADDA,f2”。合并是指将多条操作路径相同的操作记录合并成数量较少的操作记录,例如“ADD B,f1”、“ADD C,f1”和“DELETE B,f1”可以合并成“ADD C,f1”。拆分合并操作,可将同步时需要的数据简化,去掉冗余的数据,从而缩短同步的时间,提高同步效率。
作为另一种可行的实施方式,当终端无法直接获取到文件的操作记录时,查找模块查找第二记录数据的步骤可包括:首先,读取终端在最近一次同步完该文件后得到并保存的该文件的目录信息;然后,将最近一次同步完该文件后得到的该文件的目录信息与该终端当前本地存储的该文件的目录信息进行对比,可得到该终端在最近一次同步完该文件之后对该文件执行的操作记录,包括添加的数据和/或删除的数据等,这些操作记录即为第二记录数据。
具体实施中,基于文件同步请求的内容的不同,第一记录数据也相应有几种不同的情况。
在一种可能的实施方式中,文件同步请求可包括终端最近一次同步该文件的版本号以及本次同步的最高版本号。此时,第一记录数据包括预定版本的该文件在该终端最近一次同步该文件之后产生的全部操作记录,其中该预定版本为版本号介于终端最近一次同步文件的版本号和本次同步的最高版本号之间(包括本次同步的最高版本号)的所有版本,具体地,本次同步的最高版本号可以是当前该文件的最高版本号,也可以是任何一个比最近一次同步的版本号更高的版本号,具体可视终端当前的网络状况而定。
在一种可能的实施方式中,文件同步请求可包括该终端最近一次同步该文件的版本号以及数量阈值。此时,第一记录数据可包括预定版本的该文件在该之后依次产生的预定数量的操作记录,其中该预定版本的版本号高于终端最近一次同步该文件的版本号,该预定数量的值等于该数量阈值。
具体实现中,结合在该终端最近一次同步完该文件的时间点之后之后,服务器保存的预定版本的该文件产生的操作记录,以及终端对该文件执行的操作记录,执行模块可计算得到当前同步需要执行的操作,如:需要添加的数据、需要删除的数据等。
作为一种可能的实施方式,服务器所发送的第一记录数据为服务器直接从该文件的各版本数据中查找出来的未经过简化处理的多条操作记录,此时,执行模块可包括以下单元(图中未示):
第二记录简化单元,用于按照操作路径拆分或合并该多条操作记录,以简化第一记录数据。具体地,拆分是指将一条涉及到多个路径的操作记录拆分成多条只涉及一个路径的基础操作记录,合并是指将多条操作路径相同的操作记录合并成数量较少的操作记录。拆分合并操作,可将同步时需要的数据简化,去掉冗余的数据,从而缩短同步的时间,提高同步效率。
执行单元,用于根据简化后的第一记录数据和第二记录数据,得到所述终端应执行的操作,并执行所述操作。此时,第一记录数据和第二记录数据中的操作记录均为只涉及一个操作路径的基础操作记录,则根据第一记录数据和第二记录数据得到终端应执行的操作,可具体为:以该终端上次同步完该文件的时间点为起始点,按照操作时间由先到后的顺序将第一记录数据和第二记录数据中操作路径相同的操作记录合并,根据合并后的操作记录即可得到终端应执行的操作。例如:操作路径为磁盘1(f1)的操作记录依次有:“ADD A,f1”、“ADD B,f1”、“ADD C,f1”和“DELETE B,f1”,以上4条操作记录可以合并成“ADD AB,f1”,则终端应执行的操作为:在磁盘1中添加“AB”。
在一些可行的实施方式中,如图8所示,该终端还可包括记录模块705和第二发送模块706中至少一种,其中:
记录模块705,用于在执行模块704得到终端应执行的操作并执行该操作之后,将所述第一记录数据中所述文件的最高版本号记录为所述终端本次同步所述文件的版本号。
第二发送模块706,用于发送所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识至所述服务器,以使所述服务器更新所述用户对所述终端的同步记录。具体实现中,用户对该终端的同步记录可包括该终端的标识信息、该终端的用户标识、同步该文件的时间和版本号等。
在图7或图8所描述的终端中,第一发送模块向服务器发送文件同步请求;查找模块查找终端在上次同步完该文件之后对该文件执行过的操作记录,作为第二记录数据;接收模块接收服务器发送的第一记录数据,终端无需与服务器进行多次交互,也无需逐层遍历服务器上的文件目录,而且第一记录数据由一些操作记录组成,与该文件的整个目录结构相比,数据量较小,传输时不仅节约时间,还可减少用户的网络资源消耗。执行模块可在根据第一记录数据和第二记录数据得到终端应执行的操作之前,可先将第一记录数据进行拆分合并,以减少冗余数据以及同步时的计算量,缓解终端的计算压力,同时提高同步效率。
请参阅图9,图9为本申请提供的终端的又一实施例的结构示意图。如图9所示,该终端可包括:输入装置901、输出装置902和处理器903。在本申请的一些实施例中,输入装置901和处理器903之间、输出装置902和处理器903之间可以通过总线或其他方式连接,其中,图9中以通过总线连接为例。
其中,输出装置902,用于发送文件同步请求至服务器。
输入装置901,用于接收所述服务器响应所述文件同步请求而发送的第一记录数据,所述第一记录数据包括所述服务器保存的所述文件的各版本数据中预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录。
处理器903用于:
查找第二记录数据,所述第二记录数据包括所述终端在最近一次同步所述文件之后对所述文件执行的操作记录;
根据所述第一记录数据和所述第二记录数据得到所述终端应执行的操作,并执行所述操作。
作为一种可能的实施方式,处理器903查找第二记录数据时,具体步骤为:
查找所述终端在最近一次同步所述文件之后对所述文件执行的每一条操作记录;
按照操作路径拆分或合并所述每一条操作记录,得到所述第二记录数据。
作为一种可能的实施方式,所述第一记录数据包括至少一条操作记录;
所述处理器根据所述第一记录数据和所述第二记录数据得到所述终端应执行的操作,并执行所述操作时,具体步骤为:
按照操作路径拆分或合并所述至少一条操作记录,以简化所述第一记录数据;
根据简化后的第一记录数据和所述第二记录数据,得到所述终端应执行的操作,并执行所述操作。
作为一种可能的实施方式,处理器903还用于将所述第一记录数据中所述文件的最高版本号记录为所述终端本次同步所述文件的版本号。
输出装置902还用于发送所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识至所述服务器,以使所述服务器更新所述用户对所述终端的同步记录。
在图9所描述的终端中,终端无需与服务器进行多次交互,且无需逐层遍历服务器上的文件目录并与终端的文件目录进行对比,此外与该文件的整个目录结构相比,在终端最近一次同步该文件的之后产生的操作记录数据量较小,同步时不仅缩短数据传输时间,还可减少用户的网络资源消耗,从而提高同步效率。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccessMemory,RAM)、磁盘或光盘等。
以上对本申请实施例所提供的文件同步方法、服务器及终端进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (16)

1.一种文件同步方法,其特征在于,包括:
接收终端发送的文件同步请求;
响应所述文件同步请求,从服务器保存的所述文件的各版本数据中查找第一记录数据,所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录;
发送所述第一记录数据至所述终端,以使所述终端根据所述第一记录数据及所述终端上的第二记录数据得到所述终端应执行的操作,所述第二记录数据包括所述终端在最近一次同步所述文件之后对所述文件执行的操作记录。
2.根据权利要求1所述的方法,其特征在于,所述文件同步请求包括所述终端最近一次同步所述文件的版本号以及本次同步的最高版本号;
所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后产生的全部操作记录,其中所述预定版本的版本号高于所述终端最近一次同步所述文件的版本号,且低于或等于本次同步的最高版本号。
3.根据权利要求1所述的方法,其特征在于,所述文件同步请求包括所述终端最近一次同步所述文件的版本号以及数量阈值;
所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后依次产生的预定数量的操作记录,其中所述预定版本的版本号高于所述终端最近一次同步所述文件的版本号,所述预定数量的值等于所述数量阈值。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述发送所述第一记录数据至所述终端之后,所述方法还包括:
接收所述终端发送的所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识;
根据所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识,更新用户对所述终端的同步记录;
查询所述用户的其他终端最近一次同步所述文件的版本号;
若所述终端本次同步所述文件的版本号低于所述用户的其他终端最近一次同步所述文件的版本号,则从所述服务器保存的所述文件的各版本数据中,删除在接收所述文件同步请求之前产生的操作记录。
5.一种文件同步方法,其特征在于,包括:
发送文件同步请求至服务器;
查找第二记录数据,所述第二记录数据包括终端在最近一次同步所述文件之后对所述文件执行的操作记录;
接收所述服务器响应所述文件同步请求而发送的第一记录数据,所述第一记录数据包括所述服务器保存的所述文件的各版本数据中预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录;
根据所述第一记录数据和所述第二记录数据得到所述终端应执行的操作,并执行所述操作。
6.根据权利要求5所述的方法,其特征在于,所述查找第二记录数据,包括:
查找所述终端在最近一次同步所述文件之后对所述文件执行的每一条操作记录;
按照操作路径拆分或合并所述每一条操作记录,得到所述第二记录数据。
7.根据权利要求5所述的方法,其特征在于,所述第一记录数据包括至少一条操作记录;
所述根据所述第一记录数据和所述第二记录数据得到所述终端应执行的操作,并执行所述操作,包括:
按照操作路径拆分或合并所述至少一条操作记录,以简化所述第一记录数据;
根据简化后的第一记录数据和所述第二记录数据,得到所述终端应执行的操作,并执行所述操作。
8.根据权利要求5-7任一项所述的方法,其特征在于,所述根据所述第一记录数据和所述第二记录数据得到所述终端应执行的操作,并执行所述操作之后,所述方法还包括:
将所述第一记录数据中所述文件的最高版本号记录为所述终端本次同步所述文件的版本号;
发送所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识至所述服务器,以使所述服务器更新用户对所述终端的同步记录。
9.一种服务器,其特征在于,包括:
第一接收模块,用于接收终端发送的文件同步请求;
查找模块,用于响应所述文件同步请求,从服务器保存的所述文件的各版本数据中查找第一记录数据,所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录;
发送模块,用于发送所述第一记录数据至所述终端,以使所述终端根据所述第一记录数据及所述终端上的第二记录数据得到所述终端应执行的操作,所述第二记录数据包括所述终端在最近一次同步所述文件之后对所述文件执行的操作记录。
10.根据权利要求9所述的服务器,其特征在于,所述文件同步请求包括所述终端最近一次同步所述文件的版本号以及本次同步的最高版本号;
所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后产生的全部操作记录,其中所述预定版本的版本号高于所述终端最近一次同步所述文件的版本号,且低于或等于本次同步的最高版本号。
11.根据权利要求9所述的服务器,其特征在于,所述文件同步请求包括所述终端最近一次同步所述文件的版本号以及数量阈值;
所述第一记录数据包括预定版本的所述文件在所述终端最近一次同步所述文件之后依次产生的预定数量的操作记录,其中所述预定版本的版本号高于所述终端最近一次同步所述文件的版本号,所述预定数量的值等于所述数量阈值。
12.根据权利要求9-11任一项所述的服务器,其特征在于,所述服务器还包括:
第二接收模块,用于接收所述终端发送的所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识;
更新模块,用于根据所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识,更新用户对所述终端的同步记录;
查询模块,用于查询所述用户的其他终端最近一次同步所述文件的版本号;
删除模块,用于在所述终端本次同步所述文件的版本号低于所述用户的其他终端最近一次同步所述文件的版本号时,从所述服务器保存的所述文件的各版本数据中删除在接收所述文件同步请求的之前产生的操作记录。
13.一种终端,其特征在于,包括:
第一发送模块,用于发送文件同步请求至服务器;
查找模块,用于查找第二记录数据,所述第二记录数据包括终端在最近一次同步所述文件之后对所述文件执行的操作记录;
接收模块,用于接收所述服务器响应所述文件同步请求而发送的第一记录数据,所述第一记录数据包括所述服务器保存的所述文件的各版本数据中预定版本的所述文件在所述终端最近一次同步所述文件之后产生的操作记录;
执行模块,用于根据所述第一记录数据和所述第二记录数据得到所述终端应执行的操作,并执行所述操作。
14.根据权利要求13所述的终端,其特征在于,所述查找模块,包括:
查找单元,用于查找所述终端在最近一次同步所述文件之后对所述文件执行的每一条操作记录;
第一简化单元,用于按照操作路径拆分或合并所述每一条操作记录,得到所述第二记录数据。
15.根据权利要求13所述的终端,其特征在于,所述第一记录数据包括至少一条操作记录;
所述执行模块,包括:
第二简化单元,用于按照操作路径拆分或合并所述至少一条操作记录,以简化所述第一记录数据;
执行单元,用于根据简化后的第一记录数据和所述第二记录数据,得到所述终端应执行的操作,并执行所述操作。
16.根据权利要求13-15任一项所述的终端,其特征在于,所述终端还包括:
记录模块,用于将所述第一记录数据中所述文件的最高版本号记录为所述终端本次同步所述文件的版本号;
第二发送模块,用于发送所述终端的标识信息、所述终端本次同步所述文件的版本号、以及所述终端的用户标识至所述服务器,以使所述服务器更新用户对所述终端的同步记录。
CN201480001814.5A 2014-04-15 2014-04-15 一种文件同步方法、服务器及终端 Active CN104488248B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/075349 WO2015157904A1 (zh) 2014-04-15 2014-04-15 一种文件同步方法、服务器及终端

Publications (2)

Publication Number Publication Date
CN104488248A CN104488248A (zh) 2015-04-01
CN104488248B true CN104488248B (zh) 2017-09-08

Family

ID=52761440

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480001814.5A Active CN104488248B (zh) 2014-04-15 2014-04-15 一种文件同步方法、服务器及终端

Country Status (4)

Country Link
US (1) US20170031948A1 (zh)
EP (1) EP3125501B1 (zh)
CN (1) CN104488248B (zh)
WO (1) WO2015157904A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI816875B (zh) * 2019-08-22 2023-10-01 鴻海精密工業股份有限公司 資料同步查詢方法、裝置、電腦裝置及存儲介質

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6046665B2 (ja) * 2014-06-10 2016-12-21 トヨタ自動車株式会社 断熱膜の形成方法および断熱膜
CN104834749A (zh) * 2015-05-27 2015-08-12 惠州Tcl移动通信有限公司 一种移动终端与pc端的文件同步方法及同步系统
CN110572437A (zh) * 2016-03-01 2019-12-13 张君 客户端与服务端在网与离网状态下数据交互方法、系统
CN106101275A (zh) * 2016-08-10 2016-11-09 东方网力科技股份有限公司 一种数据同步方法和主动方
CN109688176B (zh) * 2017-10-18 2022-01-11 腾讯科技(深圳)有限公司 一种文件同步方法及终端、网络设备、存储介质
CN107798086B (zh) * 2017-10-19 2021-07-23 福建中金在线信息科技有限公司 服务器信息更新方法、装置、系统及电子设备
CN108259562B (zh) * 2017-12-11 2022-02-25 杭州品茗安控信息技术股份有限公司 一种基于多端点的数据同步方法及装置
CN109840160A (zh) * 2019-01-03 2019-06-04 深圳壹账通智能科技有限公司 一种基于数据迁移的异常供数检测方法、装置及终端设备
CN113704212A (zh) * 2020-05-22 2021-11-26 深信服科技股份有限公司 服务器的数据同步方法、装置、设备及计算机存储介质
CN112035577B (zh) * 2020-11-04 2021-02-02 华自科技股份有限公司 一种数据同步方法及数据同步系统
CN113633981A (zh) * 2021-08-12 2021-11-12 网易(杭州)网络有限公司 游戏应用中地图数据同步的方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404338A (zh) * 2011-12-13 2012-04-04 华为技术有限公司 一种文件同步方法和装置
CN103220358A (zh) * 2013-04-19 2013-07-24 李晶 一种多终端在线文件同步方法、系统、服务器及终端设备
CN103457905A (zh) * 2012-05-28 2013-12-18 腾讯科技(深圳)有限公司 数据同步方法、系统及设备
CN103685385A (zh) * 2012-09-12 2014-03-26 中国移动通信集团公司 一种文件同步的方法、系统和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9191443B2 (en) * 1999-12-02 2015-11-17 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
EP1130513A3 (en) * 2000-01-25 2004-04-07 FusionOne, Inc. Data transfer and synchronization system
US7228319B1 (en) * 2002-12-30 2007-06-05 Sap Aktiengesellschaft File comparison of locally synched files
FI117151B (fi) * 2003-12-18 2006-06-30 Capricode Oy Menetelmä, tiedonsiirtojärjestely, palvelin ja päätelaite päätelaitteessa olevan tiedon päivityksen suorittamiseksi
US9244960B2 (en) * 2013-03-15 2016-01-26 International Business Machines Corporation Metadata-driven version management service in pervasive environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404338A (zh) * 2011-12-13 2012-04-04 华为技术有限公司 一种文件同步方法和装置
CN103457905A (zh) * 2012-05-28 2013-12-18 腾讯科技(深圳)有限公司 数据同步方法、系统及设备
CN103685385A (zh) * 2012-09-12 2014-03-26 中国移动通信集团公司 一种文件同步的方法、系统和装置
CN103220358A (zh) * 2013-04-19 2013-07-24 李晶 一种多终端在线文件同步方法、系统、服务器及终端设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI816875B (zh) * 2019-08-22 2023-10-01 鴻海精密工業股份有限公司 資料同步查詢方法、裝置、電腦裝置及存儲介質

Also Published As

Publication number Publication date
CN104488248A (zh) 2015-04-01
EP3125501B1 (en) 2018-08-22
US20170031948A1 (en) 2017-02-02
WO2015157904A1 (zh) 2015-10-22
EP3125501A4 (en) 2017-04-05
EP3125501A1 (en) 2017-02-01

Similar Documents

Publication Publication Date Title
CN104488248B (zh) 一种文件同步方法、服务器及终端
CN102404338B (zh) 一种文件同步方法和装置
CN103491169B (zh) 一种文件上传及下载的方法和系统
CN103473277B (zh) 文件系统的快照方法和装置
US9282137B2 (en) Dynamic package creation for predictive page load optimization
CN105205143B (zh) 一种文件存储及处理方法、设备和系统
CN104506643A (zh) 分布式存储系统的服务器及服务器之间的数据同步方法
CN110347651A (zh) 基于云存储的数据同步方法、装置、设备及存储介质
CN103312489B (zh) 一种终端与服务器进行同步的方法和装置
CN108090078A (zh) 文档在线预览方法及装置
CN105468707A (zh) 一种基于缓存的数据处理方法及装置
CN105978948B (zh) 一种云服务的方法和系统
CN103049574B (zh) 实现文件动态副本的键值文件系统及方法
CN103986776A (zh) 一种路由器及基于路由器的下载方法
CN105681420A (zh) 一种基于Docker实现交换机操作系统备份的方法
CN103841180A (zh) 一种基于操作指令的网络数据同步方法、装置、终端设备和服务器
CN105765955B (zh) 一种用户管理方法、终端及终端设备
CN102739703A (zh) 一种对等网络中数据迁移的方法及系统
CN112394932A (zh) 浏览器网页自动换肤方法及装置
CN101420324B (zh) 一种网管系统及其代理软件的版本更新方法
CN104063475A (zh) 用户自定义列表处理方法和装置
CN104572981B (zh) 一种网页页面缓存处理方法和移动终端设备
CN110297812A (zh) 文件存储方法、文件同步的方法、计算机设备及存储介质
CN104980464A (zh) 一种网络请求处理方法、网络服务器和网络系统
CN102739704A (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
GR01 Patent grant
GR01 Patent grant