CN105530284B - 文件同步方法 - Google Patents
文件同步方法 Download PDFInfo
- Publication number
- CN105530284B CN105530284B CN201410853440.1A CN201410853440A CN105530284B CN 105530284 B CN105530284 B CN 105530284B CN 201410853440 A CN201410853440 A CN 201410853440A CN 105530284 B CN105530284 B CN 105530284B
- Authority
- CN
- China
- Prior art keywords
- file
- block
- server
- synchronization
- hash value
- 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
Images
Classifications
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开一种终端装置的文件同步方法。本发明的一实施例的文件同步方法包括以下步骤:判断被分割成多个块文件(chunk file)的文件中是否产生变更事项;如果判断为文件中产生变更事项,则计算出关于经分割的多个块文件中的各个块文件的散列值;将由计算出的散列值构成的散列值列表传送给服务器;接收对与散列值列表中所包括的散列值中未存储在服务器中的散列值相对应的块文件的传送请求;以及响应于传送请求而向所述服务器传送块文件。
Description
技术领域
本发明涉及一种文件同步方法,更详细地,涉及一种通过将数据分割并存储为多个块文件(chunk file)形式,防止重复地存储相同的块文件,从而有效利用存储空间且以更快的速度实现同步的文件同步方法。
背景技术
将大量数据存储到云和服务器装置等多种存储环境中并使该数据与个人用终端装置同步的各种方法被广泛使用。例如,在增量同步(delta sync)方式的情况下,将终端装置中已存储的文件的变更内容与服务器进行同步时只传送文件的已变更的块而不是整个文件,从而可实现使同步中所需的时间最小化的效果。
除此之外,元数据同步(meta sync)和重复删除同步(deduplication sync)等技术被广泛应用。
但是,以往各种同步方式只是按功能以独立的方式存在,没有合并形式的同步方式,因此无法全部应用各个同步方式的优点。
发明内容
本发明是为了解决上述问题而提出的,本发明的目的在于提供一种文件同步方法,该方法可通过将各种方式的同步方式合并为一个方式来使传送效率最大化并使用于进行同步的传送数据最小化。
本发明的另一目的在于提供一种文件同步方法,该方法可通过以经加密的块文件(chunk file)形式存储文件而提高安全性。
本发明的又一目的在于提供一种文件同步方法,该方法可通过分离用于进行同步的块文件的散列表和实际存储有块文件的服务器而分散数据处理,从而能够使执行服务器装置与用户终端装置之间的同步时所需的时间最小化。
本发明的技术问题并不限定于上面提及的技术问题,本领域技术人员能够从下面的记载中明确理解没有提及的其他技术问题。
为了实现上述目的,本发明的一实施例的终端装置的文件同步方法包括以下步骤:判断被分割成多个块文件(chunk file)的文件中是否产生变更事项;如果判断为所述文件中产生变更事项,则计算出关于经分割的多个块文件中的各个块文件的散列值;将由所计算的散列值构成的散列值列表传送给服务器;接收对与所述散列值列表中所包括的散列值中未存储在所述服务器中的散列值相对应的块文件的传送请求;以及响应于所述传送请求而向所述服务器传送块文件。
根据本发明的一实施例,响应于所述传送请求而向所述服务器传送块文件的步骤可包括:利用响应于用户认证请求而从所述服务器接收的认证密钥加密所述块文件。
根据本发明的一实施例,所述文件中产生的变更事项可以是新的块文件被包括在所述文件中,或构成所述文件的多个块文件中的至少一个块文件被修改。
本发明的又一实施例的服务器的文件同步方法包括以下步骤:接收关于终端装置中已存储的多个块文件的散列值;对已存储的散列表和从所述终端装置接收的关于多个块文件的散列值进行比较;将传送请求信号传送给所述终端装置,所述传送请求信号是对与所述散列表中未包括的散列值相对应的块文件的信号;以及根据传送请求信号接收与所述终端装置中存储的块文件中未包括在所述散列表中的散列值相对应的块文件。
根据本发明的一实施例,进一步可包括以下步骤:从所述终端装置接收用户认证请求;以及生成与所述用户认证请求中所包括的用户认证信息相对应的散列表、文件表和元数据表,所述文件表包括利用所述块文件来生成文件所需的信息,所述元数据表包括所述文件的元数据信息。
根据本发明的一实施例,进一步可包括以下步骤:如果接收到所述块文件,则更新所述散列表、所述文件表和所述元数据表。
本发明的又一实施例的终端装置的文件同步方法包括以下步骤:接收包括关于服务器中已存储的多个文件的元数据信息的元数据表;对所接收的元数据表和终端装置中已存储的文件的元数据进行比较来检测产生修改事项的文件;向所述服务器请求对产生所述修改事项的文件的块文件的传送;以及从所述服务器接收产生所述修改事项的文件的块文件。
根据本发明的一实施例,进一步可包括以下步骤:如果接收到产生所述修改事项的文件的所述块文件,则更新产生所述修改事项的文件的元数据。
根据本发明的一实施例,从服务器接收所述元数据表的步骤进一步可包括:向所述服务器传送用户认证信息;以及如果利用所述用户认证信息的用户认证步骤成功,则接收与所述用户认证信息相对应的元数据表。
根据本发明的一实施例,接收产生所述修改事项的文件的块文件的步骤进一步可包括:从所述服务器接收用于利用块文件来生成文件的文件表;以及利用所述文件表,利用产生所述修改事项的文件的块文件和所述终端装置中已存储的多个块文件来生成完整的文件。
根据本发明的一实施例,向所述服务器请求对产生所述修改事项的文件的块文件的传送的步骤可包括:接收关于所述服务器中已存储的多个块文件的散列值;对终端装置中已存储的散列表和从所述服务器接收的关于多个块文件的散列值进行比较;以及将传送请求信号传送给所述服务器,所述传送请求信号是对与所述散列表中未包括的散列值相对应的块文件的信号。
本发明的又一实施例的服务器的文件同步方法包括以下步骤:计算出关于服务器中已存储的多个块文件的散列值;向终端装置传送由所计算的所述散列值构成的散列值列表;接收对与所述散列值列表中所包括的散列值中未存储在所述终端装置中的散列值相对应的块文件的传送请求;以及响应于所述传送请求而向所述终端装置传送块文件。
根据本发明的一实施例,响应于所述传送请求而向所述终端装置传送所述块文件的步骤可包括:利用用户认证请求中所包括的用户认证信息生成认证密钥;以及利用所生成的认证密钥加密所述块文件。
本发明的又一实施例的计算机程序与计算机装置相结合来执行以下步骤:判断被分割成多个块文件(chunk file)的文件中是否产生变更事项;如果判断为所述文件中产生变更事项,则计算出关于经分割的多个块文件中的各个块文件的散列值;将由所计算的所述散列值构成的散列值列表传送给服务器;接收对与所述散列值列表中所包括的散列值中未存储在所述服务器中的散列值相对应的块文件的传送请求;以及响应于所述传送请求而向所述服务器传送块文件。
本发明的又一实施例的计算机程序与计算机装置相结合来执行以下步骤:接收关于终端装置中已存储的多个块文件的散列值;对已存储的散列表和从所述终端装置接收的关于多个块文件的散列值进行比较;将传送请求信号传送给所述终端装置,所述传送请求信号是对与所述散列表中未包括的散列值相对应的块文件的信号;以及根据所述传送请求信号接收与所述终端装置中存储的块文件中未包括在所述散列表中的散列值相对应的块文件。
如上所述,并非为了两装置之间的同步而传送文件整体,而是在将文件分割成多个块文件之后传送关于块文件的散列值来进行同步处理,可实现以下效果:不仅能够使同步所需的传送量最小化,而且能够使同步所需的时间最小化。
附图说明
图1是用于说明本发明的一实施例的文件同步方法的流程图。
图2是用于说明根据本发明的一实施例利用关于块文件的散列值来进行同步处理的方法的图。
图3是用于说明文件表和元数据表的图。
图4是用于说明根据本发明的一实施例在又一终端装置中实现同步的过程的图。
图5是用于说明利用元数据表来对又一终端装置进行同步的过程的图。
图6是用于说明根据本发明的一实施例按用户账号生成并管理元数据表、文件表和散列表的方法的图。
图7是用于说明本发明的一实施例的终端装置700的图。
具体实施方式
下面,参照附图对本发明的优选实施例进行详细说明。参照附图的同时参照详细地后述的实施例,将会明确本发明的优点及特性,以及实现这些的方法。但是,本发明并不限定于以下所公开的实施例,而是可以以彼此不同的多种方式实现,本实施例仅仅用于完整地公开本发明,并且为了向本发明所属技术领域的技术人员完整地告知本发明的范围而提供的,本发明仅由权利要求的范围定义。在说明书全文中相同的附图标记指相同的结构要素。
如果没有其他定义,则在本说明书中所使用的所有用语(包括技术用语及科技用语)可以以本发明所属技术领域的技术人员共同理解的含义使用。另外,在通常使用的词典中定义的用语只要没有被明确地特别定义,就不理想地或过度地解释。本说明书中所使用的用语用于说明实施例,并不限制本发明。在本说明书中,单数形式只要在句子中未特别提及就可以包括复数形式。
下面,参照图1,对本发明的一实施例的文件同步方法进行说明。本实施例可通过具备运算机构的计算装置来执行。所述计算装置例如可以是本发明的另一实施例的文件同步装置。稍后详细说明所述文件同步装置的结构和操作。以下,为了便于说明,对于实施本实施例的文件同步方法的各操作的主体,省略其记载。
可以在用户期望的时刻或以已设定的时间间隔,使终端装置中存储的数据与其他终端装置同步(S110)。在此,终端装置可由以下电子装置的多种结构要素中的一个来提供:如台式电脑、工作站、PDA(Personal Digital Assistants,个人数字助理)、便携式(portable)计算机、无线电话(wireless phone)、移动电话(mobile phone)、智能电话(smart phone)、电子书(e-book)、PMP(portable multimedia player,便携式多媒体播放器)、便携式游戏机、导航(navigation)装置、黑匣子(black box)、数码相机(digitalcamera)、电视机、可在无线环境中收发信息的装置、构成家庭网络的多种电子装置中的一个、构成计算机网络的多种电子装置中的一个、构成远程信息处理网络(telematicsnetwork)的多种电子装置中的一个、智能卡或构成计算系统的多种结构要素中的一个等。
或者,也可以在具有大容量存储空间的服务器装置中备份数据之后,通过周期性同步使得用户终端装置中存储的数据同样存储在服务器装置中。
如果开始同步,则判断在用户终端装置中已存储的多个文件数据中是否存在具有变更事项的文件(S120)。具体来讲,可通过确认文件的元数据来判断是否具有变更事项。由于在元数据中包括最终更新时间等关于文件历史的信息,因此如果确认该信息则可确认是否存在产生变更事项的文件。另外,文件数据中所产生的变更事项可以是新数据的增加、删除或现有数据的局部修改中的一个。
如果判断为在终端装置中已存储的文件中存在产生变更事项的文件,则将产生变更事项的文件分割成多个块文件(S130)。所谓块文件是指将大容量文件分割成规定大小的文件。被分割成多个块文件的文件数据以后也可以通过文件表重组成一个文件。
如果产生变更事项的文件被分割成多个块文件,则计算关于各个块文件的散列值(hash value)(S140)。如果计算出关于块文件的散列值,则将该散列值传送给服务器(S150)。
另外,服务器可具有包括关于服务器中已存储的多个块文件中的各个块文件的散列值信息的散列表。因此,如果对从终端装置送来的关于多个块文件的散列值和散列表进行比较(S160),则可知服务器中未存储的块文件是什么文件。
例如,终端装置中存储的文件被分割成块文件A、B、C、D、E且在服务器中只存储有A、B、C、D,则关于块文件E的散列值未包括在服务器中已存储的散列表中,因此可判断为,为了终端装置与服务器之间的同步而应向服务器传送E。
在对从终端装置接收的散列值和服务器中已存储的散列表进行比较之后存在散列表中未包括的散列值的情况下,服务器向终端装置请求对与该散列值相对应的块文件的传送(S170)。
之后,终端装置将成为传送请求对象的块文件传送给服务器,从而在终端装置与服务器之间实现同步(S180)。
如上所述,并非为了两装置之间的同步而传送文件整体,而是在将文件分割成多个块文件之后传送关于块文件的散列值来进行同步处理,可实现以下效果:不仅能够使同步所需的传送量最小化,而且能够使同步所需的时间最小化。
即,通常块文件的大小为64MB,与此相反将块文件输入到散列函数中而获取的散列值的大小为相对非常小的大小,因此与传送文件自身相比传送该散列值时所需的时间会减少。
此外,通过与服务器中已存储的散列表相比较而只接收与散列表中未包括的散列值相对应的块文件,也可以实现可大幅减少为了同步而需要的数据传送量的效果。
图2是用于说明根据本发明的一实施例利用关于块文件的散列值来进行同步处理的方法的图。
本实施例中以在终端装置210与服务器220之间实现同步为例进行了说明,但并不限定于此,也可以以在彼此不同的电子装置之间实现同步的方式实现。
此外,在本实施例中列举了终端装置210中存储有第一文件211至第三文件215,并且服务器220的存储器221中存储有块文件A、B、C、D的情况。
即,在先前步骤中与终端装置210同步的服务器220的存储器221中存储有块文件A、B、C、D的含义意味着可通过组合块文件A、B、C、D来生成终端装置210中存储的第一文件211至第三文件215。
但是,观察图2所示的图,则第一文件211由块文件“A、B、C、D、G”构成,第二文件213由块文件“B、C、D、H、I”构成,第三文件215由块文件“A、B、D、I、J”构成,因此可知通过文件修改在第一文件211中增加有新的块文件“G”,在第二文件213中增加有“H、I”,在第三文件215中增加有“I、J”。
如果文件由于新数据增加而变更,则向服务器传送关于已变更的第一文件211至第三文件215的块文件的散列值。即,向服务器传送关于第一文件211的块文件A、B、C、D、G的散列值、关于第二文件213的块文件B、C、D、H、I的散列值和关于第三文件215的块文件A、B、D、I、J的散列值。
另外,如图2所示,服务器220的存储器221中只存储有块文件A、B、C、D,因此散列表223中只包括关于A、B、C、D的散列值。
即,由于关于构成终端装置210中存储的文件的第一文件211的块文件G、第二文件213的块文件H、I和第三文件215的块文件I、J的散列值不包括在散列表223中,因此向终端装置210请求对该块文件的传送。
之后,服务器220从终端装置210接收第一文件211的块文件G、第二文件213的块文件H、I和第三文件215的块文件I、J并存储在存储器221中。此外,一旦接收到新的块文件而存储在存储器221中,则使关于新接收到的块文件的散列值包括在散列表223中。
如上所述,在将终端装置210中存储的文件分割成多个块文件,并且接收关于经分割的各个块文件的散列值之后,通过请求对服务器220中未已存储的块文件的传送来执行同步,则可实现不仅能够减少为了同步而传送的数据量,而且也可以使所需的时间最小化的效果。
另外,以块文件形式存储的文件可通过利用服务器中所包括的文件表和元数据表来重组为完整的文件。
图3是用于说明文件表和元数据表的图。
由于在服务器220中以构成文件的多个块文件形式来存储,而不是存储整个文件,因此其他终端装置为了从服务器220接收块文件来组合成一个文件,还需要同时接收文件表310。
例如,在用户通过使智能电话和服务器220同步而将智能电话中存储的文件以块文件形式存储在服务器220之后,想要进一步使作为其他终端装置的平板电脑同步时,不仅要接收服务器220中存储的块文件,而且也要同时接收用于利用块文件来生成文件的文件表310。
具体来讲,文件表310中可包括用于利用块文件来生成完整的一个文件的信息。例如,如图3所示,可包括第一文件由块文件A、B、C、D、E、F、G构成且第二文件由A、B、D、E、G、H、I构成的信息。
因此,作为同步对象的其他电子装置同时接收服务器220中存储的多个块文件和上述的文件表310则可生成完整的文件。
此外,服务器中除散列表223和文件表310之外也可以同时存储有元数据表320。元数据表320包括关于由存储器221中存储的块文件生成的文件的元数据。
具体来讲,元数据表320中可包括关于要由块文件生成的文件的各种信息,例如可包括关于文件ID、文件所有者、文件大小、生成时间和最终更新时间等的信息。
如上所述,由于存储块文件的服务器220中同时存储有要由块文件生成的文件的文件表310和元数据表320,因此下载块文件和上述多个表而非整体文件即可,则可实现能够减少为了同步而需要的传送数据量的效果。
图4是用于说明根据本发明的一实施例在又一终端装置中实现同步的过程的流程图。
在本实施例中说明用户使第一终端装置410和服务器220同步之后也对新的第二终端装置420进行同步的过程。在用户想要对作为新的终端装置的第二终端装置420进行同步的情况下,如果通过该终端装置首次接入到服务器220,则在服务器220中存储着的多个块文件、元数据表、散列表和文件表等被传送到作为新的终端装置的第二终端装置420。
之后,如果在服务器220中存储的多个块文件、元数据表、散列表和文件表中产生变更事项,则通过向第二终端装置420传送变更事项来维持同步。下面,说明在第一终端装置410中存储的文件中产生变更事项,从而首先在第一终端装置410与服务器220之间实现反映变更事项的同步,之后在服务器220与第二终端装置420之间实现同步的过程。
当在第一终端装置410和服务器220实现同步的状态下第一终端装置410中存储的文件中具有变更事项时,为了通过反映变更事项来维持同步,用户利用自身的用户账号向服务器220请求用户认证(S410)。
接收到用户认证请求的服务器220在通过确认认证信息而认证成功时生成认证密钥和令牌密钥(S420),并且将这些密钥返回给用户(S430)。
由于在将产生变更事项的文件分割成多个块文件并计算出关于经分割的各个块文件的散列值之后,通过将散列值传送给服务器220而只传送服务器中未存储的块文件的过程与上述的内容相同,因此对重复的说明不进行记载。
为了进行同步而确定要传送给服务器的块文件之后,利用从服务器220获取的令牌密钥加密传送对象块文件(S440)。之后,向服务器220传送经加密的块文件(S450),服务器220将新接收到的块文件存储在存储器中。
此外,服务器220执行将变更事项反映到与用户账号相应的散列表、元数据表和文件表的更新(S460)。
之后,当用户想要进一步同步第二终端装置420时,用户通过第二终端装置420输入用户认证信息,第二终端装置420将包括所输入的所述用户认证信息的用户认证请求发送给服务器220(S470)。
接收到用户认证信息的服务器220在通过进行用户认证步骤而用户认证成功时,将已更新的元数据表、文件表和散列表等传送给第二终端装置420(S480)。
接收到已更新的各种表的第二终端装置420对已存储的元数据表和已更新的元数据表进行比较来检测出产生变更事项的文件,并且将针对用于在已存储的文件中反映变更事项的块文件的传送请求传递给服务器(S490)。
响应于传送请求而服务器将新增加或变更的块文件传送给第二传送装置420,则第二终端装置420接收该块文件并重新存储增加或变更的块文件,通过更新第二终端装置420中存储着的元数据表等而完成同步。
如上所述,并非为了同步而传送整个文件,而是在优先从服务器220接收元数据表信息之后,只请求对产生变更事项的块文件的传送,从而能够使为了进行同步而传送的数据量最小化并使同步所需的时间最小化。
图5是用于说明通过利用元数据表来对又一终端装置进行同步的过程的图。
在本实施例中以在第一终端装置410、服务器220和第二终端装置420已同步的状态下因用户增加或变更第一终端装置410中已存储的文件而再次进行同步的过程为例进行说明。
即,说明在初期第一终端装置410、服务器220和第二终端装置420中存储有由块文件A、B、C构成的第一文件411和由块文件A、D构成的第二文件413而实现同步的状态下,用户通过第一终端装置410修改第一文件411和第二文件413时,经修改的内容通过服务器220在第二终端装置420中也实现同步的过程。
用户输入第一终端装置410与服务器220的同步请求信号,则判断第一终端装置410中已存储的第一文件411和第二文件413中是否产生变更事项。
具体来讲,由于在第一文件411和第二文件413的元数据中包括关于更新的信息,因此可通过元数据判断是否产生变更事项。
如果判断为产生变更事项,则计算出关于包括第一文件411中新包括的块文件E的各个块文件的散列值和第二文件413中所包括的各个块文件的散列值并传送给服务器220。
另外,处于在服务器220中尚未反映对第一文件411和第二文件413的变更事项的状态,因此存储器221中只存储有构成现有的第一文件411和第二文件413的块文件。
即,由于块文件E、F未存储在存储器221中,因此处于在散列表223中也未反映与块文件E、F相对应的散列值的状态。
因此,服务器220请求对新增加到第一终端装置410的块文件E和F的传送。如果从第一终端装置410接收到新的块文件,则将该新的块文件存储在存储器221中并更新散列表223、文件表310和元数据表320。
之后,用户可在通过第二终端装置420接入到服务器220之后,请求反映修改事项的同步。此时,用户通过第二终端装置420且利用自身的用户账号接入到服务器220并请求同步。
当用户在第二终端装置420中利用用户账号接入到服务器220时,向第二终端装置420传送与用户账号相对应的元数据表223。如上所述,由于元数据表223中包括关于文件更新的历史,因此利用该元数据表223可判断某文件中是否产生变更事项。
之后,接收关于服务器220中存储的多个块文件的散列值,并且对该散列值和第二终端装置420中存储的块文件的散列值进行比较,来向服务器220请求对第二终端装置420中未存储的块文件E和F的传送,从而完成同步。
另外,在上述的实施例中对一名用户通过自身账号使用户所使用的多个终端装置相互同步的过程进行了说明,但也可以通过给多个用户分配与其相对应的用户账号来实现同步。下面,对这样的实施例进行说明。
在一实施例中,第一用户具有第一用户账号,第二用户具有第二用户账号,并且在第一用户允许所述第二用户共享其自身的特定文件或一组文件的情况下,也可以扩展使用所说明的实施例。此时,图4至图5中的第一终端装置410表示第一用户在服务器220中注册的第一用户的终端装置中的一个,第二终端装置420表示第二用户在服务器220中注册的第二用户的终端装置中的一个。根据本实施例,具有能够进行个人之间的文件共享的效果。
在另一实施例中,第一用户具有第一用户账号,属于特定组的多个用户共享第二用户账号,并且在第一用户允许共享所述第二用户账号的多个用户共享其自身的特定文件或一组文件的情况下,也可以扩展适用所说明的实施例。此时,图4至图5中的第一终端装置410表示第一用户在服务器220中注册的第一用户的终端装置中的一个,第二终端装置420表示共享所述第二用户账号的所述特定组的用户在服务器220中注册的所述特定组的用户的终端装置中的一个。根据本实施例,具有能够进行个人与集体之间的文件共享的效果。
在又一实施例中,属于第一组的多个用户共享第一用户账号,属于第二组的多个用户共享第二用户账号,并且在共享所述第一用户账号的多个用户中的一个用户允许共享所述第二用户账号的多个用户共享其自身的特定文件或一组文件的情况下,也可以扩展适用所说明的实施例。此时,图4至图5中的第一终端装置410表示共享所述第一用户账号的所述第一组用户在服务器220中注册的所述第一组用户的终端装置中的一个,第二终端装置420表示共享所述第二用户账号的所述第二组用户在服务器220中注册的所述特定组用户终端装置中的一个。根据本实施例,具有能够进行集体与集体之间的文件共享的效果。
图6是用于说明根据本发明的一实施例按用户账号生成并管理元数据表、文件表和散列表的方法的图。
如图6所示,服务器220中可存储有与用户认证密钥相对应的多个散列表、文件表和元数据表。
当用户利用自身账号接入到服务器220来将增加或变更的块文件上传到服务器220时,与该账号相对应的散列表、文件表和元数据表也被更新。
在用户想要进一步同步其他终端装置的情况下,在该终端装置中利用用户账号接入到服务器220而接收与用户账号相对应的元数据表、文件表和散列表,则可接收已变更的文件的块文件,因此可取得与将文件原封不动地复制到实际要进行同步的终端装置中的情况相同的效果。
例如,在用户A想要对智能电话和服务器220进行同步的情况下,可通过自身的用户账号接入到服务器220之后,将智能电话中存储的文件的块文件传送给服务器220。
此时,在服务器220中生成并存储与用户A相对应的散列表、文件表和元数据表。之后,在用户想要进一步同步作为其他终端装置的平板电脑的情况下,通过平板电脑且利用自身的用户账号接入到服务器220之后,接收服务器220中存储的多个块文件、散列表、文件表和元数据表,从而实现同步。
若如上所述生成与用户账号相对应的元数据表、文件表和散列表等并以这些表为基础实现同步,则可通过仅接收上述的表获得实质上传送文件的效果,因此可实现与复制物理文件来进行同步相比能够使被传送的数据量和所需的时间最小化的效果。
图7是用于说明本发明的一实施例的终端装置700的图。
本发明的一实施例的终端装置700可包括图7所示的结构。
具体来讲,终端装置700可包括执行命令的处理器710;内存720;存储装置730,存储有用于执行分组传送间隔控制方法的程序;和网络接口740(NIC),用于与连接于终端装置700的装置进行数据收发。
存储装置730中可存储有程序,所述程序执行以下步骤:判断被分割成多个块文件(chunk file)的文件中是否产生变更事项;如果判断为所述文件中产生变更事项,则计算出关于经分割的多个块文件中的各个块文件的散列值;将由所计算的散列值构成的散列值列表传送给服务器;接收对与在所述散列值列表中所包括的散列值中未存储在所述服务器中的散列值相对应的块文件的传送请求;以及响应于所述传送请求而向所述服务器传送块文件,上述的程序可在被加载到内存720之后通过处理器710执行。
或者,存储装置730中可存储有程序,所述程序执行以下步骤:接收包括关于服务器中已存储的多个文件的元数据信息的元数据表;对所接收的元数据表和终端装置中已存储的文件的元数据进行比较来检测出产生修改事项的文件;向所述服务器请求对产生所述修改事项的文件的块文件的传送;以及从所述服务器接收产生所述修改事项的文件的块文件,上述的程序可在被加载到内存720之后通过处理器710执行。
另外,在上述的实施例中以终端装置具有图7所示的结构来进行了说明,但还可以以服务器也具有上述的结构的方式实现。
此时,存储装置730中也可以存储有程序,所述程序执行以下步骤:接收关于终端装置中已存储的多个块文件的散列值;对已存储的散列表和从所述终端装置接收的关于多个块文件的散列值进行比较;将对与所述散列表中未包括的散列值相对应的块文件的传送请求信号传送给所述终端装置;以及根据所述传送请求信号接收与在所述终端装置中存储的块文件中未包括所述散列表中的散列值相对应的块文件。
或者,存储装置730中也可以存储有程序,所述程序包括以下步骤:计算出关于服务器中已存储的多个块文件的散列值;向终端装置传送由所计算的散列值构成的散列值表;接收对与在所述散列值列表中所包括的散列值中未存储在所述终端装置中的散列值相对应的块文件的传送请求;以及响应于所述传送请求而向所述终端装置传送块文件。
目前为止参照图1至图7进行说明的本发明的实施例的文件同步方法可通过在计算机可读介质上作为计算机可读代码实现的计算机程序的运行来执行。所述计算机可读介质例如可以是移动型存储介质(CD、DVD、蓝光盘、USB存储装置、移动式硬盘)或固定式存储介质(ROM、RAM、计算机具备型硬盘)。在所述计算机可读存储介质中存储的所述计算机程序能够通过互联网等网络从第一计算装置传送到第二计算装置而安装在所述第二计算装置上,由此能够在所述第二计算装置中使用。所述第一计算装置和所述第二计算装置均包括如服务器装置、台式电脑等固定式计算装置,如笔记本电脑、智能电话和平板电脑等移动计算装置,以及如智能手表和智能眼镜等可穿戴计算装置。
以上,参照附图对本发明的实施例进行了说明,但本领域技术人员应该理解在不变更其技术思想或必要特征的基础上本发明能够实施为其他具体方式。因此,应该理解以上所述的实施例在所有方面上为示例性的而非限制性的。
Claims (15)
1.一种终端装置的文件同步方法,其在终端装置中执行,其特征在于,包括以下步骤:
在多个文件中确定第一同步对象文件和第二同步对象文件,所述第一同步对象文件为第一块文件中产生变更事项的文件,所述第二同步对象文件为第二块文件中产生变更事项的文件;
计算出关于在所述第一同步对象文件和所述第二同步对象文件中所包括的多个块文件各自的散列值,所述多个块文件包括所述第一块文件和所述第二块文件;
将包括所计算的散列值的散列值列表传送给服务器;
接收对与所述散列值列表中所包括的散列值中未包括在所述服务器的散列表中的散列值相对应的同步对象块文件的传送请求;以及
响应于所述传送请求,在所述第一块文件和所述第二块文件中仅将所述第一块文件传送给所述服务器,
在所述服务器中以去除重复的块文件为单位存储完成同步的文件,
所述散列表中包括与所述去除重复的块文件对应的散列值,
所述第一块文件的散列值与所述第二块文件的散列值相同。
2.根据权利要求1所述的终端装置的文件同步方法,其中,
仅将所述第一块文件传送给所述服务器的步骤包括:
利用响应于用户认证请求而从所述服务器接收的认证密钥加密所述第一块文件。
3.根据权利要求1所述的终端装置的文件同步方法,其中,
所述变更事项是:新的块文件被包括在所述文件中,或多个块文件中的至少一个块文件被修改。
4.根据权利要求1所述的终端装置的文件同步方法,其中,
确定所述第一同步对象文件和所述第二同步对象文件的步骤包括:
利用所述第一同步对象文件和所述第二同步对象文件各自的元数据来判断是否产生变更事项。
5.根据权利要求1所述的终端装置的文件同步方法,其中,
仅将所述第一块文件传送给所述服务器的步骤是为了文件同步而向所述服务器传送所述第一块文件。
6.一种服务器的文件同步方法,其在服务器中执行,其特征在于,包括以下步骤:
接收关于终端装置中已存储的第一同步对象文件和第二同步对象文件所包括的多个块文件的散列值,所述第一同步对象文件包括产生变更事项的第一块文件,所述第二同步对象文件包括产生变更事项的第二块文件;
对服务器中已存储的散列表中的散列值和所述接收到的散列值进行比较;
根据所述比较的结果,在所述接收到的散列值中选择未包括在所述散列表中的散列值;
将传送请求信号传送给所述终端装置,所述传送请求信号是对与所述选择的散列值相对应的同步对象块文件的信号;以及
从所述终端装置仅接收与所述选择的散列值对应的所述第一块文件,
所述服务器以去除重复的块文件为单位存储完成同步的文件,
所述散列表中包括与所述去除重复的块文件对应的散列值,
所述第一块文件的散列值与所述第二块文件的散列值相同。
7.根据权利要求6所述的服务器的文件同步方法,进一步包括以下步骤:
从所述终端装置接收用户认证请求;以及
生成与所述用户认证请求中所包括的用户认证信息相对应的散列表、文件表和元数据表,
所述文件表包括利用所述第一块文件来生成所述第一同步对象文件所需的信息,所述元数据表包括所述第一同步对象文件的元数据信息。
8.根据权利要求7所述的服务器的文件同步方法,进一步包括以下步骤:
响应于所述第一块文件的接收,更新所述散列表、所述文件表和所述元数据表。
9.一种终端装置的文件同步方法,其在终端装置中执行,其特征在于,包括以下步骤:
接收包括关于服务器中已存储的多个文件的元数据信息的元数据表,所述多个文件包括第一同步对象文件和第二同步对象文件,所述第一同步对象文件为在第一块文件中产生变更事项的文件,所述第二同步对象文件为在第二块文件中产生变更事项的文件;
对所接收的所述元数据表和所述终端装置中已存储的文件的元数据进行比较来检测产生变更事项的文件,所述检测到的文件包括将与所述第一同步对象文件同步的第一文件和将与所述第二同步对象文件同步的第二文件;
从所述服务器接收关于包括所述第一块文件及所述第二块文件的第一多个块文件的第一散列值列表;
对关于包括在所述第一文件及所述第二文件中的第二多个块文件的第二散列值列表与所述第一散列值列表进行比较,向所述服务器传送对同步对象块的传送请求信号,所述同步对象块与仅在所述第二散列值列表中未包括的散列值对应;以及
当所述第一块文件的散列值和所述第二块文件的散列值相同时,从所述服务器仅接收所述第一块文件,
在所述服务器中以去除重复的块文件为单位存储所述多个文件。
10.根据权利要求9所述的终端装置的文件同步方法,进一步包括以下步骤:
响应于所述第一块文件的接收,更新产生所述变更事项的文件的元数据。
11.根据权利要求9所述的终端装置的文件同步方法,其中,
从所述服务器接收所述元数据表的步骤进一步包括:
向所述服务器传送用户认证信息;以及
响应于利用所述用户认证信息的用户认证步骤的成功,接收与所述用户认证信息相对应的元数据表。
12.根据权利要求9所述的终端装置的文件同步方法,其中,
接收所述第一块文件的步骤进一步包括以下步骤:
从所述服务器接收文件表;以及
利用所述文件表,利用产生所述变更事项的文件的块文件和所述终端装置中已存储的多个块文件来生成文件。
13.根据权利要求9所述的终端装置的文件同步方法,其中,
向所述服务器传送对所述同步对象块的传送请求信号的步骤包括:
接收关于所述服务器中已存储的多个块文件的散列值;
对终端装置中已存储的散列表和所接收的散列值进行比较;以及
将传送请求信号传送给所述服务器,所述传送请求信号是对与所述散列表中未包括的散列值相对应的块文件的信号。
14.一种服务器的文件同步方法,其在服务器中执行,其特征在于,包括以下步骤:
向终端装置传送关于在多个文件中第一同步对象文件和第二同步对象文件中所包括的多个块文件的散列值列表,所述第一同步对象文件包括产生变更事项的第一块文件,所述第二同步对象文件包括产生变更事项的第二块文件;
当所述终端装置中未存储有所述第一块文件的散列值和所述第二块文件的散列值时,仅接收关于所述第一块文件的传送请求;以及
响应于所述传送请求而向所述终端装置传送第一块文件,
所述服务器以去除重复的块文件为单位存储所述多个文件,
所述第一块文件的散列值与所述第二块文件的散列值相同。
15.根据权利要求14所述的服务器的文件同步方法,其中,
向所述终端装置传送所述第一块文件的步骤包括:
利用用户认证请求中所包括的用户认证信息生成认证密钥;以及
利用所生成的认证密钥加密所述第一块文件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140142850A KR101960339B1 (ko) | 2014-10-21 | 2014-10-21 | 파일 동기화 방법 |
KR10-2014-0142850 | 2014-10-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105530284A CN105530284A (zh) | 2016-04-27 |
CN105530284B true CN105530284B (zh) | 2020-10-02 |
Family
ID=55749233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410853440.1A Active CN105530284B (zh) | 2014-10-21 | 2014-12-31 | 文件同步方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9697225B2 (zh) |
KR (1) | KR101960339B1 (zh) |
CN (1) | CN105530284B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102249826B1 (ko) * | 2015-01-06 | 2021-05-11 | 삼성전자주식회사 | 데이터 관리 방법 및 이를 수행하는 전자 장치 |
US10410247B2 (en) * | 2015-01-15 | 2019-09-10 | Adobe Inc. | Audio data sampling and user profile generation for advertisement control |
US10147061B2 (en) * | 2015-06-29 | 2018-12-04 | Applied Software Technology, Inc. | Integrating a construction jobsite system with external tools |
WO2017026987A1 (en) * | 2015-08-07 | 2017-02-16 | Hewlett Packard Enterprise Development Lp | Encrypted data chunks |
US10157047B2 (en) * | 2015-10-19 | 2018-12-18 | Facebook, Inc. | Methods and systems for communicating application prototype information |
US9870062B2 (en) | 2015-11-11 | 2018-01-16 | Facebook, Inc. | Methods and systems for defining gestures for a user interface |
US10419401B2 (en) * | 2016-01-08 | 2019-09-17 | Capital One Services, Llc | Methods and systems for securing data in the public cloud |
CN106599106A (zh) * | 2016-11-28 | 2017-04-26 | 深圳中兴网信科技有限公司 | 基于分布式文件系统的数据同步方法及装置 |
US10922720B2 (en) * | 2017-01-11 | 2021-02-16 | Adobe Inc. | Managing content delivery via audio cues |
CN107018185B (zh) * | 2017-03-28 | 2020-04-07 | 清华大学 | 云存储系统的同步方法和装置 |
US10282125B2 (en) * | 2017-04-17 | 2019-05-07 | International Business Machines Corporation | Distributed content deduplication using hash-trees with adaptive resource utilization in distributed file systems |
CN107249045B (zh) | 2017-07-31 | 2018-07-10 | 合肥工业大学 | 便携式内窥镜多模态信息同步存储方法和系统 |
KR102300191B1 (ko) * | 2019-09-09 | 2021-09-08 | 주식회사 엘지유플러스 | 컨텐츠에 대한 블록 체인의 블록 갱신 방법 및 서버 |
US11330079B2 (en) * | 2020-01-08 | 2022-05-10 | Sap Se | Environment for developing of distributed multicloud applications |
CN111787074B (zh) * | 2020-06-18 | 2023-04-21 | 杭州美创科技股份有限公司 | 一种文件同步方法及终端 |
CN111917556B (zh) * | 2020-07-23 | 2022-02-08 | 平安证券股份有限公司 | 交互文件检测方法、装置、终端及存储介质 |
CN112948344A (zh) * | 2021-04-09 | 2021-06-11 | 苏州菲瑞斯信息技术有限公司 | 基于hdfs技术的数据库备份的服务器及系统 |
US20240232024A9 (en) * | 2022-10-24 | 2024-07-11 | Dell Products L.P. | Method and system for generating incremental approximation backups of limited access cloud data |
WO2024158062A1 (ko) * | 2023-01-26 | 2024-08-02 | 라쿠텐 심포니 주식회사 | 파일의 중복 여부 판단 |
KR102599116B1 (ko) * | 2023-02-20 | 2023-11-07 | 서강대학교산학협력단 | 데이터 중복 제거 방법 및 데이터 중복 제거를 수행하는 스토리지 장치 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102834803A (zh) * | 2009-11-23 | 2012-12-19 | 皮斯佩斯有限公司 | 在分布式存储系统中去除文件的重复的装置及方法 |
CN103649946A (zh) * | 2010-09-30 | 2014-03-19 | Emc公司 | 在网络上传输文件系统变化 |
CN103685162A (zh) * | 2012-09-05 | 2014-03-26 | 中国移动通信集团公司 | 文件存储和共享方法 |
US8782441B1 (en) * | 2012-03-16 | 2014-07-15 | Google Inc. | Methods and systems for storage of large data objects |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7788225B2 (en) * | 2005-03-18 | 2010-08-31 | Oracle International Corporation | Apparatus and method for identifying asynchronous data in redundant data stores and for re-synchronizing same |
US7882084B1 (en) * | 2005-12-30 | 2011-02-01 | F5 Networks, Inc. | Compression of data transmitted over a network |
US8205065B2 (en) | 2009-03-30 | 2012-06-19 | Exar Corporation | System and method for data deduplication |
US8543539B2 (en) * | 2009-09-16 | 2013-09-24 | Business Objects Software Limited | Method and system for capturing change of data |
US8306948B2 (en) | 2010-05-03 | 2012-11-06 | Panzura, Inc. | Global deduplication file system |
US9449014B2 (en) * | 2011-11-29 | 2016-09-20 | Dell Products L.P. | Resynchronization of replicated data |
CN104641365B (zh) * | 2012-09-19 | 2019-05-31 | 日立数据管理有限公司 | 在文件存储系统中使用检查点管理去复制的系统和方法 |
US9413691B2 (en) * | 2013-01-11 | 2016-08-09 | Brocade Communications Systems, Inc. | MAC address synchronization in a fabric switch |
US10366072B2 (en) * | 2013-04-05 | 2019-07-30 | Catalogic Software, Inc. | De-duplication data bank |
US20150006475A1 (en) * | 2013-06-26 | 2015-01-01 | Katherine H. Guo | Data deduplication in a file system |
CN103761162B (zh) * | 2014-01-11 | 2016-12-07 | 深圳清华大学研究院 | 分布式文件系统的数据备份方法 |
US9680833B2 (en) * | 2015-06-25 | 2017-06-13 | Imperva, Inc. | Detection of compromised unmanaged client end stations using synchronized tokens from enterprise-managed client end stations |
-
2014
- 2014-10-21 KR KR1020140142850A patent/KR101960339B1/ko active IP Right Grant
- 2014-12-31 CN CN201410853440.1A patent/CN105530284B/zh active Active
- 2014-12-31 US US14/588,119 patent/US9697225B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102834803A (zh) * | 2009-11-23 | 2012-12-19 | 皮斯佩斯有限公司 | 在分布式存储系统中去除文件的重复的装置及方法 |
CN103649946A (zh) * | 2010-09-30 | 2014-03-19 | Emc公司 | 在网络上传输文件系统变化 |
US8782441B1 (en) * | 2012-03-16 | 2014-07-15 | Google Inc. | Methods and systems for storage of large data objects |
CN103685162A (zh) * | 2012-09-05 | 2014-03-26 | 中国移动通信集团公司 | 文件存储和共享方法 |
Also Published As
Publication number | Publication date |
---|---|
US20160110377A1 (en) | 2016-04-21 |
KR101960339B1 (ko) | 2019-03-20 |
US9697225B2 (en) | 2017-07-04 |
KR20160046649A (ko) | 2016-04-29 |
CN105530284A (zh) | 2016-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105530284B (zh) | 文件同步方法 | |
US10534927B2 (en) | Identifying and blocking prohibited content items in a content management system | |
EP2976871B1 (en) | Local server for synced online content management system | |
KR101503202B1 (ko) | 데이터 동기화 | |
KR101732491B1 (ko) | 컴퓨팅 시스템에서의 저장 데이터의 무암호화 무결성 보호를 가능하게 하는 메카니즘 | |
US10180945B2 (en) | Data replication from a cloud-based storage resource | |
US20140304384A1 (en) | Uploading large content items | |
US9946740B2 (en) | Handling server and client operations uninterruptedly during pack and audit processes | |
US10348821B2 (en) | Prioritizing structural operations and distributing changes in a synced online content management system | |
US10250670B2 (en) | Streaming zip | |
US9930063B2 (en) | Random identifier generation for offline database | |
US20090327303A1 (en) | Intelligent allocation of file server resources | |
US10616328B2 (en) | Updating files between computing devices via a wireless connection | |
US20170091253A1 (en) | Interrupted synchronization detection and recovery | |
US11442892B2 (en) | File and data migration to storage system | |
US20170091300A1 (en) | Distinguishing event type | |
JP6435616B2 (ja) | ストレージ装置、ストレージシステム、ストレージシステムの制御方法および制御プログラム | |
US9418325B1 (en) | Document box synchronization on an imaging system | |
US20180007130A1 (en) | Peer-to-Peer Assisted Personal Synchronization | |
JP2019079281A (ja) | 同期処理装置、ファイル同期システムおよびプログラム | |
TW201723875A (zh) | 電子裝置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |