一种对公有云存储账户的数据进行备份的方法及系统的制作方法

文档序号:10471019阅读:232来源:国知局
一种对公有云存储账户的数据进行备份的方法及系统的制作方法
【专利摘要】本发明公开了一种对公有云存储账户的数据进行备份的方法及系统,所述方法包括以下步骤:S1,将个人私有云存储系统的账户与公有云存储账户及带有wifi功能的存储设备进行绑定;S2,个人私有云存储系统对公有云存储账户下的目录及文件名进行首次遍历,遍历完成后,将目录及文件名数据导出并保存至数据库中;S3,个人私有云存储系统将数据库中的数据生成多个任务并分配给带有wifi功能的存储设备;S4,带有wifi功能的存储设备联网后,根据当前任务中的目录及文件名自动从公有云存储账户中开始下载任务数据。本发明实现了数据从公有云存储账户智能化自动备份至用户的带有wifi功能的存储设备,保证了数据的安全性,全过程无需用户手工操作,数据备份效率高。
【专利说明】
一种对公有云存储账户的数据进行备份的方法及系统
技术领域
[0001]本发明涉及一种对公有云存储账户的数据进行备份的方法及系统,属于数据安全领域。
【背景技术】
[0002]数据备份,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。
[0003]云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。
[0004]在云存储系统(即公有云存储账户,如百度网盘、360云盘、金山快盘等)中,可以存储的数据量很大,因而很多用户为了清理手机内存同时与好友分享文件(比如照片、文档等),往往会将个人的私人文件发送至云存储系统中进行存储。但与此同时,又逐渐暴露了新的问题:比如云账号被盗,那么用户的个人隐私很可能就会被泄露。因此,使用云存储时,数据安全性问题成为用户的主要顾虑。另外,用户所需的某些重要文件上传至云存储系统后,可能会因为某些原因而导致审核未通过进而被删除,从而给用户带来一定的损失,同时造成不好的用户体验,因而对云存储系统中的数据进行及时备份就显的非常重要。
[0005]移动硬盘的存储空间一般也比较大,为用户个人拥有,用于存储备份重要的文件。用户若想将云存储系统中有用的文件(包括用户自己通过手机上传至云存储系统中的文件及其他人上传至云存储系统并分享给用户的文件)存入其移动硬盘中,则需要先通过电脑将文件从云存储系统下载下来,然后再存入移动硬盘。此外,若云存储系统中有文件更新,也仍需要用户去人工识别并下载存入其个人移动硬盘中。上述的操作方式复杂繁琐,需要手动操作,无法满足人们智能化的要求。

【发明内容】

[0006]本发明的目的在于,提供一种对公有云存储账户的数据进行备份的方法及系统,它可以有效解决现有技术中存在的问题,实现数据的智能化备份,保证了数据的安全性。
[0007]为解决上述技术问题,本发明采用如下的技术方案:一种对公有云存储账户的数据进行备份的方法,包括以下步骤:
[0008]SI,将个人私有云存储系统的账户与公有云存储账户及带有wifi功能的存储设备进行绑定;
[0009]S2,个人私有云存储系统对公有云存储账户下的目录及文件名进行首次遍历,遍历完成后,将目录及文件名数据导出并保存至数据库中;
[0010]S3,个人私有云存储系统将数据库中的数据生成多个任务并分配给带有wifi功能的存储设备;
[0011]S4,带有wifi功能的存储设备联网后,根据当前任务中的目录及文件名自动从公有云存储账户中开始下载任务数据。
[0012]优选的,步骤SI具体包括:
[0013]Sll,访问带有wifi功能的存储设备的Web管理界面,并利用个人私有云存储系统的账号和密码进行登陆;登陆成功后,该带有wifi功能的存储设备即与个人私有云存储系统的账户建立了绑定关系;
[0014]S12,在带有wifi功能的存储设备的Web管理界面上发起对公有云存储账户的绑定请求;通过公有云存储系统的API获取访问授权,得到一个授权key;
[0015]S13,将公有云存储系统的名称、授权key和带有wifi功能的存储设备的设备编号上传至个人私有云存储系统;个人私有云存储系统创建一个绑定关系记录,存储公有云存储账户与带有wifi功能的存储设备之间的关系。
[0016]通过上述方法实现将个人私有云存储系统的账户与公有云存储账户及带有wifi功能的存储设备进行绑定,从而可以实现个人私有云存储系统与带有wifi功能的存储设备和公有云存储系统之间以及带有Wifi功能的存储设备与公有云存储系统之间进行高效、安全、稳定的通信。
[0017]优选的,步骤S2具体包括:个人私有云存储系统对指定公有云存储账户下的目录及文件名进行首次遍历,生成META DATA的数组结构(即目录和文件的结构,还包含了最后修改时间、文件长度、MD5值、是否已经被下载到带有wifi功能的存储设备等信息);遍历完成后,将所述的文件名按照N个为一组,划分为多个组后,导出为json格式的数据(多种计算机语言都对其进行了支持),并保存至数据库中,从而可以优化个人云存储系统对备份任务的管理,便于向带有wifi功能的存储设备传递任务。
[0018]更优选的,遍历时,以目录或文件名称作为索引值,以文件长度、最后修改时间、MD5值、是否是目录等信息作为结构体类型的数据块;其中,所述的结构体中包含一个成员:fetched,用于表示是否已经被下载到用户的带有wifi功能的存储设备,fetched的默认值为0,从而可以便于生成META DATA,同时便于标记任务的下载完成情况;这样当带有wifi功能的存储设备下次再联网后,可以直接下载未完成的任务,而不用从头开始全部下载,减轻了带有wifi功能的存储设备的压力和数据传输效率。
[0019]前述的对公有云存储账户的数据进行备份的方法中,步骤S3具体包括:个人私有云存储系统将数据库中的数据按照分组生成多个任务组,并且每次分配一个任务组给带有wifi功能的存储设备,带有wifi功能的存储设备每次下载一部分任务信息,而不是全部的任务信息,从而可以便于获得新任务、更新任务的完成情况以及降低个人云存储平台的压力。
[0020]前述的对公有云存储账户的数据进行备份的方法,步骤S4具体包括:带有wifi功能的存储设备联网后,记录任务内容和分组的编号,并根据当前任务中的目录及文件名自动从公有云存储账户中开始下载任务数据;每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向个人私有云存储系统更新任务完成情况;个人私有云存储系统根据分组编号和文件名称在分组中查找文件记录,若找到对应的文件记录,则设置fetched= I(其中,每一个文件都对应了一个fetched值);若未找到对应的文件记录,贝Ij返回false信号至带有wifi功能的存储设备,带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组;带有wifi功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组。从而可以根据数据更新列表从公有云存储账户准确的备份所需数据,提高了数据备份的效率和整个系统的运行效率。
[0021]上述方法中,所述的带有wifi功能的存储设备联网后,首先连接到个人私有云存储系统,下载数据备份任务;其中,所有的任务都按照N个为一组,每组任务里均包含了公有云存储系统的账号信息和需要从此公有云存储系统中备份的文件名称。
[0022]上述方法中,在执行任务组的过程中,每完成一个文件的下载/备份,都可以向个人私有云存储系统更新任务完成情况,从而可以通过个人私有云存储系统清晰的看到任务执行的百分比。或者选择在完成一个任务组的全部或部分文件下载/备份后,整个任务组批量汇报完成情况,从而可以提高特别是大批量小文件下载时的下载效率。此外,如果出现带有wifi功能的存储设备任务列表中的文件与个人私有云存储系统的任务列表不匹配的情况,则以点滴云的任务列表为准,因此在未找到对应文件记录时,放弃未完成的任务组,重新获取第一个未完成的任务组。
[0023]前述的对公有云存储账户的数据进行备份的方法中,步骤S3还包括:个人私有云存储系统定期对公有云存储账户下的目录及文件名进行补充遍历(补充遍历的间隔时间可以调整,默认24小时一次),并与本地缓存的目录及文件名列表进行比对,找出新文件,生成下载/同步任务列表,从而可以仅对公有云存储账户更新的文件进行自动、及时备份,进一步提高了数据自动更新的效率。
[0024]优选的,所述的个人私有云存储系统定期对公有云存储账户下的目录及文件名进行补充遍历,并与本地缓存的目录及文件名列表进行比对,找出新文件,生成下载/同步任务列表具体包括:
[0025]首先,个人私有云存储系统从数据库中按照分组的顺序加载目录结构的json数据,在程序的内存中保存该数组结构,并将该数组命名为:old;(所述的数组中包含的元素可以通过文件名进行检索,每一个元素都包含了一个数据块,数据块内保存了与该文件名对应的MD5值、文件长度、最后修改时间等与METADATA相关的信息);
[0026]其次,按照首次遍历的方式对公有云存储账户下的目录及文件名进行补充遍历,获得最新的目录遍历结果的数组结构,并将该数组命名为:new;(其结构与old相同,同样的,该数组中包含的元素可以通过文件名进行检索,但是该数据结构中每一个元素包含的fetched 值都为O);
[0027]再次,从old数组中取出一个元素,在new数组中查找与该元素文件名相同的元素,如果没有找到,则放弃此old数组中的该元素;如果找到了对应的元素,则对比两个元素的MD5值或文件长度和最后修改时间(当公有云存储系统支持MD5值时,则通过对比MD5值;当公有云存储系统不支持MD5值时,则通过对比文件长度和最后修改时间来代替MD5值的比对;由于云盘的文件一旦下载/备份到带有wifi功能的存储设备后,用户会从云盘上删除对应的文件,然后存入更多的新文件到云盘;因此在个人私有云存储系统对公有云存储账户文件进行扫描时要考虑到这种情况的出现);如果相同,则把old数组中元素的fetched值复制给new数组中对应的元素;重复本操作,直到ο I d数组中所有的元素都取出;
[0028]最后,补充遍历完成后,将new数组的数据从程序的内存导出为json格式的数据,并以分组方式保存至数据库中。
[0029]上述方法中,在上一次扫描结果生成为多个任务组之后,在任务组中已经有部分任务已经完成了(fetched等于I),如果这些任务已经处于完成的状态,而且云盘中对应的文件没有删除,那么在最新的云盘文件扫描结果中,就要根据老的任务列表来设置任务的状态为已完成(设置fetched为I)。具体的说,通过上述方法,从而可以把最新的公有云存储的目录和文件结构与数据库中存储的老旧数据进行合并。如果老旧数据中记录的文件名在当前的公有云存储中已经不存在了(例如被用户删除了),那么就要在合并过程中删除这些记录;如果新旧记录里都有同名的文件,还要根据MD5的值或文件长度和最后修改时间来判断文件是否有内容的变化,如果文件产生了变化,就标记为未下载,否则就根据老记录的状态来设置任务的下载状态。对于只有新记录里存在的文件名,则直接设置为未下载。
[0030]一种对公有云存储账户的数据进行备份的系统,包括:
[0031]绑定模块,用于将个人私有云存储系统的账户与公有云存储账户及带有wifi功能的存储设备进行绑定;
[0032]遍历模块,用于个人私有云存储系统对公有云存储账户下的目录及文件名进行首次遍历;
[0033]第一数据导出及存储模块,用于遍历完成后,将目录及文件名数据导出并保存至数据库中;
[0034]任务生成及分配模块,用于个人私有云存储系统将数据库中的数据生成多个任务并分配给带有wifi功能的存储设备;
[0035]自动下载模块,用于带有wifi功能的存储设备联网后,根据当前任务中的目录及文件名自动从公有云存储账户中开始下载任务数据。
[0036]优选的,所述的绑定模块还包括:
[0037]登录模块,用于访问带有wifi功能的存储设备的Web管理界面,并利用个人私有云存储系统的账号和密码进行登陆;登陆成功后,该带有wifi功能的存储设备即与个人私有云存储系统的账户建立了绑定关系;
[0038]绑定请求发送模块,用于在带有wifi功能的存储设备的Web管理界面上发起对公有云存储账户的绑定请求;
[0039]访问授权获取模块,用于通过公有云存储系统的API获取访问授权,得到一个授权key;
[0040]信息上传模块,用于将公有云存储系统的名称、授权key和带有wifi功能的存储设备的设备编号上传至个人私有云存储系统;
[0041]记录创建模块,用于个人私有云存储系统创建一个绑定关系记录,存储公有云存储账户与带有wifi功能的存储设备之间的关系。
[0042]优选的,所述的遍历模块还包括:
[0043]数组结构生成模块,用于个人私有云存储系统对指定公有云存储账户下的目录及文件名进行首次遍历,生成META DATA的数组结构;
[0044]第一数据导出及存储模块还包括:
[0045]数据分组模块,用于遍历完成后,将所述的文件名按照N个为一组,划分为多个组。
[0046]前述的对公有云存储账户的数据进行备份的系统中,所述的自动下载模块还包括:
[0047]记录模块,用于带有wifi功能的存储设备联网后,记录任务内容和分组的编号;
[0048]任务完成更新t旲块,用于带有wifi功能的存储设备每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向个人私有云存储系统更新任务完成情况;
[0049]文件记录查找及设置模块,用于个人私有云存储系统根据分组编号和文件名称在分组中查找文件记录,若找到对应的文件记录,则设置fetched= I;若未找到对应的文件记录,贝1J返回false信号至带有wifi功能的存储设备;
[0050]任务放弃及重新获取模块,用于带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组;
[0051 ]任务自动请求模块,用于带有wif i功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组。
[0052]前述的对公有云存储账户的数据进行备份的系统中,所述的遍历模块还包括:
[0053]补充遍历及对比模块,用于个人私有云存储系统定期对公有云存储账户下的目录及文件名进行补充遍历;并与本地缓存的目录及文件名列表进行比对,找出新文件。
[0054]优选的,所述的补充遍历及对比模块还包括:
[0055]数据加载及存储模块:用于个人私有云存储系统从数据库中按照分组的顺序加载目录结构的json数据,在程序的内存中保存该数组结构,并将该数组命名为:old;
[0056]补充遍历模块:用于按照首次遍历的方式对公有云存储账户下的目录及文件名进行补充遍历,获得最新的目录遍历结果的数组结构,并将该数组命名为mew;
[0057]数据对比模块:用于从old数组中取出一个元素,在new数组中查找与该元素文件名相同的元素,如果没有找到,则放弃此old数组中的该元素;如果找到了对应的元素,则对比两个元素的MD5值或文件长度和最后修改时间(当公有云存储系统支持MD5值时,则通过对比MD5值;当公有云存储系统不支持MD5值时,则通过对比文件长度和最后修改时间来代替MD5值的比对);如果相同,则把old数组中元素的fetched值复制给new数组中对应的元素;重复本操作,直到ο Id数组中所有的元素都取出;
[0058]第二数据导出及存储模块,用于补充遍历完成后,将new数组的数据从程序的内存导出为json格式的数据,并以分组方式保存至数据库中。
[0059]与现有技术相比,本发明通过将个人私有云存储系统的账户与公有云存储账户及带有wifi功能的存储设备进行绑定;然后利用个人私有云存储系统对公有云存储账户下的目录及文件名进行首次遍历,遍历完成后,将数据导出并保存至数据库中;个人私有云存储系统将数据库中的数据生成多个任务并分配给带有Wifi功能的存储设备;带有Wifi功能的存储设备联网后,自动开始下载任务数据,从而实现了数据从公有云存储账户智能化自动备份至用户的带有Wifi功能的存储设备,保证了数据的安全性,整个过程均无需用户手工操作,数据备份效率较高。此外,本发明中个人私有云存储系统还定期对公有云存储账户下的目录及文件名进行补充遍历,找出新文件,生成下载/同步任务列表,从而可以仅对公有云存储账户更新的文件进行自动、及时备份,进一步提高了数据自动更新的效率。
【附图说明】
[0060]图1是本发明的一种实施例的工作流程图;
[0061 ]图2是个人私有云存储系统的账户与Baidu Yun账户及带有wifi功能的存储设备进行绑定的方法流程图;
[0062]图3是带有wifi功能的存储设备执行备份任务以及个人私有云存储系统(点滴云)发现公有云存储上有新文件并生成备份任务的流程图。
[0063]下面结合附图和【具体实施方式】对本发明作进一步的说明。
【具体实施方式】
[0064]本发明的实施例1:一种对公有云存储账户的数据进行备份的方法,如图1所示,包括以下步骤:
[0065]SI,将个人私有云存储系统的账户与公有云存储账户及带有wifi功能的存储设备(如带有wifi功能的存储设备)进行绑定;具体包括:
[0066]Sll,访问带有wifi功能的存储设备的Web管理界面,并利用个人私有云存储系统的账号和密码进行登陆;登陆成功后,该带有wifi功能的存储设备即与个人私有云存储系统的账户建立了绑定关系;
[0067]S12,在带有wifi功能的存储设备的Web管理界面上发起对公有云存储账户的绑定请求;通过公有云存储系统的API获取访问授权,得到一个授权key;
[0068]S13,将公有云存储系统的名称、授权key和带有wifi功能的存储设备的设备编号上传至个人私有云存储系统;个人私有云存储系统创建一个绑定关系记录,存储公有云存储账户与带有w i f i功能的存储设备之间的关系;
[0069]S2,个人私有云存储系统对公有云存储账户下的目录及文件名进行首次遍历,遍历完成后,将目录及文件名数据导出并保存至数据库中;具体包括:个人私有云存储系统对指定公有云存储账户下的目录及文件名进行首次遍历,生成META DATA的数组结构;遍历完成后,将所述的文件名按照N个为一组,划分为多个组后,导出为json格式的数据,并保存至数据库中;其中,遍历时,以目录或文件名称作为索引值,以文件长度、最后修改时间、MD5值、是否是目录等信息作为结构体类型的数据块;其中,所述的结构体中包含一个成员:fetched,用于表示是否已经被下载到用户的带有wifi功能的存储设备,fetched的默认值为O;
[0070]S3,个人私有云存储系统将数据库中的数据生成多个任务并分配给带有wifi功能的存储设备;具体包括:个人私有云存储系统将数据库中的数据按照分组生成多个任务组,并且每次分配一个任务组给带有wif i功能的存储设备;
[0071]还包括:个人私有云存储系统定期对公有云存储账户下的目录及文件名进行补充遍历(补充遍历的间隔时间可以调整,默认24小时一次),并与本地缓存的目录及文件名列表进行比对,找出新文件,生成下载/同步任务列表;其中,所述的个人私有云存储系统定期对公有云存储账户下的目录及文件名进行补充遍历,并与本地缓存的目录及文件名列表进行比对,找出新文件,生成下载/同步任务列表具体包括:
[0072]首先,个人私有云存储系统从数据库中按照分组的顺序加载目录结构的json数据,在程序的内存中保存该数组结构,并将该数组命名为:old;(所述的数组中包含的元素可以通过文件名进行检索,每一个元素都包含了一个数据块,数据块内保存了与该文件名对应的MD5值、文件长度、最后修改时间等与METADATA相关的信息);
[0073]其次,按照首次遍历的方式对公有云存储账户下的目录及文件名进行补充遍历,获得最新的目录遍历结果的数组结构,并将该数组命名为:new;(其结构与old相同,同样的,该数组中包含的元素可以通过文件名进行检索,但是该数据结构中每一个元素包含的fetched 值都为O);
[0074]再次,从old数组中取出一个元素,在new数组中查找与该元素文件名相同的元素,如果没有找到,则放弃此old数组中的该元素;如果找到了对应的元素,则对比两个元素的MD5值或文件长度和最后修改时间(当公有云存储系统支持MD5值时,则通过对比MD5值;当公有云存储系统不支持MD5值时,则通过对比文件长度和最后修改时间来代替MD5值的比对);如果相同,则把ο Id数组中元素的fe tched值复制给new数组中对应的元素;重复本操作,直到old数组中所有的元素都取出;
[0075]最后,补充遍历完成后,将new数组的数据从程序的内存导出为json格式的数据,并以分组方式保存至数据库中。
[0076]S4,带有wifi功能的存储设备联网后,根据当前任务中的目录及文件名自动从公有云存储账户中开始下载任务数据;具体包括:带有wif i功能的存储设备联网后,记录任务内容和分组的编号,并根据当前任务中的目录及文件名自动从公有云存储账户中开始下载任务数据;每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向个人私有云存储系统更新任务完成情况;个人私有云存储系统根据分组编号和文件名称在分组中查找文件记录,若找到对应的文件记录,则设置fetched = I;若未找到对应的文件记录,贝1J返回false信号至带有wifi功能的存储设备,带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组;带有wifi功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组。
[0077]一种对公有云存储账户的数据进行备份的系统,包括:
[0078]绑定模块,用于将个人私有云存储系统的账户与公有云存储账户及带有wifi功能的存储设备进行绑定;
[0079]遍历模块,用于个人私有云存储系统对公有云存储账户下的目录及文件名进行首次遍历;
[0080]第一数据导出及存储模块,用于遍历完成后,将目录及文件名数据导出并保存至数据库中;
[0081]任务生成及分配模块,用于个人私有云存储系统将数据库中的数据生成多个任务并分配给带有wifi功能的存储设备;
[0082]自动下载模块,用于带有wifi功能的存储设备联网后,根据当前任务中的目录及文件名自动从公有云存储账户中开始下载任务数据。
[0083]所述的绑定模块还包括:
[0084]登录模块,用于访问带有wifi功能的存储设备的Web管理界面,并利用个人私有云存储系统的账号和密码进行登陆;登陆成功后,该带有wifi功能的存储设备即与个人私有云存储系统的账户建立了绑定关系;
[0085]绑定请求发送模块,用于在带有wifi功能的存储设备的Web管理界面上发起对公有云存储账户的绑定请求;
[0086]访问授权获取模块,用于通过公有云存储系统的API获取访问授权,得到一个授权key;
[0087]信息上传模块,用于将公有云存储系统的名称、授权key和带有wifi功能的存储设备的设备编号上传至个人私有云存储系统;
[0088]记录创建模块,用于个人私有云存储系统创建一个绑定关系记录,存储公有云存储账户与带有wifi功能的存储设备之间的关系。
[0089]所述的遍历模块还包括:
[0090]数组结构生成模块,用于个人私有云存储系统对指定公有云存储账户下的目录及文件名进行首次遍历,生成METADATA的数组结构;
[0091]第一数据导出及存储模块还包括:
[0092]数据分组模块,用于遍历完成后,将所述的文件名按照N个为一组,划分为多个组。
[0093]所述的自动下载模块还包括:
[0094]记录模块,用于带有wifi功能的存储设备联网后,记录任务内容和分组的编号;
[0095]任务完成更新模块,用于带有wifi功能的存储设备每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向个人私有云存储系统更新任务完成情况;
[0096]文件记录查找及设置模块,用于个人私有云存储系统根据分组编号和文件名称在分组中查找文件记录,若找到对应的文件记录,则设置fetched= I;若未找到对应的文件记录,贝lJ返回false信号至带有wifi功能的存储设备;
[0097]任务放弃及重新获取模块,用于带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组;
[0098]任务自动请求模块,用于带有wifi功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组。
[0099]所述的遍历模块还包括:
[0100]补充遍历及对比模块,用于个人私有云存储系统定期对公有云存储账户下的目录及文件名进行补充遍历;并与本地缓存的目录及文件名列表进行比对,找出新文件。
[0101]所述的补充遍历及对比模块还包括:
[0102]数据加载及存储模块:用于个人私有云存储系统从数据库中按照分组的顺序加载目录结构的json数据,在程序的内存中保存该数组结构,并将该数组命名为:old;
[0103]补充遍历模块:用于按照首次遍历的方式对公有云存储账户下的目录及文件名进行补充遍历,获得最新的目录遍历结果的数组结构,并将该数组命名为mew;
[0104]数据对比模块:用于从old数组中取出一个元素,在new数组中查找与该元素文件名相同的元素,如果没有找到,则放弃此old数组中的该元素;如果找到了对应的元素,则对比两个元素的MD5值或文件长度和最后修改时间(当公有云存储系统支持MD5值时,则通过对比MD5值;当公有云存储系统不支持MD5值时,则通过对比文件长度和最后修改时间来代替MD5值的比对);如果相同,则把old数组中元素的fetched值复制给new数组中对应的元素;重复本操作,直到ο Id数组中所有的元素都取出;
[0105]第二数据导出及存储模块,用于补充遍历完成后,将new数组的数据从程序的内存导出为json格式的数据,并以分组方式保存至数据库中。
[0106]实施例2:—种对公有云存储账户的数据进行备份的方法,如图1所示,包括以下步骤:
[0107]SI,将个人私有云存储系统的账户与公有云存储账户及带有wifi功能的存储设备进行绑定;
[0108]S2,个人私有云存储系统对公有云存储账户下的目录及文件名进行首次遍历,遍历完成后,将目录及文件名数据导出并保存至数据库中;具体包括:个人私有云存储系统对指定公有云存储账户下的目录及文件名进行首次遍历,生成METADATA的数组结构;遍历完成后,将所述的文件名按照N个为一组,划分为多个组后,导出为json格式的数据,并保存至数据库中;其中,遍历时,以目录或文件名称作为索引值,以文件长度、最后修改时间、MD5值、是否是目录等信息作为结构体类型的数据块;其中,所述的结构体中包含一个成员:fetched,用于表示是否已经被下载到用户的带有wifi功能的存储设备,fetched的默认值为O;
[0109]S3,个人私有云存储系统将数据库中的数据生成多个任务并分配给带有wifi功能的存储设备;具体包括:个人私有云存储系统将数据库中的数据按照分组生成多个任务组,并且每次分配一个任务组给带有wif i功能的存储设备;
[0110]S4,带有wifi功能的存储设备联网后,根据当前任务中的目录及文件名自动从公有云存储账户中开始下载任务数据;具体包括:带有wif i功能的存储设备联网后,记录任务内容和分组的编号,并根据当前任务中的目录及文件名自动从公有云存储账户中开始下载任务数据;每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向个人私有云存储系统更新任务完成情况;个人私有云存储系统根据分组编号和文件名称在分组中查找文件记录,若找到对应的文件记录,则设置fetched = I;若未找到对应的文件记录,贝lJ返回false信号至带有wifi功能的存储设备,带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组;带有wifi功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组。
[0111]一种对公有云存储账户的数据进行备份的系统,包括:
[0112]绑定模块,用于将个人私有云存储系统的账户与公有云存储账户及带有wifi功能的存储设备进行绑定;
[0113]遍历模块,用于个人私有云存储系统对公有云存储账户下的目录及文件名进行首次遍历;
[0114]第一数据导出及存储模块,用于遍历完成后,将目录及文件名数据导出并保存至数据库中;
[0115]任务生成及分配模块,用于个人私有云存储系统将数据库中的数据生成多个任务并分配给带有wifi功能的存储设备;
[0116]自动下载模块,用于带有wifi功能的存储设备联网后,根据当前任务中的目录及文件名自动从公有云存储账户中开始下载任务数据。
[0117]所述的遍历模块还包括:
[0118]数组结构生成模块,用于个人私有云存储系统对指定公有云存储账户下的目录及文件名进行首次遍历,生成METADATA的数组结构;
[0119]第一数据导出及存储模块还包括:
[0120]数据分组模块,用于遍历完成后,将所述的文件名按照N个为一组,划分为多个组。[0121 ]所述的自动下载模块还包括:
[0122]记录模块,用于带有wifi功能的存储设备联网后,记录任务内容和分组的编号;
[0123]任务完成更新模块,用于带有wifi功能的存储设备每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向个人私有云存储系统更新任务完成情况;
[0124]文件记录查找及设置模块,用于个人私有云存储系统根据分组编号和文件名称在分组中查找文件记录,若找到对应的文件记录,则设置fetched= I;若未找到对应的文件记录,贝lJ返回false信号至带有wifi功能的存储设备;
[0125]任务放弃及重新获取模块,用于带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组;
[0126]任务自动请求模块,用于带有wifi功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组。
[0127]图2为采用本发明的方法实现个人私有云存储系统的账户与BaiduYun账户及带有wif i功能的存储设备进行绑定的方法流程图。其中,所述的“管理平台”即个人私有云存储系统;验证通过创建同步容器是在个人私有云存储系统中进行的。图3是本发明中带有wifi功能的存储设备执行备份任务以及个人私有云存储系统(点滴云)发现公有云存储上有新文件并生成备份任务的流程图。
【主权项】
1.一种对公有云存储账户的数据进行备份的方法,其特征在于,包括以下步骤: SI,将个人私有云存储系统的账户与公有云存储账户及带有Wifi功能的存储设备进行绑定; S2,个人私有云存储系统对公有云存储账户下的目录及文件名进行首次遍历,遍历完成后,将目录及文件名数据导出并保存至数据库中; S3,个人私有云存储系统将数据库中的数据生成多个任务并分配给带有wifi功能的存储设备; S4,带有wifi功能的存储设备联网后,根据当前任务中的目录及文件名自动从公有云存储账户中开始下载任务数据。2.根据权利要求1所述的对公有云存储账户的数据进行备份的方法,其特征在于,步骤SI具体包括: Sll,访问带有Wifi功能的存储设备的Web管理界面,并利用个人私有云存储系统的账号和密码进行登陆;登陆成功后,该带有wifi功能的存储设备即与个人私有云存储系统的账户建立了绑定关系; S12,在带有wifi功能的存储设备的Web管理界面上发起对公有云存储账户的绑定请求;通过公有云存储系统的API获取访问授权,得到一个授权key; S13,将公有云存储系统的名称、授权key和带有wifi功能的存储设备的设备编号上传至个人私有云存储系统;个人私有云存储系统创建一个绑定关系记录,存储公有云存储账户与带有wifi功能的存储设备之间的关系。3.根据权利要求1所述的对公有云存储账户的数据进行备份的方法,其特征在于,步骤S2具体包括:个人私有云存储系统对指定公有云存储账户下的目录及文件名进行首次遍历,生成META DATA的数组结构;遍历完成后,将所述的文件名按照N个为一组,划分为多个组后,导出为json格式的数据,并保存至数据库中。4.根据权利要求3所述的对公有云存储账户的数据进行备份的方法,其特征在于,遍历时,以目录或文件名称作为索引值;其中,所述的结构体中包含一个成员:fetched,用于表示是否已经被下载到用户的带有wifi功能的存储设备,fetched的默认值为O。5.根据权利要求4所述的对公有云存储账户的数据进行备份的方法,其特征在于,步骤S3具体包括:个人私有云存储系统将数据库中的数据按照分组生成多个任务组,并且每次分配一个任务组给带有wifi功能的存储设备。6.根据权利要求5所述的对公有云存储账户的数据进行备份的方法,其特征在于,步骤S4具体包括:带有wifi功能的存储设备联网后,记录任务内容和分组的编号,并根据当前任务中的目录及文件名自动从公有云存储账户中开始下载任务数据;每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向个人私有云存储系统更新任务完成情况;个人私有云存储系统根据分组编号和文件名称在分组中查找文件记录,若找到对应的文件记录,则设置fetched= I;若未找到对应的文件记录,则返回false信号至带有wifi功能的存储设备,带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组;带有wifi功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组。7.根据权利要求1?6任一项所述的对公有云存储账户的数据进行备份的方法,其特征在于,步骤S3还包括:个人私有云存储系统定期对公有云存储账户下的目录及文件名进行补充遍历,并与本地缓存的目录及文件名列表进行比对,找出新文件,生成下载/同步任务列表。8.根据权利要求7所述的对公有云存储账户的数据进行备份的方法,其特征在于,所述的个人私有云存储系统定期对公有云存储账户下的目录及文件名进行补充遍历,并与本地缓存的目录及文件名列表进行比对,找出新文件,生成下载/同步任务列表具体包括: 首先,个人私有云存储系统从数据库中按照分组的顺序加载目录结构的json数据,在程序的内存中保存该数组结构,并将该数组命名为:ο Id; 其次,按照首次遍历的方式对公有云存储账户下的目录及文件名进行补充遍历,获得最新的目录遍历结果的数组结构,并将该数组命名为:new; 再次,从old数组中取出一个元素,在new数组中查找与该元素文件名相同的元素,如果没有找到,则放弃此old数组中的该元素;如果找到了对应的元素,则对比两个元素的MD5值或文件长度和最后修改时间;如果相同,则把old数组中元素的fetched值复制给new数组中对应的元素;重复本操作,直到ο Id数组中所有的元素都取出; 最后,补充遍历完成后,将new数组的数据从程序的内存导出为json格式的数据,并以分组方式保存至数据库中。9.一种对公有云存储账户的数据进行备份的系统,其特征在于,包括: 绑定模块,用于将个人私有云存储系统的账户与公有云存储账户及带有wifi功能的存储设备进行绑定; 遍历模块,用于个人私有云存储系统对公有云存储账户下的目录及文件名进行首次遍历; 第一数据导出及存储模块,用于遍历完成后,将目录及文件名数据导出并保存至数据库中; 任务生成及分配模块,用于个人私有云存储系统将数据库中的数据生成多个任务并分配给带有wifi功能的存储设备; 自动下载模块,用于带有wifi功能的存储设备联网后,根据当前任务中的目录及文件名自动从公有云存储账户中开始下载任务数据。10.根据权利要求9所述的对公有云存储账户的数据进行备份的系统,其特征在于,所述的绑定t旲块还包括: 登录模块,用于访问带有wifi功能的存储设备的Web管理界面,并利用个人私有云存储系统的账号和密码进行登陆;登陆成功后,该带有wifi功能的存储设备即与个人私有云存储系统的账户建立了绑定关系; 绑定请求发送模块,用于在带有wifi功能的存储设备的Web管理界面上发起对公有云存储账户的绑定请求; 访问授权获取模块,用于通过公有云存储系统的API获取访问授权,得到一个授权key; 信息上传模块,用于将公有云存储系统的名称、授权key和带有wifi功能的存储设备的设备编号上传至个人私有云存储系统; 记录创建模块,用于个人私有云存储系统创建一个绑定关系记录,存储公有云存储账户与带有wifi功能的存储设备之间的关系。11.根据权利要求9所述的对公有云存储账户的数据进行备份的系统,其特征在于,所述的遍历模块还包括: 数组结构生成模块,用于个人私有云存储系统对指定公有云存储账户下的目录及文件名进行首次遍历,生成META DATA的数组结构; 第一数据导出及存储模块还包括: 数据分组模块,用于遍历完成后,将所述的文件名按照N个为一组,划分为多个组。12.根据权利要求11所述的对公有云存储账户的数据进行备份的系统,其特征在于,所述的自动下载模块还包括: 记录模块,用于带有wifi功能的存储设备联网后,记录任务内容和分组的编号; 任务完成更新模块,用于带有wifi功能的存储设备每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向个人私有云存储系统更新任务完成情况; 文件记录查找及设置模块,用于个人私有云存储系统根据分组编号和文件名称在分组中查找文件记录,若找到对应的文件记录,则设置fetched = I;若未找到对应的文件记录,则返回false信号至带有wifi功能的存储设备; 任务放弃及重新获取模块,用于带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组; 任务自动请求模块,用于带有wifi功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组。13.根据权利要求9?12任一项所述的对公有云存储账户的数据进行备份的系统,其特征在于,所述的遍历模块还包括: 补充遍历及对比模块,用于个人私有云存储系统定期对公有云存储账户下的目录及文件名进行补充遍历;并与本地缓存的目录及文件名列表进行比对,找出新文件。14.根据权利要求13所述的对公有云存储账户的数据进行备份的系统,其特征在于,所述的补充遍历及对比模块还包括: 数据加载及存储模块:用于个人私有云存储系统从数据库中按照分组的顺序加载目录结构的json数据,在程序的内存中保存该数组结构,并将该数组命名为:old; 补充遍历模块:用于按照首次遍历的方式对公有云存储账户下的目录及文件名进行补充遍历,获得最新的目录遍历结果的数组结构,并将该数组命名为mew; 数据对比模块:用于从old数组中取出一个元素,在new数组中查找与该元素文件名相同的元素,如果没有找到,则放弃此old数组中的该元素;如果找到了对应的元素,则对比两个元素的MD5值或文件长度和最后修改时间;如果相同,则把old数组中元素的fetched值复制给new数组中对应的元素;重复本操作,直到ο I d数组中所有的元素都取出; 第二数据导出及存储模块,用于补充遍历完成后,将new数组的数据从程序的内存导出为json格式的数据,并以分组方式保存至数据库中。
【文档编号】G06F11/14GK105824723SQ201610158148
【公开日】2016年8月3日
【申请日】2016年3月18日
【发明人】徐超
【申请人】北京春鸿企业管理咨询有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1