CN105956491B - 对公有云存储系统的数据进行多账号备份的方法及系统 - Google Patents
对公有云存储系统的数据进行多账号备份的方法及系统 Download PDFInfo
- Publication number
- CN105956491B CN105956491B CN201610340073.4A CN201610340073A CN105956491B CN 105956491 B CN105956491 B CN 105956491B CN 201610340073 A CN201610340073 A CN 201610340073A CN 105956491 B CN105956491 B CN 105956491B
- Authority
- CN
- China
- Prior art keywords
- cloud storage
- publicly
- account
- data
- storage system
- 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.)
- Expired - Fee Related
Links
Classifications
-
- 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
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
Abstract
本发明公开了一种对公有云存储系统的数据进行多账号备份的方法及系统,包括以下步骤:S1,将个人私有云存储系统的账户与多个公有云存储账户及某个带有wifi功能的存储设备进行绑定;S2,个人私有云存储系统对各个公有云存储账户下的目录及文件名进行首次遍历,遍历完成后,将目录及文件名数据导出并保存至数据库中;S3,个人私有云存储系统将数据库中的目录及文件名数据生成多个任务组并等待带有wifi功能的存储设备主动获取;S4,所述的带有wifi功能的存储设备联网后,根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据。本发明实现了将多个云存储账号的内容智能化自动备份到同一个存储设备,保证了数据的安全性。
Description
技术领域
本发明涉及一种对公有云存储系统的数据进行多账号备份的方法及系统,属于公有云存储账户数据备份技术领域。
背景技术
云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。在云存储系统(即公有云存储账户,如百度网盘、360云盘、金山快盘等)中,可以存储的数据量很大,因而很多用户为了清理手机内存同时与好友分享文件(比如照片、文档等),往往会将个人的私人文件发送至云存储系统中进行存储。但与此同时,又逐渐暴露了新的问题:比如云账号被盗,那么用户的个人隐私很可能就会被泄露。因此,使用云存储时,数据安全性问题成为用户的主要顾虑。另外,用户所需的某些重要文件上传至云存储系统后,可能会因为某些原因而导致审核未通过进而被删除,从而给用户带来一定的损失,同时造成不好的用户体验,因而对云存储系统中的数据进行及时备份就显的非常重要。
存储设备,比如移动硬盘,它的存储空间一般也比较大,为用户个人拥有,用于存储备份重要的文件。用户若想将云存储系统中有用的文件(包括用户自己通过手机上传至云存储系统中的文件及其他人上传至云存储系统并分享给用户的文件)存入其移动硬盘中,则需要先通过电脑将文件从云存储系统下载下来,然后再存入移动硬盘。此外,若云存储系统中有文件更新,也仍需要用户去人工识别并下载存入其个人移动硬盘中。此外,一个用户可能有多个云存储账户,如何实现将多个云存储账户的内容都自动备份到同一个存储设备中、以及如何实现各个云存储账户中有内容更新时自动进行备份,这也是人们迫切想要解决的问题。
发明内容
本发明的目的在于,提供一种对公有云存储系统的数据进行多账号备份的方法及系统,它可以有效解决现有技术中存在的问题,实现将多个云存储账号的内容智能化自动备份到同一个存储设备,保证了数据的安全性。
为解决上述技术问题,本发明采用如下的技术方案:一种对公有云存储系统的数据进行多账号备份的方法,包括以下步骤:
S1,将个人私有云存储系统的账户与多个公有云存储账户及某个带有wifi功能的存储设备进行绑定;所述的多个公有云存储账户包括:同一个公有云存储系统的多个不同的账户或者多个不同的公有云存储系统的一个或多个不同的账户;
S2,个人私有云存储系统对各个公有云存储账户下的目录及文件名进行首次遍历,遍历完成后,将目录及文件名数据导出并保存至数据库中;
S3,个人私有云存储系统将数据库中的目录及文件名数据生成多个任务组并等待带有wifi功能的存储设备主动获取;
S4,所述的带有wifi功能的存储设备联网后,根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据。
优选的,步骤S1具体包括:
S11,访问带有wifi功能的存储设备的Web管理界面,并利用个人私有云存储系统的账号和密码进行登陆;登陆成功后,所述的带有wifi功能的存储设备即与个人私有云存储系统的账户建立了绑定关系;
S12,在所述的带有wifi功能的存储设备的Web管理界面上发起对多个公有云存储账户的绑定请求;通过公有云存储系统的开放编程接口(即OpenAPI)获取访问授权,获得相应的授权key;
S13,将所述的公有云存储系统的名称、授权key和带有wifi功能的存储设备的设备编号上传至个人私有云存储系统并保存;
S14,个人私有云存储系统创建多个不同的虚拟容器,(在每个虚拟容器中,利用公有云存储系统的API及相应的授权KEY进行登录,同时设置用户期望同步的目录,默认为根目录)使得各个虚拟容器分别与多个公有云存储账户或公有云存储账户中指定的一个或多个目录一一对应关联,并且各个虚拟容器均与同一个带有wifi功能的存储设备进行关联。
通过上述方法实现将个人私有云存储系统的账户与公有云存储账户及带有wifi功能的存储设备进行绑定,从而可以实现个人私有云存储系统与带有wifi功能的存储设备和公有云存储系统之间以及带有wifi功能的存储设备与公有云存储系统之间进行高效、安全、稳定的通信;尤其是通过利用不同的虚拟容器分别与多个公有云存储账户一一对应关联,并且各个虚拟容器均与同一个带有wifi功能的存储设备进行关联,从而可以更精确、快捷的管控各个云存储账户的内容备份及更新任务。
上述的步骤S14中,个人私有云存储系统创建多个不同的虚拟容器时会给每个容器分配一个唯一标识,当虚拟容器与多个公有云存储账户以及某个带有WiFi功能的存储设备进行绑定时,个人私有云存储系统会记录容器唯一标识与公有云存储账户以及某个带有WiFi功能的存储设备之间的关系并保存至个人私有云存储系统的数据库中。
优选的,步骤S2具体包括:所述的不同的虚拟容器对与其相关联的公有云存储账户或公有云存储账户下的指定目录及子目录和文件进行首次遍历,生成META DATA的数据结构(即目录和文件的结构,还包含了最后修改时间、文件长度、MD5值、是否已经被下载到带有wifi功能的存储设备等信息);遍历完成后,将所述的文件名按照N个为一组,划分为多个组后,导出为json格式的数据(多种计算机语言都对其进行了支持),并保存至数据库中;其中,遍历时,以目录或文件名称作为索引值,以文件长度、最后修改时间、MD5值、是否是目录等信息作为结构体类型的数据块;从而可以优化个人云存储系统对备份任务的管理,便于向带有wifi功能的存储设备传递任务。
步骤S3具体包括:各个不同的虚拟容器将数据库中的数据按照分组生成多个任务组,并且等待带有wifi功能的存储设备联网后按照分组获取任务;带有wifi功能的存储设备每次只下载一个分组的任务信息,而不是全部的任务信息,从而可以便于获得新任务、更新任务的完成情况以及降低个人云存储平台的压力。
上述方法中,所述的带有wifi功能的存储设备联网后,首先连接到个人私有云存储系统,下载数据备份任务;其中,所有的任务都按照N个为一组,每组任务里均包含了公有云存储系统的账号信息和需要从此公有云存储系统中备份的文件名称。
优选的,步骤S4具体包括:带有wifi功能的存储设备联网后,检测存储设备的状态,若为Active,则向个人私有云存储系统发起任务获取请求,个人私有云存储系统查询到与该设备关联的所有虚拟容器,然后将虚拟容器内第一个未全部完成的任务组下发给该设备;该设备保存任务内容和分组的编号,并根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据;每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向相应的虚拟容器更新任务完成情况以及存储设备的剩余可用空间(带有wifi功能的存储设备在下载任务时,就同时获得了生成该任务的虚拟容器的唯一标识);若存储设备的剩余可用空间小于预设值,则放弃已经获得的当前分组的后续任务,设置存储设备的状态为Inactive,并停止数据同步服务;否则相应的虚拟容器在接受到任务更新请求后,根据分组编号和文件名称在分组中查找对应的记录,若找到对应的文件记录,则设置fetched=1(其中,每一个文件都对应了一个fetched值);其中,fetched为METADATA结构体中包含的一个成员,用于表示是否已经被下载到用户的带有wifi功能的存储设备,fetched的默认值为0;若未找到对应的文件记录,则返回false信号至带有wifi功能的存储设备,带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组(这表示任务分组出现了更新,因此需要重新获取任务分组);带有wifi功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组。根据带有wifi功能的存储设备的硬件性能,可以逐个对虚拟容器内的任务组进行处理,或者同时对多个虚拟容器内的任务分组进行处理。从而可以根据数据更新列表从公有云存储账户准确的备份所需数据,提高了数据备份的效率和整个系统的运行效率。此外,设置fetched为META DATA结构体中包含的一个成员,从而便于标记任务的下载完成情况;这样当带有wifi功能的存储设备下次再联网后,可以直接下载未完成的任务,而不用从头开始全部下载,减轻了带有wifi功能的存储设备的压力,提高了数据传输效率。
步骤S4中,检测存储设备的状态时,需要存储设备将其当前的剩余存储空间发送至个人私有云存储系统中,个人私有云存储系统根据预设值的大小给存储设备反馈其当前的状态,为Active或Inactive。
当存储设备的状态为Inactive时,也需要定期重新获取其最新的状态。
前述的对公有云存储系统的数据进行多账号备份的方法中,所述的带有wifi功能的存储设备联网后,记录任务内容和分组的编号,并根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据具体包括:并行处理或串行处理;所述的并行处理即带有wifi功能的存储设备先获取与此设备关联的所有虚拟容器的第一个任务组数据,然后并行进行多个文件的下载;所述的串行处理即每次只获取一个虚拟容器的任务组数据并进行文件同步,处理完一个虚拟容器的所有任务分组后再依次处理下一个虚拟容器的任务数据。如果带有wifi功能的存储设备内置的CPU性能好,则采用并行处理,如果CPU性能差,则采用串行处理;另外存储设备的读写速度也影响了这个设置的选择,可根据不同的硬件性能,设置最大的并行的任务数。
前述的对公有云存储系统的数据进行多账号备份的方法中,步骤S2还包括:个人私有云存储系统定期对与其相关联的公有云存储账户下的目录及文件名进行补充遍历(补充遍历的间隔时间可以调整,默认24小时一次),并与本地缓存的目录及文件名列表进行比对,找出新文件,生成下载/同步任务列表;具体包括:
首先,个人私有云存储系统从数据库中按照分组的顺序加载目录结构的json数据,在程序的内存中保存该数组结构,并将该数组命名为:old;(所述的数组中包含的元素可以通过文件名进行检索,每一个元素都包含了一个数据块,数据块内保存了与该文件名对应的MD5值、文件长度、最后修改时间等与META DATA相关的信息);
其次,按照首次遍历的方式对公有云存储账户下的目录及文件名进行补充遍历,获得最新的目录遍历结果的数组结构,并将该数组命名为:new;(其结构与old相同,同样的,该数组中包含的元素可以通过文件名进行检索,但是该数据结构中每一个元素包含的fetched值都为0);
再次,从old数组中取出一个元素,在new数组中查找与该元素文件名相同的元素,如果没有找到,则放弃此old数组中的该元素;如果找到了对应的元素,则对比两个元素的MD5值或文件长度和最后修改时间(当公有云存储系统支持MD5值时,则通过对比MD5值;当公有云存储系统不支持MD5值时,则通过对比文件长度和最后修改时间来代替MD5值的比对;由于云盘的文件一旦下载/备份到带有wifi功能的存储设备后,用户会从云盘上删除对应的文件,然后存入更多的新文件到云盘;因此在个人私有云存储系统对公有云存储账户文件进行扫描时要考虑到这种情况的出现);如果相同,则把old数组中元素的fetched值复制给new数组中对应的元素;重复本操作,直到old数组中所有的元素都取出;
最后,补充遍历完成后,将new数组的数据从程序的内存导出为json格式的数据,并以分组方式保存至数据库中。
从而可以仅对各个公有云存储账户更新的文件进行自动、及时备份,进一步提高了数据自动更新的效率;此外,上述方法中,在上一次扫描结果生成为多个任务组之后,在任务组中已经有部分任务已经完成了(fetched等于1),如果这些任务已经处于完成的状态,而且云盘中对应的文件没有删除,那么在最新的云盘文件扫描结果中,就要根据老的任务列表来设置任务的状态为已完成(设置fetched为1)。具体的说,通过上述方法,从而可以把最新的公有云存储的目录和文件结构与数据库中存储的老旧数据进行合并。如果老旧数据中记录的文件名在当前的公有云存储中已经不存在了(例如被用户删除了),那么就要在合并过程中删除这些记录;如果新旧记录里都有同名的文件,还要根据MD5的值或文件长度和最后修改时间来判断文件是否有内容的变化,如果文件产生了变化,就标记为未下载,否则就根据老记录的状态来设置任务的下载状态。对于只有新记录里存在的文件名,则直接设置为未下载。
一种对公有云存储系统的数据进行多账号备份的系统,包括:
绑定模块,用于将个人私有云存储系统的账户与多个公有云存储账户及某个带有wifi功能的存储设备进行绑定;所述的多个公有云存储账户包括:同一个公有云存储系统的多个不同的账户或者多个不同的公有云存储系统的一个或多个不同的账户;
遍历模块,用于个人私有云存储系统对各个公有云存储账户下的目录及文件名进行首次遍历;
第一数据导出及存储模块,用于遍历完成后,将目录及文件名数据导出并保存至数据库中;
任务生成及分配模块,用于个人私有云存储系统将数据库中的目录及文件名数据生成多个任务组并等待带有wifi功能的存储设备主动获取;
自动下载模块,用于所述的带有wifi功能的存储设备联网后,根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据。
优选的,所述的绑定模块还包括:
登录模块,用于访问带有wifi功能的存储设备的Web管理界面,并利用个人私有云存储系统的账号和密码进行登陆;登陆成功后,所述的带有wifi功能的存储设备即与个人私有云存储系统的账户建立了绑定关系;
绑定请求发送模块,用于在所述的带有wifi功能的存储设备的Web管理界面上发起对多个公有云存储账户的绑定请求;
访问授权获取模块,用于通过公有云存储系统的开放编程接口(即OpenAPI)获取访问授权,获得相应的授权key;
信息上传模块,用于将所述的公有云存储系统的名称、授权key和带有wifi功能的存储设备的设备编号上传至个人私有云存储系统并保存;
虚拟容器创建及关联模块,用于个人私有云存储系统创建多个不同的虚拟容器,(在每个虚拟容器中,利用公有云存储系统的API及相应的授权KEY进行登录,同时设置用户期望同步的目录,默认为根目录)使得各个虚拟容器分别与多个公有云存储账户或公有云存储账户中指定的一个或多个目录一一对应关联,并且各个虚拟容器均与同一个带有wifi功能的存储设备进行关联。
优选的,所述的遍历模块还包括:
数组结构生成模块,用于所述的不同的虚拟容器对与其相关联的公有云存储账户或公有云存储账户下的指定目录及子目录和文件进行首次遍历,生成META DATA的数据结构;
第一数据导出及存储模块还包括:
数据分组模块,用于遍历完成后,将所述的文件名按照N个为一组,划分为多个组后,导出为json格式的数据,并保存至数据库中;其中,遍历时,以目录或文件名称作为索引值。
优选的,所述的自动下载模块还包括:
状态检测模块,用于带有wifi功能的存储设备联网后,检测存储设备的状态;
记录模块,用于若存储设备的状态为Active,则向个人私有云存储系统发起任务获取请求,个人私有云存储系统查询到与该设备关联的所有虚拟容器,然后将虚拟容器内第一个未全部完成的任务组下发给该设备;该设备保存任务内容和分组的编号;
信息反馈模块,用于带有wifi功能的存储设备每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向相应的虚拟容器更新任务完成情况以及存储设备的剩余可用空间;
文件记录查找及设置模块,用于若存储设备的剩余可用空间大于预设值时,则相应的虚拟容器在接受到任务更新请求后,根据分组编号和文件名称在分组中查找对应的记录,若找到对应的文件记录,则设置fetched=1;其中,fetched为METADATA结构体中包含的一个成员,用于表示是否已经被下载到用户的带有wifi功能的存储设备,fetched的默认值为0;若未找到对应的文件记录,则返回false信号至带有wifi功能的存储设备;
任务放弃及重新获取模块,用于带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组;
任务自动请求模块,用于带有wifi功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组。
前述的对公有云存储系统的数据进行多账号备份的系统中,所述的遍历模块还包括:
补充遍历及对比模块,用于个人私有云存储系统定期对与其相关联的公有云存储账户下的目录及文件名进行补充遍历,并与本地缓存的目录及文件名列表进行比对,找出新文件,生成下载/同步任务列表;
所述的补充遍历及对比模块具体包括:
数据加载及存储模块:用于个人私有云存储系统从数据库中按照分组的顺序加载目录结构的json数据,在程序的内存中保存该数组结构,并将该数组命名为:old;
补充遍历模块:用于按照首次遍历的方式对公有云存储账户下的目录及文件名进行补充遍历,获得最新的目录遍历结果的数组结构,并将该数组命名为:new;
数据对比模块:用于从old数组中取出一个元素,在new数组中查找与该元素文件名相同的元素,如果没有找到,则放弃此old数组中的该元素;如果找到了对应的元素,则对比两个元素的MD5值或文件长度和最后修改时间;如果相同,则把old数组中元素的fetched值复制给new数组中对应的元素;重复本操作,直到old数组中所有的元素都取出;
第二数据导出及存储模块,用于补充遍历完成后,将new数组的数据从程序的内存导出为json格式的数据,并以分组方式保存至数据库中。
与现有技术相比,本发明具有以下优点:
1、通过利用将个人私有云存储系统的账户与多个公有云存储账户及某个带有wifi功能的存储设备进行绑定;所述的多个公有云存储账户包括:同一个公有云存储系统的多个不同的账户或者多个不同的公有云存储系统的一个或多个不同的账户;个人私有云存储系统对各个公有云存储账户下的目录及文件名进行首次遍历,遍历完成后,将目录及文件名数据导出并保存至数据库中;个人私有云存储系统将数据库中的目录及文件名数据生成多个任务组并等待带有wifi功能的存储设备主动获取;所述的带有wifi功能的存储设备联网后,
根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据。从而实现了将多个云存储账号的内容智能化自动备份到同一个存储设备,保证了数据的安全
性,方便了用户使用;且整个过程均无需用户手工操作,数据备份效率较高;
2、通过利用不同的虚拟容器分别与多个公有云存储账户一一对应关联,并且各个虚拟容器均与同一个带有wifi功能的存储设备进行关联,从而可以更精确、快捷的管控各个云存储账户的内容备份及更新任务;
3、个人私有云存储系统定期对与其相关联的公有云存储账户下的目录及文件名进行补充遍历,并与本地缓存的目录及文件名列表进行比对,找出新文件,生成下载/同步任务列表,从而可以仅对各个公有云存储账户更新的文件进行自动、及时备份,进一步提高了数据自动更新的效率。
附图说明
图1是本发明的一种实施例的方法流程图;
图2是个人私有云存储系统的账户与Baidu Yun账户及带有wifi功能的存储设备进行绑定的方法流程图;
图3是带有wifi功能的存储设备执行备份任务以及个人私有云存储系统(点滴云)发现公有云存储上有新文件并生成备份任务的流程图。
下面结合附图和具体实施方式对本发明作进一步的说明。
具体实施方式
本发明的实施例1:一种对公有云存储系统的数据进行多账号备份的方法,如图1、图3所示,包括以下步骤:
S1,将个人私有云存储系统的账户与多个公有云存储账户及某个带有wifi功能的存储设备进行绑定;所述的多个公有云存储账户包括:同一个公有云存储系统的多个不同的账户或者多个不同的公有云存储系统的一个或多个不同的账户;具体包括:
S11,访问带有wifi功能的存储设备的Web管理界面,并利用个人私有云存储系统的账号和密码进行登陆;登陆成功后,所述的带有wifi功能的存储设备即与个人私有云存储系统的账户建立了绑定关系;
S12,在所述的带有wifi功能的存储设备的Web管理界面上发起对多个公有云存储账户的绑定请求;通过公有云存储系统的开放编程接口(即OpenAPI)获取访问授权,获得相应的授权key;
S13,将所述的公有云存储系统的名称、授权key和带有wifi功能的存储设备的设备编号上传至个人私有云存储系统并保存;
S14,个人私有云存储系统创建多个不同的虚拟容器,(在每个虚拟容器中,利用公有云存储系统的API及相应的授权KEY进行登录,同时设置用户期望同步的目录,默认为根目录)使得各个虚拟容器分别与多个公有云存储账户或公有云存储账户中指定的一个或多个目录一一对应关联,并且各个虚拟容器均与同一个带有wifi功能的存储设备进行关联;
S2,个人私有云存储系统对各个公有云存储账户下的目录及文件名进行首次遍历,遍历完成后,将目录及文件名数据导出并保存至数据库中;具体包括:所述的不同的虚拟容器对与其相关联的公有云存储账户或公有云存储账户下的指定目录及子目录和文件进行首次遍历,生成META DATA的数据结构;遍历完成后,将所述的文件名按照N个为一组,划分为多个组后,导出为json格式的数据,并保存至数据库中;其中,遍历时,以目录或文件名称作为索引值;
步骤S2还包括:个人私有云存储系统定期对与其相关联的公有云存储账户下的目录及文件名进行补充遍历,并与本地缓存的目录及文件名列表进行比对,找出新文件,生成下载/同步任务列表;具体包括:
首先,个人私有云存储系统从数据库中按照分组的顺序加载目录结构的json数据,在程序的内存中保存该数组结构,并将该数组命名为:old;
其次,按照首次遍历的方式对公有云存储账户下的目录及文件名进行补充遍历,获得最新的目录遍历结果的数组结构,并将该数组命名为:new;
再次,从old数组中取出一个元素,在new数组中查找与该元素文件名相同的元素,如果没有找到,则放弃此old数组中的该元素;如果找到了对应的元素,则对比两个元素的MD5值或文件长度和最后修改时间;如果相同,则把old数组中元素的fetched值复制给new数组中对应的元素;重复本操作,直到old数组中所有的元素都取出;
最后,补充遍历完成后,将new数组的数据从程序的内存导出为json格式的数据,并以分组方式保存至数据库中;
S3,个人私有云存储系统中的各个虚拟容器将数据库中的目录及文件名数据生成多个任务组并等待带有wifi功能的存储设备主动获取;
S4,所述的带有wifi功能的存储设备联网后,根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据;具体包括:带有wifi功能的存储设备联网后,检测存储设备的状态,若为Active,则向个人私有云存储系统发起任务获取请求,个人私有云存储系统查询到与该设备关联的所有虚拟容器,然后将虚拟容器内第一个未全部完成的任务组下发给该设备;该设备保存任务内容和分组的编号,并根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据;每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向相应的虚拟容器更新任务完成情况以及存储设备的剩余可用空间;若存储设备的剩余可用空间小于预设值,则放弃已经获得的当前分组的后续任务,设置存储设备的状态为Inactive,并停止数据同步服务;否则相应的虚拟容器在接受到任务更新请求后,根据分组编号和文件名称在分组中查找对应的记录,若找到对应的文件记录,则设置fetched=1;其中,fetched为META DATA结构体中包含的一个成员,用于表示是否已经被下载到用户的带有wifi功能的存储设备,fetched的默认值为0;若未找到对应的文件记录,则返回false信号至带有wifi功能的存储设备,带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组;带有wifi功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组;其中,所述的带有wifi功能的存储设备联网后,记录任务内容和分组的编号,并根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据具体包括:并行处理或串行处理;所述的并行处理即带有wifi功能的存储设备先获取与此设备关联的所有虚拟容器的第一个任务组数据,然后并行进行多个文件的下载;所述的串行处理即每次只获取一个虚拟容器的任务组数据并进行文件同步,处理完一个虚拟容器的所有任务分组后再依次处理下一个虚拟容器的任务数据。
一种对公有云存储系统的数据进行多账号备份的系统,包括:
绑定模块,用于将个人私有云存储系统的账户与多个公有云存储账户及某个带有wifi功能的存储设备进行绑定;所述的多个公有云存储账户包括:同一个公有云存储系统的多个不同的账户或者多个不同的公有云存储系统的一个或多个不同的账户;
遍历模块,用于个人私有云存储系统对各个公有云存储账户下的目录及文件名进行首次遍历;
第一数据导出及存储模块,用于遍历完成后,将目录及文件名数据导出并保存至数据库中;
任务生成及分配模块,用于个人私有云存储系统将数据库中的目录及文件名数据生成多个任务组并等待带有wifi功能的存储设备主动获取;
自动下载模块,用于所述的带有wifi功能的存储设备联网后,根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据。
所述的绑定模块还包括:
登录模块,用于访问带有wifi功能的存储设备的Web管理界面,并利用个人私有云存储系统的账号和密码进行登陆;登陆成功后,所述的带有wifi功能的存储设备即与个人私有云存储系统的账户建立了绑定关系;
绑定请求发送模块,用于在所述的带有wifi功能的存储设备的Web管理界面上发起对多个公有云存储账户的绑定请求;
访问授权获取模块,用于通过公有云存储系统的开放编程接口(即OpenAPI)获取访问授权,获得相应的授权key;
信息上传模块,用于将所述的公有云存储系统的名称、授权key和带有wifi功能的存储设备的设备编号上传至个人私有云存储系统并保存;
虚拟容器创建及关联模块,用于个人私有云存储系统创建多个不同的虚拟容器,(在每个虚拟容器中,利用公有云存储系统的API及相应的授权KEY进行登录,同时设置用户期望同步的目录,默认为根目录)使得各个虚拟容器分别与多个公有云存储账户或公有云存储账户中指定的一个或多个目录一一对应关联,并且各个虚拟容器均与同一个带有wifi功能的存储设备进行关联。
所述的遍历模块还包括:
数组结构生成模块,用于所述的不同的虚拟容器对与其相关联的公有云存储账户或公有云存储账户下的指定目录及子目录和文件进行首次遍历,生成META DATA的数据结构;
第一数据导出及存储模块还包括:
数据分组模块,用于遍历完成后,将所述的文件名按照N个为一组,划分为多个组后,导出为json格式的数据,并保存至数据库中;其中,遍历时,以目录或文件名称作为索引值。
所述的自动下载模块还包括:
状态检测模块,用于带有wifi功能的存储设备联网后,检测存储设备的状态;
记录模块,用于若存储设备的状态为Active,则向个人私有云存储系统发起任务获取请求,个人私有云存储系统查询到与该设备关联的所有虚拟容器,然后将虚拟容器内第一个未全部完成的任务组下发给该设备;该设备保存任务内容和分组的编号;
信息反馈模块,用于带有wifi功能的存储设备每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向相应的虚拟容器更新任务完成情况以及存储设备的剩余可用空间;
文件记录查找及设置模块,用于若存储设备的剩余可用空间大于预设值时,则相应的虚拟容器在接受到任务更新请求后,根据分组编号和文件名称在分组中查找对应的记录,若找到对应的文件记录,则设置fetched=1;其中,fetched为META DATA结构体中包含的一个成员,用于表示是否已经被下载到用户的带有wifi功能的存储设备,fetched的默认值为0;若未找到对应的文件记录,则返回false信号至带有wifi功能的存储设备;
任务放弃及重新获取模块,用于带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组;
任务自动请求模块,用于带有wifi功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组。
所述的遍历模块还包括:
补充遍历及对比模块,用于个人私有云存储系统定期对与其相关联的公有云存储账户下的目录及文件名进行补充遍历,并与本地缓存的目录及文件名列表进行比对,找出新文件,生成下载/同步任务列表;
所述的补充遍历及对比模块具体包括:
数据加载及存储模块:用于个人私有云存储系统从数据库中按照分组的顺序加载目录结构的json数据,在程序的内存中保存该数组结构,并将该数组命名为:old;
补充遍历模块:用于按照首次遍历的方式对公有云存储账户下的目录及文件名进行补充遍历,获得最新的目录遍历结果的数组结构,并将该数组命名为:new;
数据对比模块:用于从old数组中取出一个元素,在new数组中查找与该元素文件名相同的元素,如果没有找到,则放弃此old数组中的该元素;如果找到了对应的元素,则对比两个元素的MD5值或文件长度和最后修改时间;如果相同,则把old数组中元素的fetched值复制给new数组中对应的元素;重复本操作,直到old数组中所有的元素都取出;
第二数据导出及存储模块,用于补充遍历完成后,将new数组的数据从程序的内存导出为json格式的数据,并以分组方式保存至数据库中。
实施例2:一种对公有云存储系统的数据进行多账号备份的方法,如图1所示,包括以下步骤:
S1,将个人私有云存储系统的账户与多个公有云存储账户及某个带有wifi功能的存储设备进行绑定;所述的多个公有云存储账户包括:同一个公有云存储系统的多个不同的账户或者多个不同的公有云存储系统的一个或多个不同的账户;具体包括:
S11,访问带有wifi功能的存储设备的Web管理界面,并利用个人私有云存储系统的账号和密码进行登陆;登陆成功后,所述的带有wifi功能的存储设备即与个人私有云存储系统的账户建立了绑定关系;
S12,在所述的带有wifi功能的存储设备的Web管理界面上发起对多个公有云存储账户的绑定请求;通过公有云存储系统的开放编程接口(即OpenAPI)获取访问授权,获得相应的授权key;
S13,将所述的公有云存储系统的名称、授权key和带有wifi功能的存储设备的设备编号上传至个人私有云存储系统并保存;
S14,个人私有云存储系统创建多个不同的虚拟容器,(在每个虚拟容器中,利用公有云存储系统的API及相应的授权KEY进行登录,同时设置用户期望同步的目录,默认为根目录)使得各个虚拟容器分别与多个公有云存储账户或公有云存储账户中指定的一个或多个目录一一对应关联,并且各个虚拟容器均与同一个带有wifi功能的存储设备进行关联;
S2,个人私有云存储系统对各个公有云存储账户下的目录及文件名进行首次遍历,遍历完成后,将目录及文件名数据导出并保存至数据库中;具体包括:所述的不同的虚拟容器对与其相关联的公有云存储账户或公有云存储账户下的指定目录及子目录和文件进行首次遍历,生成META DATA的数据结构;遍历完成后,将所述的文件名按照N个为一组,划分为多个组后,导出为json格式的数据,并保存至数据库中;其中,遍历时,以目录或文件名称作为索引值;
S3,个人私有云存储系统中的各个不同的虚拟容器将数据库中的数据按照分组生成多个任务组,并且等待带有wifi功能的存储设备联网后按照分组获取任务;
S4,所述的带有wifi功能的存储设备联网后,根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据;具体包括:带有wifi功能的存储设备联网后,检测存储设备的状态,若为Active,则向个人私有云存储系统发起任务获取请求,个人私有云存储系统查询到与该设备关联的所有虚拟容器,然后将虚拟容器内第一个未全部完成的任务组下发给该设备;该设备保存任务内容和分组的编号,并根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据;每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向相应的虚拟容器更新任务完成情况以及存储设备的剩余可用空间;若存储设备的剩余可用空间小于预设值,则放弃已经获得的当前分组的后续任务,设置存储设备的状态为Inactive,并停止数据同步服务;否则相应的虚拟容器在接受到任务更新请求后,根据分组编号和文件名称在分组中查找对应的记录,若找到对应的文件记录,则设置fetched=1;其中,fetched为META DATA结构体中包含的一个成员,用于表示是否已经被下载到用户的带有wifi功能的存储设备,fetched的默认值为0;若未找到对应的文件记录,则返回false信号至带有wifi功能的存储设备,带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组;带有wifi功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组。
一种对公有云存储系统的数据进行多账号备份的系统,包括:
绑定模块,用于将个人私有云存储系统的账户与多个公有云存储账户及某个带有wifi功能的存储设备进行绑定;所述的多个公有云存储账户包括:同一个公有云存储系统的多个不同的账户或者多个不同的公有云存储系统的一个或多个不同的账户;
遍历模块,用于个人私有云存储系统对各个公有云存储账户下的目录及文件名进行首次遍历;
第一数据导出及存储模块,用于遍历完成后,将目录及文件名数据导出并保存至数据库中;
任务生成及分配模块,用于个人私有云存储系统将数据库中的目录及文件名数据生成多个任务组并等待带有wifi功能的存储设备主动获取;
自动下载模块,用于所述的带有wifi功能的存储设备联网后,根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据。
所述的绑定模块还包括:
登录模块,用于访问带有wifi功能的存储设备的Web管理界面,并利用个人私有云存储系统的账号和密码进行登陆;登陆成功后,所述的带有wifi功能的存储设备即与个人私有云存储系统的账户建立了绑定关系;
绑定请求发送模块,用于在所述的带有wifi功能的存储设备的Web管理界面上发起对多个公有云存储账户的绑定请求;
访问授权获取模块,用于通过公有云存储系统的开放编程接口(即OpenAPI)获取访问授权,获得相应的授权key;
信息上传模块,用于将所述的公有云存储系统的名称、授权key和带有wifi功能的存储设备的设备编号上传至个人私有云存储系统并保存;
虚拟容器创建及关联模块,用于个人私有云存储系统创建多个不同的虚拟容器,(在每个虚拟容器中,利用公有云存储系统的API及相应的授权KEY进行登录,同时设置用户期望同步的目录,默认为根目录)使得各个虚拟容器分别与多个公有云存储账户或公有云存储账户中指定的一个或多个目录一一对应关联,并且各个虚拟容器均与同一个带有wifi功能的存储设备进行关联。
所述的遍历模块还包括:
数组结构生成模块,用于所述的不同的虚拟容器对与其相关联的公有云存储账户或公有云存储账户下的指定目录及子目录和文件进行首次遍历,生成META DATA的数据结构;
第一数据导出及存储模块还包括:
数据分组模块,用于遍历完成后,将所述的文件名按照N个为一组,划分为多个组后,导出为json格式的数据,并保存至数据库中;其中,遍历时,以目录或文件名称作为索引值。
所述的自动下载模块还包括:
状态检测模块,用于带有wifi功能的存储设备联网后,检测存储设备的状态;
记录模块,用于若存储设备的状态为Active,则向个人私有云存储系统发起任务获取请求,个人私有云存储系统查询到与该设备关联的所有虚拟容器,然后将虚拟容器内第一个未全部完成的任务组下发给该设备;该设备保存任务内容和分组的编号;
信息反馈模块,用于带有wifi功能的存储设备每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向相应的虚拟容器更新任务完成情况以及存储设备的剩余可用空间;
文件记录查找及设置模块,用于若存储设备的剩余可用空间大于预设值时,则相应的虚拟容器在接受到任务更新请求后,根据分组编号和文件名称在分组中查找对应的记录,若找到对应的文件记录,则设置fetched=1;其中,fetched为META DATA结构体中包含的一个成员,用于表示是否已经被下载到用户的带有wifi功能的存储设备,fetched的默认值为0;若未找到对应的文件记录,则返回false信号至带有wifi功能的存储设备;
任务放弃及重新获取模块,用于带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组;
任务自动请求模块,用于带有wifi功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组。
实施例3:一种对公有云存储系统的数据进行多账号备份的方法,包括以下步骤:
S1,将个人私有云存储系统的账户与多个公有云存储账户及某个带有wifi功能的存储设备进行绑定;所述的多个公有云存储账户包括:同一个公有云存储系统的多个不同的账户或者多个不同的公有云存储系统的一个或多个不同的账户;
S2,个人私有云存储系统对各个公有云存储账户下的目录及文件名进行首次遍历,遍历完成后,将目录及文件名数据导出并保存至数据库中;
S3,个人私有云存储系统将数据库中的目录及文件名数据生成多个任务组并等待带有wifi功能的存储设备主动获取;
S4,所述的带有wifi功能的存储设备联网后,根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据。
一种对公有云存储系统的数据进行多账号备份的系统,包括:
绑定模块,用于将个人私有云存储系统的账户与多个公有云存储账户及某个带有wifi功能的存储设备进行绑定;所述的多个公有云存储账户包括:同一个公有云存储系统的多个不同的账户或者多个不同的公有云存储系统的一个或多个不同的账户;
遍历模块,用于个人私有云存储系统对各个公有云存储账户下的目录及文件名进行首次遍历;
第一数据导出及存储模块,用于遍历完成后,将目录及文件名数据导出并保存至数据库中;
任务生成及分配模块,用于个人私有云存储系统将数据库中的目录及文件名数据生成多个任务组并等待带有wifi功能的存储设备主动获取;
自动下载模块,用于所述的带有wifi功能的存储设备联网后,根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据。
本发明的一种实施例的工作原理:如图2所示,访问带有wifi功能的A盘的Web管理界面,并利用个人私有云存储系统的账号和密码进行登陆;登陆成功后,所述的A盘即与个人私有云存储系统的账户建立了绑定关系;在所述的A盘的Web管理界面上发起对多个公有云存储账户(比如360云盘的账户、百度云的账户、金山云盘账户、腾讯云盘账户等)的绑定请求;通过360云盘、百度云、金山云盘、腾讯云盘的开放编程接口(即OpenAPI)获取访问授权,获得相应的授权key;将所述的公有云存储系统的名称(360云盘、百度云、金山云盘、腾讯云盘)、授权key和A盘的设备编号上传至个人私有云存储系统并保存;个人私有云存储系统创建5个不同的虚拟容器,如a虚拟容器、b虚拟容器、c虚拟容器、d虚拟容器和e虚拟容器(可在a虚拟容器中,利用360云盘的API及相应的授权KEY进行登录;在b虚拟容器中,利用百度云的API及相应的授权KEY进行登录,以此类推),并建立以下关联关系:
360云盘——a容器——A盘
百度云——b容器——A盘
金山云盘的xxx目录——c容器——A盘
腾讯云盘的xxx目录——d容器——A盘
腾讯云盘的yyy目录——e容器——A盘
利用a虚拟容器、b虚拟容器、c虚拟容器、d虚拟容器和e虚拟容器分别管控360云盘账户、百度云账户、金山云盘账户中的指定目录及腾讯云盘账户中的指定目录的数据备份及更新任务,并且均与同一个存储设备关联,实现了将不同云存储账户或不同云存储账户中指定目录下的数据备份至同一个存储设备中。
以上工作原理中,所述的360云盘账户、百度云账户、金山云盘账户、腾讯云盘账户也可以为360云盘或其他云盘的几个不同的账户。
Claims (10)
1.一种对公有云存储系统的数据进行多账号备份的方法,其特征在于,包括以下步骤:
S1,将个人私有云存储系统的账户与多个公有云存储账户及某个带有wifi功能的存储设备进行绑定;所述的多个公有云存储账户包括:同一个公有云存储系统的多个不同的账户或者多个不同的公有云存储系统的一个或多个不同的账户;
S2,个人私有云存储系统对各个公有云存储账户下的目录及文件名进行首次遍历,遍历完成后,将目录及文件名数据导出并保存至数据库中;
S3,个人私有云存储系统将数据库中的目录及文件名数据生成多个任务组并等待带有wifi功能的存储设备主动获取;
S4,所述的带有wifi功能的存储设备联网后,根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据。
2.根据权利要求1所述的对公有云存储系统的数据进行多账号备份的方法,其特征在于,步骤S1具体包括:
S11,访问带有wifi功能的存储设备的Web管理界面,并利用个人私有云存储系统的账号和密码进行登陆;登陆成功后,所述的带有wifi功能的存储设备即与个人私有云存储系统的账户建立了绑定关系;
S12,在所述的带有wifi功能的存储设备的Web管理界面上发起对多个公有云存储账户的绑定请求;通过公有云存储系统的开放编程接口获取访问授权,获得相应的授权key;
S13,将所述的公有云存储系统的名称、授权key和带有wifi功能的存储设备的设备编号上传至个人私有云存储系统并保存;
S14,个人私有云存储系统创建多个不同的虚拟容器,使得各个虚拟容器分别与多个公有云存储账户或公有云存储账户中指定的一个或多个目录一一对应关联,并且各个虚拟容器均与同一个带有wifi功能的存储设备进行关联。
3.根据权利要求2所述的对公有云存储系统的数据进行多账号备份的方法,其特征在于,步骤S2具体包括:所述的个人私有云存储系统中的不同的虚拟容器对与其相关联的公有云存储账户或公有云存储账户下的指定目录及子目录和文件进行首次遍历,生成METADATA的数据结构;遍历完成后,将文件名按照N个为一组,划分为多个数组后,导出为json格式的数据,并保存至数据库中;其中,遍历时,以目录或文件名称作为索引值;步骤S3具体包括:各个不同的虚拟容器将数据库中的数据按照分组生成多个任务组,并且等待带有wifi功能的存储设备联网后按照分组获取任务。
4.根据权利要求2所述的对公有云存储系统的数据进行多账号备份的方法,其特征在于,步骤S4具体包括:带有wifi功能的存储设备联网后,检测存储设备的状态,若为Active,则向个人私有云存储系统发起任务获取请求,个人私有云存储系统查询到与该设备关联的所有虚拟容器,然后将虚拟容器内第一个未全部完成的任务组下发给该设备;该设备保存任务内容和分组的编号,并根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据;每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向相应的虚拟容器更新任务完成情况以及存储设备的剩余可用空间;若存储设备的剩余可用空间小于预设值,则放弃已经获得的当前分组的后续任务,设置存储设备的状态为Inactive,并停止数据同步服务;否则相应的虚拟容器在接受到任务更新请求后,根据分组编号和文件名称在分组中查找对应的记录,若找到对应的文件记录,则设置fetched=1;其中,fetched为META DATA结构体中包含的一个成员,用于表示是否已经被下载到用户的带有wifi功能的存储设备,fetched的默认值为0;若未找到对应的文件记录,则返回false信号至带有wifi功能的存储设备,带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组;带有wifi功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组。
5.根据权利要求3所述的对公有云存储系统的数据进行多账号备份的方法,其特征在于,步骤S2还包括:个人私有云存储系统定期对与其相关联的公有云存储账户下的目录及文件名进行补充遍历,并与本地缓存的目录及文件名列表进行比对,找出新文件,生成下载/同步任务列表;具体包括:
首先,个人私有云存储系统从数据库中按照分组的顺序加载目录结构的json数据,在程序的内存中保存相应的数组,并将该数组命名为:old;
其次,按照首次遍历的方式对公有云存储账户下的目录及文件名进行补充遍历,获得最新的目录遍历结果的数组结构,并将该数组命名为:new;
再次,从old数组中取出一个元素,在new数组中查找与该元素文件名相同的元素,如果没有找到,则放弃此old数组中的该元素;如果找到了对应的元素,则对比两个元素的MD5值或对比文件长度和最后修改时间;如果相同,则把old数组中元素的fetched值复制给new数组中对应的元素;重复本操作,直到old数组中所有的元素都取出;
最后,补充遍历完成后,将new数组的数据从程序的内存导出为json格式的数据,并以分组方式保存至数据库中。
6.一种对公有云存储系统的数据进行多账号备份的系统,其特征在于,包括:
绑定模块,用于将个人私有云存储系统的账户与多个公有云存储账户及某个带有wifi功能的存储设备进行绑定;所述的多个公有云存储账户包括:同一个公有云存储系统的多个不同的账户或者多个不同的公有云存储系统的一个或多个不同的账户;
遍历模块,用于个人私有云存储系统对各个公有云存储账户下的目录及文件名进行首次遍历;
第一数据导出及存储模块,用于遍历完成后,将目录及文件名数据导出并保存至数据库中;
任务生成及分配模块,用于个人私有云存储系统将数据库中的目录及文件名数据生成多个任务组并等待带有wifi功能的存储设备主动获取;
自动下载模块,用于所述的带有wifi功能的存储设备联网后,根据当前任务组中的目录及文件名自动从各个公有云存储账户中开始下载任务数据。
7.根据权利要求6所述的对公有云存储系统的数据进行多账号备份的系统,其特征在于,所述的绑定模块还包括:
登录模块,用于访问带有wifi功能的存储设备的Web管理界面,并利用个人私有云存储系统的账号和密码进行登陆;登陆成功后,所述的带有wifi功能的存储设备即与个人私有云存储系统的账户建立了绑定关系;
绑定请求发送模块,用于在所述的带有wifi功能的存储设备的Web管理界面上发起对多个公有云存储账户的绑定请求;
访问授权获取模块,用于通过公有云存储系统的开放编程接口获取访问授权,获得相应的授权key;
信息上传模块,用于将所述的公有云存储系统的名称、授权key和带有wifi功能的存储设备的设备编号上传至个人私有云存储系统并保存;
虚拟容器创建及关联模块,用于个人私有云存储系统创建多个不同的虚拟容器,使得各个虚拟容器分别与多个公有云存储账户或公有云存储账户中指定的一个或多个目录一一对应关联,并且各个虚拟容器均与同一个带有wifi功能的存储设备进行关联。
8.根据权利要求7所述的对公有云存储系统的数据进行多账号备份的系统,其特征在于,所述的遍历模块还包括:
数组结构生成模块,用于所述的个人私有云存储系统中的不同的虚拟容器对与其相关联的公有云存储账户或公有云存储账户下的指定目录及子目录和文件进行首次遍历,生成META DATA的数据结构;
第一数据导出及存储模块还包括:
数据分组模块,用于遍历完成后,将文件名按照N个为一组,划分为多个数组后,导出为json格式的数据,并保存至数据库中;其中,遍历时,以目录或文件名称作为索引值。
9.根据权利要求8所述的对公有云存储系统的数据进行多账号备份的系统,其特征在于,所述的自动下载模块还包括:
状态检测模块,用于带有wifi功能的存储设备联网后,检测存储设备的状态;
记录模块,用于若存储设备的状态为Active,则向个人私有云存储系统发起任务获取请求,个人私有云存储系统查询到与该设备关联的所有虚拟容器,然后将虚拟容器内第一个未全部完成的任务组下发给该设备;该设备保存任务内容和分组的编号;
信息反馈模块,用于带有wifi功能的存储设备每完成一个文件的下载或者完成一个任务组的全部或部分文件的下载,则向相应的虚拟容器更新任务完成情况以及存储设备的剩余可用空间;
文件记录查找及设置模块,用于若存储设备的剩余可用空间大于预设值时,则相应的虚拟容器在接受到任务更新请求后,根据分组编号和文件名称在分组中查找对应的记录,若找到对应的文件记录,则设置fetched=1;其中,fetched为META DATA结构体中包含的一个成员,用于表示是否已经被下载到用户的带有wifi功能的存储设备,fetched的默认值为0;若未找到对应的文件记录,则返回false信号至带有wifi功能的存储设备;
任务放弃及重新获取模块,用于带有wifi功能的存储设备收到false信号后,放弃已经获得的当前分组的后续任务并重新获取第一个未完成的任务组;
任务自动请求模块,用于带有wifi功能的存储设备每完成一个任务组的下载后,自动请求下一个未完成任务组,直至完成最后一个未完成任务组。
10.根据权利要求8所述的对公有云存储系统的数据进行多账号备份的系统,其特征在于,所述的遍历模块还包括:
补充遍历及对比模块,用于个人私有云存储系统定期对与其相关联的公有云存储账户下的目录及文件名进行补充遍历,并与本地缓存的目录及文件名列表进行比对,找出新文件,生成下载/同步任务列表;
所述的补充遍历及对比模块具体包括:
数据加载及存储模块:用于个人私有云存储系统从数据库中按照分组的顺序加载目录结构的json数据,在程序的内存中保存相应的数组,并将该数组命名为:old;
补充遍历模块:用于按照首次遍历的方式对公有云存储账户下的目录及文件名进行补充遍历,获得最新的目录遍历结果的数组结构,并将该数组命名为:new;
数据对比模块:用于从old数组中取出一个元素,在new数组中查找与该元素文件名相同的元素,如果没有找到,则放弃此old数组中的该元素;如果找到了对应的元素,则对比两个元素的MD5值或文件长度和最后修改时间;如果相同,则把old数组中元素的fetched值复制给new数组中对应的元素;重复本操作,直到old数组中所有的元素都取出;
第二数据导出及存储模块,用于补充遍历完成后,将new数组的数据从程序的内存导出为json格式的数据,并以分组方式保存至数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610340073.4A CN105956491B (zh) | 2016-05-19 | 2016-05-19 | 对公有云存储系统的数据进行多账号备份的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610340073.4A CN105956491B (zh) | 2016-05-19 | 2016-05-19 | 对公有云存储系统的数据进行多账号备份的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105956491A CN105956491A (zh) | 2016-09-21 |
CN105956491B true CN105956491B (zh) | 2018-12-18 |
Family
ID=56910079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610340073.4A Expired - Fee Related CN105956491B (zh) | 2016-05-19 | 2016-05-19 | 对公有云存储系统的数据进行多账号备份的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105956491B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107920046A (zh) * | 2016-10-09 | 2018-04-17 | 中兴通讯股份有限公司 | 账号管理方法及装置 |
CN107277152A (zh) * | 2017-06-29 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种公有云数据安全备份系统 |
CN109189609A (zh) * | 2018-08-16 | 2019-01-11 | 黄疆 | 一种非结构化数据快速备份系统和方法 |
CN112887298B (zh) * | 2021-01-22 | 2022-08-30 | 湖南金鹰卡通传媒有限公司 | 多账号体系管理数据同步方法、存储介质以及系统 |
CN114064207A (zh) * | 2021-11-10 | 2022-02-18 | 南京信易达计算技术有限公司 | 一种基于定制化linux架构的云存储系统中用户数据容器存储方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102143215A (zh) * | 2011-01-20 | 2011-08-03 | 中国人民解放军理工大学 | 一种基于网络的pb级云存储系统及其处理方法 |
CN102202044A (zh) * | 2011-02-25 | 2011-09-28 | 北京兴宇中科科技开发股份有限公司 | 便携式云存储方法和设备 |
CN102811260A (zh) * | 2012-08-10 | 2012-12-05 | 清华大学 | 文件云同步系统及方法 |
CN103051732A (zh) * | 2013-01-18 | 2013-04-17 | 上海云和信息系统有限公司 | 实现数据自动推送分发功能的云计算系统及自动推送方法 |
CN105100170A (zh) * | 2014-05-21 | 2015-11-25 | 浙江海洋学院 | 多个云存储服务平台的自动云存储同步管理系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8676763B2 (en) * | 2011-02-08 | 2014-03-18 | International Business Machines Corporation | Remote data protection in a networked storage computing environment |
-
2016
- 2016-05-19 CN CN201610340073.4A patent/CN105956491B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102143215A (zh) * | 2011-01-20 | 2011-08-03 | 中国人民解放军理工大学 | 一种基于网络的pb级云存储系统及其处理方法 |
CN102202044A (zh) * | 2011-02-25 | 2011-09-28 | 北京兴宇中科科技开发股份有限公司 | 便携式云存储方法和设备 |
CN102811260A (zh) * | 2012-08-10 | 2012-12-05 | 清华大学 | 文件云同步系统及方法 |
CN103051732A (zh) * | 2013-01-18 | 2013-04-17 | 上海云和信息系统有限公司 | 实现数据自动推送分发功能的云计算系统及自动推送方法 |
CN105100170A (zh) * | 2014-05-21 | 2015-11-25 | 浙江海洋学院 | 多个云存储服务平台的自动云存储同步管理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105956491A (zh) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11928029B2 (en) | Backup of partitioned database tables | |
CN105824723B (zh) | 一种对公有云存储账户的数据进行备份的方法及系统 | |
CN105956491B (zh) | 对公有云存储系统的数据进行多账号备份的方法及系统 | |
US11036591B2 (en) | Restoring partitioned database tables from backup | |
CN105930233B (zh) | 对指定公有云账户的数据进行分别自动备份的方法及系统 | |
US11327949B2 (en) | Verification of database table partitions during backup | |
US10387402B2 (en) | System and method for conditionally updating an item with attribute granularity | |
CN105940396B (zh) | 分布式存储系统中对象的层级组块 | |
CN105978981B (zh) | 基于公有云存储账户的数据备份的线性扩容方法及系统 | |
CN103116618B (zh) | 基于客户端持久缓存的远程文件系统镜像方法及系统 | |
US11943291B2 (en) | Hosted file sync with stateless sync nodes | |
JP5656563B2 (ja) | 文書管理システム、文書管理システムの制御方法、プログラム | |
US8560569B2 (en) | Method and apparatus for performing bulk file system attribute retrieval | |
US20130218934A1 (en) | Method for directory entries split and merge in distributed file system | |
CN106294352B (zh) | 一种文件处理方法、装置和文件系统 | |
US20160110380A1 (en) | Method and apparatus for virtualization of a file system, data storage system for virtualization of a file system, and file server for use in a data storage system | |
US20120005307A1 (en) | Storage virtualization | |
CN104462185B (zh) | 一种基于混合结构的数字图书馆云存储系统 | |
WO2015066081A1 (en) | Compacting data history files | |
CN103002027A (zh) | 基于键值对系统实现树形目录结构的数据存储系统及方法 | |
US20170193039A1 (en) | Servicing queries of an event log | |
US10579597B1 (en) | Data-tiering service with multiple cold tier quality of service levels | |
WO2018118287A1 (en) | Method and system for maintaining and searching index records | |
CN109271871A (zh) | 样本存储路径生成方法、装置、计算机设备及存储介质 | |
US10452304B2 (en) | Efficient repository migration and storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100190 room 10-08, building Haidian District, Haidian street, Beijing, 38 Applicant after: Beijing Spring Technology Co., Ltd. Address before: 100190 room 10-08, building Haidian District, Haidian street, Beijing, 38 Applicant before: Beijing Chunhong Enterprise Management Consulting Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181218 Termination date: 20210519 |