CN102404338B - 一种文件同步方法和装置 - Google Patents
一种文件同步方法和装置 Download PDFInfo
- Publication number
- CN102404338B CN102404338B CN201110415376.5A CN201110415376A CN102404338B CN 102404338 B CN102404338 B CN 102404338B CN 201110415376 A CN201110415376 A CN 201110415376A CN 102404338 B CN102404338 B CN 102404338B
- Authority
- CN
- China
- Prior art keywords
- listed files
- snapshot
- server
- file
- file list
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及通信技术领域,具体涉及文件同步方法及装置,其中文件同步方法包括:获取第一文件列表快照,第一文件列表快照包含上一次同步结束时本地文件列表的信息;将第一文件列表快照和当前本地文件列表的信息进行比较,获取第二文件列表快照,第二文件列表快照包含当前本地文件列表的更新操作;向服务器发送文件列表快照请求;接收服务器发送的第三文件列表快照,第三文件列表快照包含服务器的文件列表的信息;根据第二文件列表快照和第三文件列表快照确定待同步文件的标识和操作,并根据待同步文件的标识和操作与服务器进行文件同步。使用本发明,能够实现用于同步的装置和服务器之间的双向同步,提高用户体验。
Description
技术领域
本发明涉及通信技术领域,具体涉及文件同步方法和装置。
背景技术
随着互联网技术的发展,越来越多的用户喜欢使用文件同步来管理终端上的文件,这可以使得用户在不同地方和不同终端上及时将文件的更新同步到服务器,同时方便用户从服务器上获取最新的文件信息。
现有的文件同步技术中,用户对终端同步目录下的文件进行更新操作后,终端对本地同步目录进行一次全扫描,将扫描到的每个文件信息发送到服务器验证,以确定该文件的更新状态,比如增加或删除等,如果该文件是更新的,则将文件同步到服务器。这种同步的缺陷表现在不能实现终端和服务器的双向同步,即将终端的更新同步到服务器,同时将服务器的更新同步到终端,这里服务器的更新可以是服务器和其他终端发生交互后的更新,也可以是在服务器上操作的更新。
发明内容
本发明的实施例提供了文件同步方法和装置,可以实现用于同步的装置和服务器之间的双向同步。
本发明的实施例提供了一种文件同步方法,包括:
获取第一文件列表快照,所述第一文件列表快照包含上一次同步结束时本地文件列表的信息;
将所述第一文件列表快照和当前所述本地文件列表的信息进行比较,获取第二文件列表快照,所述第二文件列表快照包含当前所述本地文件列表的更新操作;
向服务器发送文件列表快照请求;
接收所述服务器发送的第三文件列表快照,所述第三文件列表快照包含所述服务器的文件列表的信息;
根据所述第二文件列表快照和所述第三文件列表快照确定待同步文件的标识和操作,并根据所述待同步文件的标识和操作与所述服务器进行文件同步。
本发明的实施例提供了一种可用于同步的装置,包括:
第一获取单元,用于获取第一文件列表快照,所述第一文件列表快照包含上一次同步结束时本地文件列表的信息;
第二获取单元,用于将所述第一文件列表快照和当前所述本地文件列表的信息进行比较,获取第二文件列表快照,所述第二文件列表快照包含当前所述本地文件列表的更新操作;
发送单元,用于向服务器发送文件列表快照请求;
接收单元,用于接收所述服务器发送的第三文件列表快照,所述第三文件列表快照包含所述服务器的文件列表的信息;
同步单元,用于根据所述第二文件列表快照和所述第三文件列表快照确定待同步文件的标识和操作,并根据所述待同步文件的标识和操作与所述服务器进行文件同步。
从本发明实施例提供的以上技术方案可以看出,由于本发明实施例中的第二文件列表快照包含当前本地文件列表的更新操作,第三文件列表快照包含服务器文件列表的信息,通过第二文件列表快照和第三文件列表快照确定的待同步文件的操作中,既包括了本地文件列表中文件的更新操作,又包括了服务器文件列表中文件的更新操作,因此根据待同步文件的标识和操作就可以实现用于同步的装置和服务器的双向同步。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例提供的一种文件同步方法的流程图。
图2为本发明一个实施例提供的一种文件同步方法的信令流程图。
图3为本发明一个实施例提供的一种可用于同步的装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1描述了本发明一个实施例提供的一种文件同步方法的流程,本实施例中,优选的,以终端作为可用于同步的装置,即文件同步的执行主体。该实施例具体包括:
101、获取第一文件列表快照。
具体地,终端获取第一文件列表快照,该第一文件列表快照包含上一次同步结束时本地文件列表的信息,该信息是指文件列表中多个文件的信息。在本发明的实施例中,文件列表快照是指某时文件列表的映像信息。其中,文件列表快照主要包含文件列表信息和文件状态,文件状态可以设置一个初始状态,后期比较过程中,用来反映文件列表中文件的更新操作,从而决定后期待同步文件的操作。
102、将第一文件列表快照和当前本地文件列表的信息进行比较,获取第二文件列表快照。
具体地,终端扫描本地文件列表,将扫描到的当前本地文件列表的信息和第一文件列表快照中的信息进行比较,获取本地文件列表相对于第一文件列表快照已经完成的更新操作,该更新操作是指文件列表快照中文件的更新操作,比如本地添加、本地删除或本地修改等,并将本地文件列表的更新操作包含在第二文件列表快照中,其中,第二文件列表快照可以是更新的第一文件列表快照,也可以是一个重新生成的文件列表快照。
103、向服务器发送文件列表快照请求。
具体的,终端向服务器发送文件列表快照请求,以获取服务器的文件列表信息。
104、接收服务器发送的第三文件列表快照。
具体的,终端接收服务器发送的第三文件列表快照,第三文件列表快照是服务器在接收到文件列表快照请求后生成的,并且包含服务器的文件列表的信息。
另外,由于在终端上一次同步结束后到本次同步向服务器发送文件列表快照请求期间,服务器可以与其他终端进行同步操作,从而导致服务器上的文件信息被更新了,因此服务器的文件列表信息可以包含更新信息。
105、根据第二文件列表快照和第三文件列表快照确定待同步文件的标识和操作,并根据待同步文件的标识和操作与服务器进行文件同步。
具体的,终端将第二文件列表快照和第三文件列表快照进行比较,确定服务器的文件列表中已经完成的更新操作,因此,根据第二文件列表快照中包含的本地文件列表的已经完成的更新操作和上述服务器的文件列表的已经完成的更新操作,确定待同步文件的标识和操作,其中待同步文件的操作包括上传、下载、重命名或删除等。
优选的,终端根据第二文件列表快照中包含的本地文件列表的更新操作和上述服务器的文件列表的更新操作,确定操作分类,并按照该操作分类,对本地文件列表的更新操作和服务器的文件列表的更新操作进行合并,确定待同步文件的标识和操作。
在终端确定待同步文件的标识和操作后,根据待同步文件的标识和操作与服务器进行文件同步操作。
从上可知,本实施例中的第二文件列表快照包含当前本地文件列表的更新操作,第三文件列表快照包含服务器文件列表的信息,通过第二文件列表快照和第三文件列表快照确定的待同步文件的操作中,既包括了本地文件列表中文件的更新操作,又包括了服务器文件列表中文件的更新操作,因此根据待同步文件的标识和操作就可以实现用于同步的装置和服务器的双向同步。
图2描述了本发明一个实施例提供的一种文件同步方法的信令流程,本是实施例中,优选的,以终端作为可用于同步的装置。该实施例具体包括:
201、发送登录请求。
具体地,终端向服务器发送登录请求,该登录请求包含用户标识,其中,用户标识可以是用户名或密码。该登录请求还可以进一步包括终端标识,当多个终端利用同一用户名同时登录时,服务器可以根据终端标识来区分终端。
202、登录验证。
具体地,服务器接收到登录请求后,获取登录请求中的用户标识,通过查询用户数据库信息,验证用户标识的权限,并发送验证结果给终端。服务器还可以进一步对终端标识进行验证,以区分不同的终端。
203、登录响应。
具体地,终端接收服务器发送的验证结果,该验证结果可以为登录失败或登录成功。当登录成功后,终端可以设置同步目录,同时考虑到业务需求,比如网络流量的限制等,终端可以设置工作模式,其中,工作模式包括单向同步(包括单向上传同步和单向下载同步)、双向同步或者选择性同步,单向同步是指在同步过程中由本地向服务器或者由服务器向同步进行更新;双向同步是指本地和服务器双向进行同步;选择性同步,是指允许用户有选择地同步文件,如仅仅同步某一个子目录或者某类文件等。
204、获取第一文件列表快照。
具体地,终端登录成功后,获取第一文件列表快照,第一文件列表快照包含终端和服务器上一次同步结束后文件列表的信息,可以存储在终端本地上,因此终端可以直接在本地读取第一文件列表快照。另外,第一文件列表快照可以包含文件标识、文件路径、文件创建时间、是否为目录,或文件状态,其中,文件标识可以是文件名,也可以是其他文件标志信息;文件状态用来反映针对文件列表中的文件的更新操作。另外,第一文件列表快照还可以进一步包括版本号,该版本号标识的是上一次同步结束时,终端和服务器的待同步目录下文件列表的版本信息。
需要说明的是,如果终端是第一次运行同步,即不存在上一次的同步过程,则终端上不存在第一文件列表快照,或者,即使终端上存在第一文件列表快照,但是读取失败,比如丢失或损坏,都需要终端直接扫描本地同步目录下文件与目录,重新构建第一文件列表快照。
例如,下面给出一个第一文件列表快照的示例:
文件标识 | 文件路径 | 文件创建时间 | 是否为目录 | 文件状态 |
1.txt | \ | 1319162967 | 0 | initial |
2.txt | \ | 1319163850 | 0 | initial |
Hello | \ | 1319199057 | 1 | initial |
a.txt | \Hello | 1313916412 | 0 | initial |
该示例中,第一文件列表快照包含1.txt、2.txt、Hello目录和Hello目录下a.txt文件的相关信息,每条记录包括文件标识、文件路径、文件创建时间、是否为目录、和文件状态,其中,在是否为目录一列,0代表文件,1代表目录;文件状态初始设置为initial。
205、第一次比较,并获取第二文件列表快照。
终端扫描本地文件列表,将扫描到文件的相关信息(比如文件标识、文件路径、文件创建时间、是否为目录,或文件状态等)和第一文件列表快照中的信息(比如文件标识、文件路径、文件创建时间、是否为目录,或文件状态等)进行比较,判断当前文件相对于第一文件列表快照中对应信息的变化情况,并生成第二文件列表快照,第二文件列表快照可以是更新的第一文件列表快照,也可以是一个重新生成的快照。
第二文件列表快照包含本地文件列表的更新操作,优选的,将每个文件的更新操作记录在第二文件列表快照中的文件状态,此时文件状态由初始initial状态变为更新操作,更新操作包括本地添加、本地删除或本地修改等。
可选的,将当前本地文件列表的更新操作记录在第一文件列表快照中,即将更新后的第一文件列表快照作为第二文件列表快照。具体的,如果第一文件列表快照中有对应文件的信息,则修改第一文件列表快照中关于该文件的文件状态;如果第一文件列表快照中没有该文件的信息,则在第一文件列表快照中增加关于该文件的记录,并设置该文件的状态为更新操作。
例如,仍以前面给出的示例继续,并假设终端的更新操作包括:删除文件1.txt,重命名2.txt为2-rename.txt,重命名Hello目录为Hello-rename,即终端扫描到当前同步目录下的文件和目录的信息为:
文件标识 | 文件路径 | 文件创建时间 | 是否为目录 |
2-rename.txt | \ | 1319163850 | 0 |
Hello-rename | \ | 1319199057 | 1 |
a.txt | \Hello-rename | 1313916412 | 0 |
终端扫描到文件2-rename.txt时,发现在第一文件列表快照中没有该文件的记录,则在第一文件列表快照中添加该条记录,并设置该文件状态为本地添加(local_add);终端扫描到Hello-rename目录下的文件a.txt时,由于Hello-rename\a.txt在第一文件列表快照中没有记录,则在第一文件列表快照中添加该条记录,并设置该文件的状态为本地添加(local_add);终端扫描完目录Hello-rename下的所有文件后,也没有在第一文件列表快照中找到Hello-rename的记录,则在第一文件列表快照中添加Hello-rename的记录,状态也更新为本地添加(local_add)。
在扫描完同步目录下当前的文件与目录后,第一文件列表快照中没有更新状态的记录全部标记为本地删除(local_del),因此,第一次比较结束后,更新后的第一文件列表快照中包含的变化信息为:
文件标识 | 文件路径 | 文件创建时间 | 是否为目录 | 文件状态 |
1.txt | \ | 1319162967 | 0 | local_del |
2.txt | \ | 1319163850 | 0 | local_del |
Hello | \ | 1319199057 | 1 | local_del |
a.txt | \Hello | 1313916412 | 0 | local_del |
2-rename.txt | \ | 1319163850 | 0 | local_add |
Hello-rename | \ | 1319199057 | 1 | local_add |
a.txt | \Hello-reanme | 1313916412 | 0 | local_add |
经过第一次比较以后,更新后的第一文件列表快照,即第二文件列表快照中包含本地文件列表中文件的更新操作。
206、发送文件列表快照请求。
具体地,终端向服务器发送文件列表快照请求,以获取服务器文件列表当前的信息。
207、生成第三文件列表快照。
具体的,服务器接收终端发送的文件列表快照请求后,根据服务器的文件列表信息生成第三文件列表快照,第三文件列表快照包含服务器的文件列表的信息,具体可以包含文件标识、文件路径、文件创建时间、是否为目录、或文件状态等,初始的文件状态可以为initial状态。
需要说明的是,如果在终端的上一次同步结束之后到这次同步之间,服务器没有与其他终端进行过同步操作,则服务器同步目录下文件列表的信息不变;如果在终端的上一次同步结束之后到这次同步之间,服务器与其他终端进行过同步操作,导致服务器同步目录下文件的信息发生了变化,则第二文件列表快照包含了文件列表的更新信息。
208、返回第三文件列表快照。
具体的,服务器在生成第三文件列表快照后,向终端发送第三文件列表快照。
209、获取第三文件列表快照。
具体地,终端接收并获取服务器发送的第三文件列表快照。
210、第二次比较,并确定待同步文件的标识和操作。
终端获取第三文件列表快照后,将第二文件列表快照和第三文件列表快照进行比较,确定服务器的文件列表的更新操作,比如服务器增加、服务器删除或服务器修改等操作,因此,根据第二文件列表快照中包含的本地文件列表的更新操作和上述服务器的文件列表的更新操作,确定待同步文件的标识和操作,其中待同步文件的操作包括上传、下载、重命名或删除等。
具体的,第三文件列表快照可以进一步包含版本号,该版本号标识的是服务器同步目录下文件列表上一次同步结束时的版本信息,如果服务器在本次同步与上一次同步之前,与其他终端进行过同步操作导致服务器的文件列表发生了更新,则版本号会发生改变;同样的,终端上的第一文件列表快照可以进一步包含版本号,该版本号标识是上一次同步结束时本地同步目录下文件列表的版本信息,由于上一次同步结束时,本地同步目录下的文件列表和服务器同步目录下的文件列表信息一致,因此该版本号记录的也是服务器同步目录下文件列表上一次同步结束时的版本信息,即如果服务器没有与其他终端进行同步操作,则第一文件列表快照中的版本号和第三文件列表快照中的版本号相同。
终端将终端上的第一文件列表快照中的版本号和从服务器获取的第三文件列表快照中的版本号进行比较,如果两个版本号相同,表明在本次同步和上次同步之间,服务器没有与其他终端进行过同步操作,即服务器同步目录的文件列表没有发生变化,此时,终端根据第二文件列表快照中文件列表的更新操作就可以确定待同步文件的标识和操作。
具体的,终端首先将第二文件列表快照中的更新操作进行分类,确定操作分类,比如本地添加local_add、本地删除local_del或本地修改local_modify等;由于有些文件状态在逻辑上是可以合并的,因此根据相关合并规则,对上述分类的文件状态进行合并确定相应的文件操作,不能合并的文件状态则直接根据文件状态确定文件操作。比如,对本地文件的重命名操作,第二文件列表快照中会有原文件的本地删除local_del操作,同时会有重命名后文件的本地添加local_add操作,此时就可以结合原文件和重命名后文件的相关信息进行比较确定对local_del和local_add进行合并,确定为文件重命名renameFile操作,此时向服务器发送对原文件进行renameFile操作的请求,而服务器也只用对原文件进行重命名操作即可实现与终端上该文件的同步。如果不合并,则需要向服务器发送先删除原文件操作的请求,再发送增加重命名后文件的请求,而服务器则需要先根据删除原文件的操作请求删除原文件,然后又根据增加重命名后文件的请求,接收终端上传的重命名后的文件。因此,合并文件状态可以提高文件的同步效率。
如果两个版本号不相同,表明在本次同步和上次同步之间,服务器与其他终端进行过同步操作,即服务器同步目录的文件列表发生了变化,此时,终端根据第二文件列表快照和第三文件列表快照确定待同步文件的标识和操作。具体的,终端将第二文件列表快照和第三文件列表快照进行比较后,首先确定服务器的文件列表的更新操作,再根据第二文件列表快照中文件列表的更新操作和服务器的文件列表的更新操作,以与上述版本号相同时确定待同步文件的标识和操作同样的方法,确定此种情况待同步文件的标识和操作。
另外,本实施例仅列举了一些简单的合并规则和文件操作,对于复杂的文件操作,比如,文件修改,则需要终端确定修改文件,由用户决定保留哪一个文件,删除哪一个文件。
211、根据待同步文件的标识和操作,与服务器进行文件同步。
具体地,终端确定待同步文件的标识和操作后,向服务器发送文件同步请求,该同步请求包含着待同步文件的操作信息,服务器接收文件同步请求,获取其中携带的操作信息,从而对服务器同步目录下的文件进行相关操作,实现与终端同步目录下文件列表的同步。同步完成后,终端文件列表的更新将会被同步到服务器,同样,服务器的文件列表的更新也将会被同步到终端,即最终实现终端和服务器的双向同步。
需要说明的是,终端在向服务器发送文件同步请求后,如果服务器正在与其他终端进行文件同步操作,即服务器处于正在与其他终端进行文件同步的状态,则服务器会向该终端发送服务器正在与其他终端进行文件同步的状态,所以终端此时将会接收到服务器正在与其他终端进行文件同步的状态,并暂停与服务器的文件同步操作。进一步,终端暂停与服务器的文件同步操作后,可以每隔一定的时间(比如半分钟等)再向服务器发送文件同步请求;或者,终端接收服务器发送的服务器处于空闲状态的消息,再向服务器发送文件同步请求,与服务器进行文件同步操作。
例如,假设上述生成的待同步文件的标识和操作为:
文件标识 | 操作 |
1.txt | removefile |
2.txt | renamefile |
1.txt和2.txt为删除文件操作,则终端向服务器发送如下所示的超文本传输协议(HTTP:HyperText Transfer Protocol)请求:
服务器接收上述的HTTP请求后,根据请求中携带的删除文件(removefile)1.txt和removefile 2.txt信息,将服务器待同步目录中的文件1.txt和2.txt删掉。对于其他的文件及操作,终端会发送类似的文件同步请求,完成与服务器的同步。
终端和服务器同步目录下文件同步处理成功后,终端进一步存储服务器或终端同步目录下文件列表的快照(此时服务器和终端同步目录下文件列表一致),作为下一次同步时的第一文件列表快照,并且,该第一文件列表快照的版本号是重新生成的,服务器同步目录下文件列表的版本号也更新为该重新生成的版本号,以表示终端和服务器同步目录下文件列表的一致性。
从本实施例可以看出,终端通过两次比较确定了待同步文件的标识和操作,并根据待同步文件的标识和操作与服务器进行同步,在具体的同步过程中,终端根据待同步文件的操作向服务器发送相应的操作请求,比如上传请求、下载请求、重命名请求或删除请求等,服务器根据接收的相关的操作请求做相应的处理即可,服务器在整个同步过程中不需要确定待同步文件的标识和操作,因此,该种同步方法可以有效的减轻服务器的处理负荷。
从上可知,本实施例中的第二文件列表快照包含当前本地文件列表的更新操作,第三文件列表快照包含服务器文件列表的信息,通过第二文件列表快照和第三文件列表快照确定的待同步文件的操作中,既包括了本地文件列表中文件的更新操作,又包括了服务器文件列表中文件的更新操作,因此根据待同步文件的标识和操作就可以实现用于同步的装置和服务器的双向同步。
相应的,图3描述了本发明的另一个实施方式提供的一个可用于同步的装置,包括:
第一获取单元308,用于获取第一文件列表快照,第一文件列表快照包含上一次同步结束时本地文件列表的信息。
第二获取单元309,用于将第一获取单元308获取的第一文件列表快照和当前本地文件列表的信息进行比较,获取第二文件列表快照,第二文件列表快照包含当前本地文件列表的更新操作。具体的,可用于同步的装置扫描本地文件列表,将扫描到文件的相关信息和第一文件列表快照中的信息进行比较,判断当前文件相对于第一文件列表快照中对应信息的变化情况,并生成第二文件列表快照,第二文件列表快照可以是更新的第一文件列表快照,也可以是一个重新生成的快照。
发送单元310,用于向服务器发送文件列表快照请求,以获取服务器文件列表当前的信息。
接收单元311,用于接收服务器发送的第三文件列表快照,第三文件列表快照包含服务器的文件列表的信息。
同步单元312,用于根据第二获取单元309获取的第二文件列表快照和接收单元311接收的第三文件列表快照确定待同步文件的标识和操作,并根据待同步文件的标识和操作与服务器进行文件同步。
上述可用于同步的装置可以是一种与服务器进行数据交互的终端,图3又描述了本发明一个实施例提供的一种终端的结构,该终端可以包括至少一个处理器301,至少一个网络接口304,存储器305和至少一个通信总线302,用于实现这些组件之间的连接通信。该终端还可以包括用户接口303,用于实现与用户交互。存储器305可以包括:
操作系统306,用于处理各种基础的系统服务和执行基于硬件的任务。
应用单元307,用于根据获取的本地文件列表的更新操作和服务器的文件列表的更新操作,确定待同步的文件标识和操作,并根据待同步的文件标识和操作与服务器进行文件同步。应用单元307具体包括:
第一获取单元308,用于获取第一文件列表快照,第一文件列表快照包含上一次同步结束时本地文件列表的信息。
第二获取单元309,用于将第一获取单元308获取的第一文件列表快照和当前本地文件列表的信息进行比较,获取第二文件列表快照,第二文件列表快照包含当前本地文件列表的更新操作。具体的,终端扫描本地文件列表,将扫描到文件的相关信息和第一文件列表快照中的信息进行比较,判断当前文件相对于第一文件列表快照中对应信息的变化情况,并生成第二文件列表快照,第二文件列表快照可以是更新的第一文件列表快照,也可以是一个重新生成的快照。
发送单元310,用于向服务器发送文件列表快照请求,以获取服务器文件列表当前的信息。
接收单元311,用于接收服务器发送的第三文件列表快照,第三文件列表快照包含服务器的文件列表的信息。
同步单元312,用于根据第二获取单元309获取的第二文件列表快照和接收单元311接收的第三文件列表快照确定待同步文件的标识和操作,并根据待同步文件的标识和操作与服务器进行文件同步。
具体的,同步单元312用于根据第二获取单元309获取的第二文件列表快照和接收单元311接收的第三文件列表快照,确定服务器的文件列表的更新操作,并且根据本地文件列表的更新操作和服务器的文件列表的更新操作,确定待同步文件的标识和操作;另外,所述同步单元312,还可以用于当接收服务器发送的服务器正在与其他终端进行文件同步的状态时,暂停与服务器的文件同步操作。
在本发明的另一个实施例中,还可以包括:
设置单元313,用于设置工作模式,工作模式包括单向同步、双向同步或选择性同步等,在设置单元313设置具体的工作模式后,同步单元312根据设置单元313设置的工作模式,与服务器进行文件同步。
从上可知,本实施例中的第二文件列表快照包含当前本地文件列表的更新操作,第三文件列表快照包含服务器文件列表的信息,通过第二文件列表快照和第三文件列表快照确定的待同步文件的操作中,既包括了本地文件列表中文件的更新操作,又包括了服务器文件列表中文件的更新操作,因此根据待同步文件的标识和操作就可以实现用于同步的装置和服务器的双向同步。
上述终端可以参与执行图1或者图2所示的方法,其工作流程在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(ROM:Read-Only Memory)或随机存储记忆体(RAM:Random Access Memory)等。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种文件同步方法,其特征在于,包括:
终端获取第一文件列表快照,所述第一文件列表快照包含上一次同步结束时本地文件列表的信息;
所述终端将所述第一文件列表快照和当前所述本地文件列表的信息进行比较,获取第二文件列表快照,所述第二文件列表快照包含当前所述本地文件列表的更新操作;
所述终端向服务器发送文件列表快照请求;
所述终端接收所述服务器发送的第三文件列表快照,所述第三文件列表快照包含所述服务器的文件列表的信息;
所述终端根据所述第二文件列表快照和所述第三文件列表快照确定待同步文件的标识和操作,并根据所述待同步文件的标识和操作与所述服务器进行文件同步。
2.如权利要求1所述的方法,其特征在于,所述当前所述本地文件列表的更新操作包括本地添加、本地删除和本地修改。
3.如权利要求2所述的方法,其特征在于,所述根据所述第二文件列表快照和所述第三文件列表快照确定待同步文件的标识和操作包括:
所述终端根据所述第二文件列表快照和所述第三文件列表快照,确定所述服务器的文件列表的更新操作;
所述终端根据所述本地文件列表的更新操作和所述服务器的文件列表的更新操作,确定所述待同步文件的标识和操作。
4.如权利要求3所述的方法,其特征在于,所述根据所述本地文件列表的更新操作和所述服务器的文件列表的更新操作,确定所述待同步文件的标识和操作包括:
所述终端根据所述本地文件列表的更新操作和所述服务器的文件列表的更新操作,确定操作分类;
所述终端根据所述操作分类,对所述本地文件列表的更新操作和所述服务器的文件列表的更新操作进行合并,确定所述待同步文件的标识和操作。
5.如权利要求1-4任一所述的方法,其特征在于,所述根据所述待同步文件的标识和操作与所述服务器进行文件同步还包括:
当接收所述服务器发送的所述服务器正在与其他可用于同步的装置进行文件同步的状态时,暂停与所述服务器的文件同步操作。
6.如权利要求1-4任一所述的方法,其特征在于,所述待同步文件的标识和操作中的操作包括上传、下载、重命名或删除。
7.如权利要求1-4任一所述的方法,其特征在于,还包括:
设置工作模式,所述工作模式包括单向同步、双向同步或选择性同步。
8.一种可用于同步的装置,其特征在于,包括:
第一获取单元,用于获取第一文件列表快照,所述第一文件列表快照包含上一次同步结束时本地文件列表的信息;
第二获取单元,用于将所述第一获取单元获取的第一文件列表快照和当前所述本地文件列表的信息进行比较,获取第二文件列表快照,所述第二文件列表快照包含当前所述本地文件列表的更新操作;
发送单元,用于向服务器发送文件列表快照请求;
接收单元,用于接收所述服务器发送的第三文件列表快照,所述第三文件列表快照包含所述服务器的文件列表的信息;
同步单元,用于根据所述第二获取单元获取的第二文件列表快照和所述接收单元接收的第三文件列表快照确定待同步文件的标识和操作,并根据所述待同步文件的标识和操作与所述服务器进行文件同步。
9.如权利要求8所述的装置,其特征在于,所述同步单元具体用于根据所述第二获取单元获取的第二文件列表快照和所述接收单元接收的第三文件列表快照,确定所述服务器的文件列表的更新操作;以及,
用于根据所述本地文件列表的更新操作和所述服务器的文件列表的更新操作,确定所述待同步文件的标识和操作。
10.如权利要求8-9任一所述的装置,其特征在于,所述同步单元还用于当接收所述服务器发送的所述服务器正在与其他可用于同步的装置进行文件同步的状态时,暂停与所述服务器的文件同步操作。
11.如权利要求8-9任一所述的装置,其特征在于,还包括:
设置单元,用于设置工作模式,所述工作模式包括单向同步、双向同步或选择性同步。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110415376.5A CN102404338B (zh) | 2011-12-13 | 2011-12-13 | 一种文件同步方法和装置 |
JP2014526366A JP5870193B2 (ja) | 2011-12-13 | 2012-06-12 | ファイル同期方法及び装置 |
PCT/CN2012/076773 WO2013086842A1 (zh) | 2011-12-13 | 2012-06-12 | 一种文件同步方法和装置 |
KR1020137033562A KR20140010187A (ko) | 2011-12-13 | 2012-06-12 | 파일 동기화 방법 및 장치 |
EP12856915.9A EP2706719B1 (en) | 2011-12-13 | 2012-06-12 | File synchronization method and device |
ES12856915.9T ES2563297T3 (es) | 2011-12-13 | 2012-06-12 | Método y dispositivo para la sincronización de archivos |
US13/622,660 US20130151468A1 (en) | 2011-12-13 | 2012-09-19 | File synchronization method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110415376.5A CN102404338B (zh) | 2011-12-13 | 2011-12-13 | 一种文件同步方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102404338A CN102404338A (zh) | 2012-04-04 |
CN102404338B true CN102404338B (zh) | 2014-08-20 |
Family
ID=45886124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110415376.5A Active CN102404338B (zh) | 2011-12-13 | 2011-12-13 | 一种文件同步方法和装置 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP2706719B1 (zh) |
JP (1) | JP5870193B2 (zh) |
KR (1) | KR20140010187A (zh) |
CN (1) | CN102404338B (zh) |
ES (1) | ES2563297T3 (zh) |
WO (1) | WO2013086842A1 (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404338B (zh) * | 2011-12-13 | 2014-08-20 | 华为技术有限公司 | 一种文件同步方法和装置 |
CN103581240B (zh) | 2012-07-27 | 2017-07-21 | 华为终端有限公司 | 下载应用程序的方法、用户设备和应用服务器 |
CN103237007A (zh) * | 2013-03-22 | 2013-08-07 | 华为技术有限公司 | 媒体文件更新方法及装置 |
CN103220358B (zh) * | 2013-04-19 | 2016-12-28 | 深圳如果技术有限公司 | 一种多终端在线文件同步方法、系统、服务器及终端设备 |
CN103258018B (zh) * | 2013-04-27 | 2016-08-10 | 北京金和软件股份有限公司 | 一种精确监控目录文件夹中文件变化的文件同步方法 |
CN103369037A (zh) * | 2013-06-28 | 2013-10-23 | 深圳市掌讯通讯设备有限公司 | 一种安卓智能设备间数据自动同步方法 |
CN103365688B (zh) * | 2013-06-28 | 2018-08-31 | 深圳市掌讯通讯设备有限公司 | 一种安卓智能设备间软件自动安装与同步方法 |
CN103473341A (zh) * | 2013-09-23 | 2013-12-25 | 网易(杭州)网络有限公司 | 一种播放列表生成方法和设备 |
CN104796442B (zh) * | 2014-01-17 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 网页访问信息同步方法、装置及系统 |
WO2015157904A1 (zh) * | 2014-04-15 | 2015-10-22 | 华为技术有限公司 | 一种文件同步方法、服务器及终端 |
JP6442915B2 (ja) * | 2014-08-15 | 2018-12-26 | 富士ゼロックス株式会社 | 通信端末、通信システム及びプログラム |
JP6298903B2 (ja) * | 2015-01-30 | 2018-03-20 | 株式会社日立製作所 | 計算機システム、分散オブジェクト共有方法、エッジノード |
CN104580533B (zh) * | 2015-02-05 | 2018-06-19 | 中国农业银行股份有限公司 | 一种交易文件的下发方法及装置 |
CN106682040A (zh) * | 2015-11-11 | 2017-05-17 | 中兴通讯股份有限公司 | 数据管理方法及装置 |
CN106101265A (zh) * | 2016-07-26 | 2016-11-09 | 浪潮软件股份有限公司 | 一种在网盘和桌面端之间进行文件同步的方法 |
CN106302672A (zh) * | 2016-08-05 | 2017-01-04 | 上海斐讯数据通信技术有限公司 | 网络管理系统及其数据同步方法 |
CN106375861A (zh) * | 2016-10-10 | 2017-02-01 | 合网络技术(北京)有限公司 | 视频播放方法及装置 |
CN106657274A (zh) * | 2016-11-16 | 2017-05-10 | 武汉斗鱼网络科技有限公司 | 对应用文件进行处理的方法及装置 |
CN107103192A (zh) * | 2017-04-21 | 2017-08-29 | 上海联影医疗科技有限公司 | 医学图像处理系统及其数据管理方法 |
CN107819871B (zh) * | 2017-11-22 | 2020-12-25 | 北京小米移动软件有限公司 | 应用状态确定方法及装置 |
CN108573014B (zh) * | 2017-12-19 | 2021-05-28 | 北京金山云网络技术有限公司 | 一种文件同步方法、装置、电子设备及可读存储介质 |
US10866963B2 (en) * | 2017-12-28 | 2020-12-15 | Dropbox, Inc. | File system authentication |
CN108921712A (zh) * | 2018-06-13 | 2018-11-30 | 泰康保险集团股份有限公司 | 数据处理方法、装置、介质及电子设备 |
KR102133925B1 (ko) * | 2018-07-30 | 2020-07-14 | 네이버 주식회사 | 데이터 동기화 트래픽을 최소화하기 위한 방법 및 시스템 |
CN109246245A (zh) * | 2018-10-31 | 2019-01-18 | 武汉新迪数字工程系统有限公司 | 实现文件同步的方法、服务器、系统及存储介质 |
CN112084159B (zh) * | 2020-07-28 | 2023-02-21 | 重庆攸亮科技股份有限公司 | 一种基于蓝牙通信的文件同步系统和同步方法 |
CN117112508B (zh) * | 2023-10-20 | 2024-02-06 | 杭州美创科技股份有限公司 | 基于序号的文件同步方法、装置、计算机设备及存储介质 |
CN117290328B (zh) * | 2023-11-22 | 2024-02-27 | 苏州元脑智能科技有限公司 | 存储系统文件并发同步方法、装置、设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453418A (zh) * | 2007-12-05 | 2009-06-10 | 高德软件有限公司 | 客户端与服务器同步的更新方法 |
US7734826B2 (en) * | 2001-03-16 | 2010-06-08 | Novell, Inc. | Client-server model for synchronization of files |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574657B1 (en) * | 1999-05-03 | 2003-06-03 | Symantec Corporation | Methods and apparatuses for file synchronization and updating using a signature list |
JP4142866B2 (ja) * | 2001-11-07 | 2008-09-03 | カシオソフト株式会社 | データベース同期化装置及びプログラム |
US7567991B2 (en) * | 2003-06-25 | 2009-07-28 | Emc Corporation | Replication of snapshot using a file system copy differential |
KR100678921B1 (ko) * | 2005-10-18 | 2007-02-05 | 삼성전자주식회사 | 다중 서버 환경에 적합한 디바이스를 클라이언트로 하여동기화를 수행하는 방법 및 장치 |
US8503984B2 (en) * | 2009-12-23 | 2013-08-06 | Amos Winbush, III | Mobile communication device user content synchronization with central web-based records and information sharing system |
CN102404338B (zh) * | 2011-12-13 | 2014-08-20 | 华为技术有限公司 | 一种文件同步方法和装置 |
-
2011
- 2011-12-13 CN CN201110415376.5A patent/CN102404338B/zh active Active
-
2012
- 2012-06-12 WO PCT/CN2012/076773 patent/WO2013086842A1/zh active Application Filing
- 2012-06-12 JP JP2014526366A patent/JP5870193B2/ja active Active
- 2012-06-12 ES ES12856915.9T patent/ES2563297T3/es active Active
- 2012-06-12 KR KR1020137033562A patent/KR20140010187A/ko not_active Application Discontinuation
- 2012-06-12 EP EP12856915.9A patent/EP2706719B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7734826B2 (en) * | 2001-03-16 | 2010-06-08 | Novell, Inc. | Client-server model for synchronization of files |
CN101453418A (zh) * | 2007-12-05 | 2009-06-10 | 高德软件有限公司 | 客户端与服务器同步的更新方法 |
Also Published As
Publication number | Publication date |
---|---|
ES2563297T3 (es) | 2016-03-14 |
JP2014524621A (ja) | 2014-09-22 |
WO2013086842A1 (zh) | 2013-06-20 |
CN102404338A (zh) | 2012-04-04 |
JP5870193B2 (ja) | 2016-02-24 |
KR20140010187A (ko) | 2014-01-23 |
EP2706719A1 (en) | 2014-03-12 |
EP2706719A4 (en) | 2014-05-07 |
EP2706719B1 (en) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102404338B (zh) | 一种文件同步方法和装置 | |
CN108845816B (zh) | 应用程序更新方法、系统、计算机设备及存储介质 | |
CN103152398B (zh) | 一种多终端文件间的文件同步方法及系统 | |
CN102349062B (zh) | 浏览器缓存与远程仓库同步的方法和系统 | |
CN103180842B (zh) | 云计算系统和用于该云计算系统的数据同步方法 | |
CN103384876B (zh) | 信息处理系统和数据处理方法 | |
WO2015117426A1 (zh) | 文件管理方法及装置 | |
CN103220358A (zh) | 一种多终端在线文件同步方法、系统、服务器及终端设备 | |
US20150227605A1 (en) | Information processing terminal, synchronization control method, and computer-readable recording medium | |
CN106407214A (zh) | 分布式存储方法与系统 | |
CN103731451A (zh) | 一种文件上传的方法及系统 | |
JP2011118771A (ja) | 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム | |
US20130151468A1 (en) | File synchronization method and device | |
CN104488248A (zh) | 一种文件同步方法、服务器及终端 | |
CN103605798A (zh) | 一种直接操作云端存储文件的方法 | |
US10972296B2 (en) | Messaging to enforce operation serialization for consistency of a distributed data structure | |
CN105450682A (zh) | 一种用于数据同步保存、向客户端同步数据的方法、装置和系统 | |
CN111177159A (zh) | 一种数据处理的系统、方法和数据更新设备 | |
CN104063475A (zh) | 用户自定义列表处理方法和装置 | |
CN104079623A (zh) | 多级云存储同步控制方法及系统 | |
CN110798358B (zh) | 分布式服务标识方法、装置、计算机可读介质及电子设备 | |
CN112988879B (zh) | 访问数据库的方法、系统、装置、存储介质及处理器 | |
CN111459416B (zh) | 一种基于分布式存储的热迁移系统及其迁移方法 | |
CN112866406A (zh) | 一种数据存储方法、系统、装置、设备及存储介质 | |
CN103812908B (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 |