CN108111598A - 云盘数据的下发方法、装置及存储介质 - Google Patents
云盘数据的下发方法、装置及存储介质 Download PDFInfo
- Publication number
- CN108111598A CN108111598A CN201711372692.2A CN201711372692A CN108111598A CN 108111598 A CN108111598 A CN 108111598A CN 201711372692 A CN201711372692 A CN 201711372692A CN 108111598 A CN108111598 A CN 108111598A
- Authority
- CN
- China
- Prior art keywords
- file
- item
- version number
- history
- terminal
- 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.)
- Granted
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/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]
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种云盘数据的下发方法、装置及存储介质中,所述方法包括:接收终端发送对预定目录下的当前存储项的请求信息,所述请求信息携带所请求的数量和历史标识信息,所述历史标识信息包括用以标识截至上一次下发历史存储项给所述终端时,已下发给所述终端的历史存储项的历史版本信息;根据所述历史版本信息,从所述当前存储项中确定在上一次下发历史存储项给所述终端之后更新的增量存储项,得到待下发存储项;按照预定规则从所述待下发存储项中选取所述数量的存储项,得到目标存储项;将所述目标存储项下发给所述终端,通过上述方式,能够避免存储数据的重复下发,从而可以降低流量,减少耗时。
Description
技术领域
本发明涉及互联网技术领域,具体涉及一种云盘数据的下发方法、装置及存储介质。
背景技术
云盘又称为网络U盘、网络硬盘等,是一种在线存储服务,可以为用户提供文件的存储、访问、备份、共享等文件管理功能,用户不论身在何处,只要能够连接网路,即可在手机或电脑等终端上通过上网登录的方式管理云盘中的文件,不需要随身携带,便于数据保管。
目前,在终端拉取云盘中某个目录下的存储资源之后,若该目录下的存储资源发生增加、删除或修改等操作,终端再次访问该目录时,云盘***将会把该目录下的所有存储资源重新下发给终端,如此一来需要耗费较大流量来传输存储资源,且也会增加终端接收下发数据的耗时。
发明内容
本发明实施例提供一种云盘数据的下发方法、装置及存储介质,能够避免存储数据的重复下发,从而可以降低流量,减少耗时。
本发明实施例提供一种云盘数据的下发方法,包括:
接收终端发送对预定目录下的当前存储项的请求信息,所述请求信息携带所请求的数量和历史标识信息,所述历史标识信息包括用以标识截至上一次下发历史存储项给所述终端时,已下发给所述终端的历史存储项的历史版本信息;
根据所述历史版本信息,从所述当前存储项中确定在上一次下发历史存储项给所述终端之后更新的增量存储项,得到待下发存储项;
按照预定规则从所述待下发存储项中选取所述数量的存储项,得到目标存储项;
将所述目标存储项下发给所述终端。
相应地,本发明实施例还提供一种云盘数据的下发装置,包括:
接收模块,用于接收终端发送对预定目录下的当前存储项的请求信息,所述请求信息携带所请求的数量和历史标识信息,所述历史标识信息包括用以标识截至上一次下发历史存储项给所述终端时,已下发给所述终端的历史存储项的历史版本信息;
确定模块,用于根据所述历史版本信息,从所述当前存储项中确定在上一次下发历史存储项给所述终端之后更新的增量存储项,得到待下发存储项;
选取模块,用于按照预定规则从所述待下发存储项中选取所述数量的存储项,得到目标存储项;
发送模块,用于将所述目标存储项下发给所述终端。
可选地,该装置还包括设置模块,用于根据预定目录下的当前存储项的操作时间,设置所述当前存储项的版本号,其中存储项的操作时间越晚版本号越大。
可选地,所述获取模块还用于根据所述请求信息,获取截至上一次下发历史存储项给所述终端时,已下发给所述终端的历史文件夹的最小版本号和历史文件的最小版本号,以获取历史版本信息,各类型历史存储项的最小版本号用以指示对应类型历史存储项的最早操作时间;
所述确定模块还用于:
将所述历史文件夹的最小版本号与当前文件夹的版本号进行比较,以确定版本号小于所述历史文件夹的最小版本号的当前文件夹,得到剩余文件夹;
将所述历史文件的最小版本号与当前文件的版本号进行比较,以确定版本号小于所述历史文件的最小版本号的当前文件,得到剩余文件;
根据所述剩余文件夹以及剩余文件,确定所述当前存储项中在上一次下发历史存储项给所述终端之后,没有下发过给所述终端的剩余存储项,所述待下发存储项包括所述剩余存储项。
可选地,所述历史标识信息还包括文件夹的历史下发完全标记和文件的历史下发完全标记,所述历史下发完全标记为0或1,其中“0”表示在上一次下发历史存储项给所述终端之后所述预定目录下的所有历史文件/文件夹存储项没有被完全下发过给所述终端,“1”表示在上一次下发历史存储项给所述终端之后所述预定目录下的所有历史文件/文件夹存储项已被完全下发过给所述终端;
所述装置还包括控制模块,所述控制模块用于:
判断所述文件夹的历史下发完全标记是否为0;
若是,则控制所述确定模块执行将所述历史文件夹的最小版本号与当前文件夹的版本号进行比较的步骤;
所述控制模块还用于判断所述文件的历史下发完全标记是否为0;若是,则控制所述确定模块执行将所述历史文件的最小版本号与当前文件的版本号进行比较的步骤。
可选地,所述装置还包括第一判断模块和第一生成模块;
所述第一判断模块,用于判断所述预定目录的当前存储项中是否存在没有被选取过以下发给所述终端的文件夹,以及判断所述预定目录的当前存储项中是否存在没有被选取过以下发给所述终端的文件;
所述第一生成模块用于当所述预定目录的当前存储项中存在没有被选取过以下发给所述终端的文件夹时,生成文件夹的当前下发完全标记,并使所述文件夹的当前下发完全标记为“0”;当所述预定目录的当前存储项中不存在没有被选取过以下发给所述终端的文件夹时,生成文件夹的当前下发完全标记,并使所述文件夹的当前下发完全标记为“1”;
所述第一生成模块用于当所述预定目录的当前存储项中存在没有被选取过以下发给所述终端的文件时,生成文件的当前下发完全标记,并使所述文件的当前下发完全标记为“0”;当所述预定目录的当前存储项中不存在没有被选取过以下发给所述终端的文件时,生成文件的当前下发完全标记,并使所述文件的当前下发完全标记为“1”。
可选地,所述装置还包括更新模块;
所述更新模块用于根据所述文件夹的当前下发完全标记、文件的当前下发完全标记、所述目标存储项中各类型存储项的最大版本号和最小版本号,更新所述历史标识信息,以得到当前标识信息;
所述发送模块具体用于将所述当前标识信息和所述目标存储项下发给所述终端。
可选地,所述更新模块还用于将更新后的所述历史标识信息中的下发完全标记、最大版本号、最小版本号按照预定格式进行排列,以形成字符串形式的当前标识信息。
可选地,所述选取模块用于按照所述新增删除项、新增文件夹、新增文件、剩余文件夹、剩余文件的选取顺序,从所述待下发存储项中选取所述数量的存储项。
可选地,还包括第二判断模块和第二生成模块;
所述第二判断模块用于判断所述历史删除项的最大版本号是否小于当前删除项的最小版本号;
所述第二生成模块用于当所述历史删除项的最大版本号小于当前删除项的最小版本号时,生成删除项溢出标记,并使所述删除项溢出标记的值为1;
所述发送模块还用于将所述删除项溢出标记下发给所述终端,以使得所述终端根据所述删除项溢出标记将所述历史标识信息置空,并重新发送对预定目录下的当前存储项的请求信息;
所述第二生成模块用于当所述历史删除项的最大版本号不小于当前删除项的最小版本号时,生成删除项溢出标记,并使所述删除项溢出标记的值为0,并控制所述确定模块执行根据所述历史版本信息,从所述当前存储项中确定在上一次下发历史存储项给所述终端之后更新的增量存储项的步骤。
本发明实施例还提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述所述的云盘数据的下发方法中的步骤。
本发明云盘数据的下发方法中,从终端的请求信息中获取用以标识截至上一次下发历史存储项给终端时,已下发的历史存储项的历史版本信息,然后根据历史版本信息从预定目录下的当前存储项中确定在上一次下发历史存储项给终端之后更新的增量存储项,得到待下发存储项,从待下发存储项中选取终端所请求数量的存储项下发给终端,本方案中,通过从上一次下发历史存储项给终端之后更新的增量存储项中选取本次所要下发的存储项,因此本次下发给终端的存储项仅是在上一次下发之后更新的存储项,而不需要将已下发的历史存储项重复下发给终端,由此避免了重复下发数据,从而可以降低传输数据所耗费的流量,且可以减少耗时,使得终端可以快速接收到所下发的存储项。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的云盘数据的下发方法的场景示意图;
图1b是本发明实施例提供的云盘数据的下发方法的流程框架图;
图2是本发明实施例提供的云盘数据的下发方法中,存储项在云盘中的存储形式示意图;
图3是本发明实施例提供的云盘数据的下发方法中,对图2所示的部分存储项进行操作后,各存储项的版本号的示意图;
图4是本发明实施例提供的云盘数据的下发方法的流程示意图;
图5是本发明实施例提供的云盘数据的下发方法中,终端首次请求预定目录下的存储项时与云盘的交互示意图;
图6是本发明实施例提供的云盘数据的下发方法中,确定增量存储项的流程示意图;
图7是本发明实施例提供的云盘数据的下发方法中,没有发出请求信息之前终端上显示的预定目录下的存储项的示意图;
图8是本发明实施例提供的云盘数据的下发方法中,终端接收到目标存储项之后显示的预定目录下的存储项的示意图;
图9是本发明实施例提供的云盘数据的下发方法中,确定剩余存储项的流程示意图;
图10是本发明实施例提供的云盘数据的下发方法中,终端再次请求预定目录下的存储项时与云盘的一交互示意图;
图11是本发明实施例提供的云盘数据的下发方法中,终端再次请求预定目录下的存储项时与云盘的另一交互示意图;
图12是本发明实施例提供的云盘数据的下发装置一结构示意图;
图13是本发明实施例提供的云盘数据的下发装置另一结构示意图;
图14是本发明实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种云盘数据的下发方法、装置及存储介质。其中,该云盘数据的下发装置可以集成服务器等设备中。
如图1a所示,图1a是本发明实施例提供的云盘数据的下发方法的场景示意图。在本发明实施例的使用场景中,涉及服务器101、网络102以及终端,终端可以有多个,如包括终端A、终端B以及终端C,终端可以是手机、平板电脑、笔记本电脑或个人计算机等,服务器101例如是云盘的云服务器。服务器101和终端A、B、C通过网络102连接。终端A、B、C可以向服务器请求下发云盘中所存储的数据,也可以将数据上传至云盘中进行存储,或者对云盘中的数据进行修改、删除等操作。
以终端A为例,参阅图1b,服务器101可以用于接收终端A发送的对预定目录下的当前存储项的请求信息,该请求信息携带所请求的数量和历史标识信息,其中该历史标识信息包括用以标识截至上一次下发历史存储项给终端A时,已下发给终端的历史版本信息。其中,接收到请求信息之后,服务器101还可以根据请求信息判断该请求信息是否为终端A首次发送的请求信息,若是,则根据终端A所请求的数量选取相应数量的文件夹/文件下发给终端A,例如可以优先选取文件夹,再选取文件下发给终端,并且还将根据选取的文件夹/文件生成标识信息并下发给终端A。
若该请求信息不是终端A首次发送的请求信息,则可以根据历史版本信息,从预定目录下的当前存储项中确定上一次下发历史存储项给终端A之后更新的增量存储项;另外,服务器101进一步还可以根据历史版本信息,从当前存储项中确定上一次下发历史存储项给终端之后,没有下发过给终端A的剩余存储项,从而根据增量存储项和剩余存储项得到待下发存储项。然后按照预定规则从待下发存储项中选取所请求数量的存储项,得到目标存储项,并将目标存储项下发给终端A。比如,可以按照新增删除项、新增文件夹、新增文件、剩余文件夹以及剩余文件的选取顺序进行选取,以得到目标存储项。此外,进一步还可以根据选取的目标存储项生成标识信息,并将标识信息一同下发给终端A。
由此,通过利用历史版本信息至少可以确定在上一次下发历史存储项给终端A之后预定目录下更新的增量存储项,然后可以优先从增量存储项中选取下发数量的存储项给终端A,从而使得本次下发给终端A的存储项仅是在上一次下发之后更新的存储项,而不需要将已下发的历史存储项重复下发给终端A,由此避免了重复下发数据,从而可以降低传输数据所耗费的流量,且可以减少耗时,使得终端A可以快速接收到所下发的存储项,降低延时。
以下分别进行详细说明。
首先对本发明所涉及的存储项的版本号做介绍。在本发明实施例提供的存储数据请求的处理方法中,存储数据例如可以是云盘中的存储数据,或者其他云存储空间中的存储数据,以云盘为例,云盘中的一个文件夹、一个文件以及一个删除项均可以分别认为是一个存储项,即存储项的类型可以包括文件夹、文件和删除项,删除项可以包括被删除的文件和文件夹。预定目录是指云盘中的某个目录,例如可以是云盘的根目录,也可以是根目录下的某个文件夹中的目录。云盘中的每个存储项都有其操作时间,***作的内容例如可以是修改、上传或删除。
如图2所示,云盘中的存储项以树状形式进行存储,本发明实施例中,每个存储项均设置有一个版本号,该版本号根据存储项的操作时间进行设置,同一目录下各存储项的版本号根据各存储项的操作时间的先后顺序依次进行设置,其中,该操作时间的精度例如可以是以毫秒级或以上。在一种实施例中,存储项的操作时间越晚则版本号越大,操作时间越早则版本号越小。为了便于描述,存储项的版本号可以用数字表示。例如,如图2所示,云盘的根目录中的存储项包括两个文件(文件1和文件2)、三个文件夹(文件夹1、文件夹2和文件夹3)以及三个删除项(删除项1、删除项2和删除项3),其中文件夹1的目录下还包括文件夹1-1、文件1-2和文件1-3这三个存储项,文件夹1-1的目录下还包括文件1-1-1和文件1-1-2这两个存储项。文件夹3的目录下包括文件3-1。
下面将举例介绍存储项的版本号设置。譬如,一开始在根目录下先后添加文件1、文件2、文件夹3、文件夹4和文件夹5,文件1为最先添加的存储项,文件夹5为最后添加的存储项,此时根据这五个存储项的操作时间的先后顺序,得到对应的版本号按照从小到大依次为:V1、V2、V3、V4、V5,其中V1为文件1的版本号,V2为文件2的版本号,V3为文件夹1的版本号,以此类推。
之后,在文件夹3下添加了一个文件3-1,此时文件夹3的操作时间和添加的文件3-1的添加时间相同,文件夹3的版本号根据其操作时间的改变,也相应地改变为V6,文件3-1和文件夹3的操作时间相同,因此其版本号也为V6。在此之后,在文件夹1下又先后添加了一个文件夹1-1和一个文件1-2,根据其添加时间的先后顺序,设置文件夹1-1和文件1-2的版本号分别为V7和V8,此时文件夹1的操作时间和最后添加的文件1-2的添加时间相同,其版本号也相应地变为V8。之后,在文件夹1-1下又先后添加了文件1-1-1和文件1-1-2,根据该两个文件的添加时间的先后顺序,设置文件1-1-1和文件1-1-2的版本号分别为V9和V10,而文件夹1-1的操作时间和最后添加的文件1-1-2的添加时间相同,其版本号也相应地变为V10。
其中,由于文件1-1-1和文件1-1-2是在文件夹1-1目录下添加的,属于文件夹1-1目录下的存储项,相对于文件夹1而言,其直属下的存储项并没有发生改动,文件夹1-1仅是修改时间和版本号发生变更,文件夹1-1的名称并没有发生修改,即在文件夹1的目录下没有发生修改、删除、添加的操作内容,因此文件夹1的版本号仍然为V8。由此,最后得到如图2所示的各存储项的版本号,存储项的版本号越大说明存储项的操作时间越晚。
在此之后,如果某个目录下有删除、修改或上传(添加)的操作时,***作的存储项的版本号都会发生相应的改变或进行相应的设置。例如,如图3所示,对图2所示的根目录下的存储项按照时间先后顺序依次进行以下操作:将文件1删除,之后上传文件3,然后修改文件2,最后删除文件夹2。在进行上述操作之后,被删除的文件1变为删除项4,其版本号紧随最大版本号V13之后而设置为V14,添加的文件3的版本号则为V15,修改后的文件2的版本号变为V16,被删除的文件夹2变为删除项5,版本号设置V17。
根据类似的设置过程,当某一目录下的存储项产生修改、添加等操作时,按照操作时间的先后顺序设置***作的存储项的版本号。
参阅图4,本发明实施例提供的存储数据请求的处理方法中,所述方法具体包括如下步骤:
401、接收终端发送对预定目录下的当前存储项的请求信息,请求信息携带所请求的数量和历史标识信息,历史标识信息包括用以标识截至上一次下发历史存储项给终端时,已下发给终端的历史存储项的历史版本信息。
其中,步骤401所涉及的终端均是指同一个终端。需要说明的是,在本发明实施例中所描述的“终端”均是指同一个终端,均为发出对预定目录下的当前存储项的请求信息的终端,而所描述的“其他终端”则是指与该发出请求信息不同的其他终端。
本实施例以云盘为例进行说明,在其他实施例中也可以是其他云存储空间。预定目录例如可以是云盘中的根目录,或者根目录下某个文件夹下的目录。其中,请求信息中还携带目录标识,根据该目录标识可以确定终端所请求的预定目录。
其中,历史标识信息可以是服务器在上一次下发历史存储项给终端时将历史标识信息一同下发给终端,或者也可以是在上一次终端接收到历史存储项后根据历史存储项的版本号等信息生成的历史标识信息。本实施例中,历史标识信息为服务器在上一次下发历史存储项给终端时将历史标识信息一同下发给终端。已下发给终端的历史存储项包括上一次下发给终端的历史存储项。
在一些实施例中,版本信息例如可以是存储项的版本号,包括已下发给终端的各类型存储项的最大版本号和最小版本号。
其中,在接收终端发送对预定目录下的当前存储项的请求信息之后,可以包括:判断请求信息是否为终端首次发送,若不是,则执行步骤402。其中,当该请求信息为终端首次发送时,即当终端首次请求云盘中某个目录下的存储项时,会发送所请求的存储项的数量信息给服务器,其中可以不发送历史标识信息给云盘服务器,或者发送置空的历史标识信息给云盘服务器,置空是指历史标识信息中所记录的信息均为空字符。举例而言,如图5所示,以云盘中的“三国”文件夹目录下的存储项为例,终端第一次发出三国文件夹目录下的存储项的请求时(即用户通过终端第一次点击三国文件夹时),向服务器发出的首次请求信息中携带有所请求的数量(count)、历史标识信息(sign_info)以及目录标识(w_key)。其中,sign_info中的信息均为空字符,count例如为3,即请求3个存储项。
在一种实施例中,可以根据请求信息中是否携带历史标识信息以及携带的历史标识信息中的信息是否均为空字符来判断请求信息是否为终端首次发送,譬如,若请求信息中没有携带历史标识信息,则可以判断该请求信息为终端首次发送;若请求信息中携带历史标识信息,且该历史标识信息中的信息均为空字符时,则判断该请求信息为终端首次发送,当该历史标识信息中的信息不全都是空字符时,则判断该请求信息不是首次发送。
其中,当历史标识信息中的信息均为空字符,说明该请求信息为终端首次发送,因此服务器可以直接选取三国文件夹目录下的存储项返回给终端。具体地,当判断步骤401中的请求信息为终端首次发送,则可以通过如下方式进行:仍然以图5所示的三国文件夹目录为例,服务器根据接收到的首次请求信息从三国文件夹目录下选取count数量的存储项返回给终端,其中选取的规则例如可以是优先选取文件夹再选取文件,并且从具有最晚操作时间的文件夹/文件依次选取,也即从版本号最大的文件夹/文件依次选取。例如,如图5所示,三国文件夹下有1~4文件夹,因此优先从这4个文件夹中按照版本号从大到小的顺序选取文件夹4、文件夹3、文件夹2这3个文件夹返回给终端。其中,若三国文件夹下只有两个文件夹,则选取该两个文件夹以及版本号最大的文件返回给终端,以此类推。
在选取了3个文件夹后,根据所选取的3个文件夹的版本号,确定版本信息,具体地,选取3个文件夹的版本号中,最大的版本号V13作为文件夹的最大版本号,并且选取最小的版本号V11作为文件夹的最小版本号,另外,在首次下发存储项给终端时,选取所有删除项对应的所有版本号中最大的版本号作为删除项的最大版本号,该删除项的最大版本号即为删除项4的版本号V4。因此版本信息中包括删除项的最大版本号V4、文件夹的最大版本号V13、以及文件夹的最小版本号V11。而由于首次下发操作中没有选取文件,因此版本信息中的文件的最大版本号和最小版本号均为空。
另外,除了确定版本信息,还会生成文件夹的下发完全标记和文件的下发完全标记,下发完全标记可以用0和1表示,当下发完全标记为0时,可以表示在一次下发操作之后三国文件夹下的全部文件夹/文件没有被完全下发过给终端,即还有一部分文件夹没有下发过给终端;当下发完全标记为1时,则表示在一次下发操作之后三国文件夹下的所有文件夹/文件已被完全下发过给终端。如图5所示,在选取3个文件夹后,还有5个文件和1个文件夹没有被选取,即首次下发操作中三国文件夹下的文件和文件夹均没有下发完全,因此文件夹的下发完全标记为0,文件的下发完全标记也为0,由此确定文件夹和文件的下发完全标记。
其中,可以根据文件夹的下发完全标记、文件的下发完全标记以及所确定的版本信息生成标识信息,并将该标识信息与所选取的3个文件夹一同下发给终端。进一步地,可以将文件夹的下发完全标记、文件的下发完全标记以及所确定的版本信息以固定的格式合并为字符串,进而得到标识信息,该固定格式例如可以是:“文件夹的下发完全标记,文件的下发完全标记,删除项的最大版本号,文件的最大版本号,文件的最大版本号”。由此,如图5所示,在首次下发操作中生成的标识信息sign_info为:“0,0,V4,V13,V11,,”,其中文件的最大版本号和文件的最小版本号均为空。
在首次请求三国文件夹目录下的存储项之后,若三国文件夹目录下的存储项发生改变,例如用户在其他终端(例如为与步骤401中发出请求信息不同的终端)上登录云盘将一些存储项删除,或者将一些存储项修改,或者上传新的存储项,等等,则当终端再次访问三国文件夹目录下的存储项时,在发送请求时,将上一次接收到历史存储项时所接收到的历史标识信息(也即首次接收到存储项的时候所接收到的历史标识信息)一同发送给服务器,由此服务器根据该标识信息至少可以确定在首次下发存储项给终端之后三国文件夹目录下所更新的增量存储项,以下将会做具体说明。
继续参阅图4,步骤401之后,当判断接收到对预定目下的当前存储项的请求信息不是终端首次发送时,例如,当步骤401中接收到的请求信息为终端第三次发送,则步骤401中的上一次则是指第二次,上一次下发的历史存储项则是指第二次下发给终端的存储项,历史标识信息则是指在第二次下发存储项给终端时一同下发给终端的标识信息。
其中,在接收终端发送对预定目录下的当前存储项的请求信息之后,还可以包括以下步骤:根据请求信息,获取截至上一次下发历史存储项给终端时,已下发给终端的历史删除项的最大版本号、历史文件夹的最大版本号以及历史文件的最大版本号,以获取历史版本信息,其中各类型存储项的最大版本号用以指示对应类型历史存储项的最晚操作时间,存储项的操作时间越晚版本号越大。
本实施例中,历史版本信息包括截至上一次下发历史存储项给终端时,已下发给终端的历史删除项的最大版本号、历史文件夹的最大版本号以及历史文件的最大版本号。具体而言,已下发给中的历史删除项的最大版本号是指截至上一次下发历史存储项给终端时,预定目录中已下发的所有历史删除项(包括上一次已下发的历史删除项)的版本号中最大的版本号。同理地,已下发给终端的历史文件夹的最大版本号为截至上一次下发历史存储项给终端时,预定目录中已下发的所有历史文件夹(包括上一次已下发的历史文件夹)的版本号中最大的版本号,已下发给终端的历史文件的最大版本号为截至上一次下发历史存储项给终端时,预定目录中已下发的所有历史文件(包括上一次已下发的历史文件)的版本号中最大的版本号。其中,每一次下发存储项给终端时,所选取的存储项为按照相应类型存储项的版本号从大到小的顺序进行选取。从而每一次下发给终端的存储项中,均包括了相应类型存储项的最大版本号对应的存储项。例如,在上一次下发历史存储项给终端时,预定目录下的文件夹有3个,版本号从大到小分别为V3、V2和V1,当需要选取两个文件夹下发给终端时,从V3版本号的文件夹开始选取,依次选取版本号V3、V2两个文件夹下发给终端,此时历史文件夹的最大版本号即为V3。
其中,在接收到请求信息之后,从请求信息中获取历史版本信息。
在一种实施例中,获取历史版本信息之后,还可以包括:判断历史删除项的最大版本号是否小于当前删除项的最小版本号;若是,则生成删除项溢出标记,并使删除项溢出标记的值为1,然后将删除项溢出标记下发给终端,以使得终端根据删除项溢出标记将历史标识信息置空,并重新发送对预定目录下的当前存储项的请求信息;若否,则生成删除项溢出标记,并使删除项溢出标记的值为0,并执行步骤402。
其中,当前删除项的最小版本号是指预定目录的当前所有删除项的版本号中最小的版本号。云盘中的删除列表可能会长度限制,即只能保留最近删除的一部分删除项,例如只能保留一千个删除项,若用户删除了一千五百个删除项,出现了删除列表溢出,因此有五百个删除项将会丢失而不再保留于删除项列表中,从而当根据终端发来的历史版本信息选取存储项下发给终端时,有可能会导致数据选取错误。因此本实施例,在确定增量存储项之前,先判断历史版本信息中的历史删除项的最大版本号是否小于当前删除项的最小版本号,若是,则说明删除列表有溢出,此时生成删除项溢出标记,使该删除项溢出标记的值为1,从而终端根据该删除项溢出标记将历史标识信息置空,即使得历史标识信息中的各项信息均为空字符,并重新发送预定目录下的当前存储项的请求信息给服务器,从而服务器根据该请求信息将按照首次请求的过程选取相应的存储项下发给终端。其中,首次请求的过程可参考上述说明进行,在此不进行一一赘述。
其中,若历史版本信息中的历史删除项的最大版本号不小于当前删除项的最小版本号,则说明删除列表没有溢出,此时将生成为0的删除项溢出标记,并执行步骤402。因此本发明实施例中,在删除项溢出标记为0时,才执行步骤402,在删除项溢出标记为1时,不执行步骤402。可以理解的是,在一些实施例中,也可以不进行删除列表溢出的判断,而是在步骤401后直接执行步骤402。
402、根据历史版本信息,从当前存储项中确定在上一次下发历史存储项给终端之后更新的增量存储项,得到待下发存储项。
其中,更新的增量存储项是指在上一次下发历史存储项之后在预定目录下进行修改、添加和删除存储项的操作所形成的新的存储项,可以是文件、文件夹或删除项。比如,在上一次下发历史存储项之后,用户通过其他终端对该预定目录下的一个文件内容进行了修改,此时修改后的文件为一个更新的增量存储项;又如,在上一次下发历史存储项给终端之后,用户通过其他终端上传了一个文件夹至该预定目录下,此时上传的文件夹为一个更新的增量存储项;或者,在上一次下发历史存储项给终端之后,用户通过其他终端删除了预定目录下的一个文件,此时该被删除的文件成为一个删除项,该删除项为预定目下的删除列表中的一个更新的增量存储项。
其中,在接收终端发送对预定目录下的当前存储项的请求信息之前,还可以包括:根据预定目录下的当前存储项的操作时间,设置当前存储项的版本号,其中存储项的操作时间越晚版本号越大。因此,当预定目录下产生更新的增量存储项时,根据更新的增量存储项的操作时间以及在产生更新时预定目录下的存储项的版本号,来设置增量存储项的版本号,存储项操作时间越晚则版本号越大,因此存储项的版本号可以反应出存储项的操作时间的先后顺序。
在一种实施例中,如图6所示,步骤402具体可以包括以下子步骤:
4021、将历史删除项的最大版本号与当前删除项的版本号进行比较,以确定版本号大雨历史删除项的最大版本号的当前删除项,得到增量删除项。
4022、将历史文件夹的最大版本号与当前文件夹的版本号进行比较,以确定版本号大于历史文件夹的最大版本号的当前文件夹,得到增量文件夹。
4023、将历史文件的最大版本号与当前文件的版本号进行比较,以确定版本号大于历史文件的最大版本号的当前文件,得到增量文件。
4024、根据增量删除项、增量文件夹以及增量文件,确定当前存储项中在上一次下发历史存储项给终端之后更新的增量存储项。
需要说明的是,本实施例对步骤4021~4023的执行顺序并不做限定,可以是按照步骤4021~4023的顺序依次进行,也可以时三个步骤同时进行,还可以是按照步骤4023、4021、4022的顺序进行,等等。
其中,所有的增量删除项、增量文件夹以及增量文件均为增量存储项。本实施例中,存储项的版本号反应了各存储项的操作时间的先后顺序,版本号越大操作时间越晚,因此通过将历史删除项、历史文件夹以及历史文件的最大版本号与当前对应类型的各存储项的版本号进行比较,从而可以确定出在上一次下发历史存储项给终端之后,预定目录下更新的增量存储项。
403、按照预定规则从待下发存储项中选取所请求数量的存储项,得到目标存储项。
其中,该预定规则例如可以是按照增量删除项、增量文件夹以及增量文件的选取顺序,依次从增量删除项、增量文件夹以及增量文件中选取终端所请求数量的存储项,从而得到目标存储项,另外,在选取同一类型增量存储项时,按照版本号从大到小的顺序进行选取。例如,根据4021~4023的比较结果,若存在增量删除项、增量文件夹以及增量文件,假如终端所请求的存储项的数量为3个,若增量删除项的数量大于或等于3个,则先从增量删除项中按照版本号从大到小的顺序选取版本号前3的增量删除项,以得到目标存储项;若增量删除项的数量小于3个,例如为2个,则对应从增量删除项中选取2个增量删除项,剩余的一个则先从增量文件夹中选取,即从所有增量文件夹中选取在所有增量文件夹的版本号中最大版本号的文件夹,从而得到终端所请求的3个存储项,以此类推。
当然,在其他实施例中,也可以按照其他规则进行选取,例如按照增量文件夹、增量删除项以及增量文件的选取顺序依次选取终端所请求数量的存储项,对此不做限定。
404、将目标存储项下发给终端。
从增量存储项中选取终端所请求数量的存储项下发给终端,由此终端可以根据接收到的删除项确定终端上展示的对应目录下的存储列表中已被删除的存储项,进而将该存储项从列表中除去,并且将接收到的增量文件夹或增量文件在列表上进行显示。例如,如图7所示,终端在没有发出对预定目录下的当前存储项的请求信息之前,终端上所显示的云盘上的“历史”文件夹目录下的存储项包括“三国”文件夹、“元”文件夹、“宋”文件夹、“唐”文件夹、“明”文件夹、“大清”文件夹以及“第5道题”文档文件。当用户在其他终端登录了云盘并将该“历史”文件夹目录下的“元”文件夹删除,以及上传了“最后一题”文档文件后,云盘的“历史”文件夹目录下产生了一个增量文件:“最后一题”文档文件,删除项中增加了一个增量删除项:“元”文件夹。由此,终端再次对“历史”文件夹目录下的当前存储项发出请求时,当接收到返回的目标存储项时,如图8所示,根据目标存储项中的“元”文件夹删除项,将“历史”文件夹目录下的“元”文件夹删除,不再在“历史”文件夹下的列表中进行显示,以及根据“最后一题”文档文件的增量文件,将“最后一体”文档文件放置在历史”文件夹下的列表中进行显示。
由此,通过上述方式,若在上一次请求该预定目录下的存储项之后,该预定目录下产生更新的增量存储项,则当终端再次请求预定目录下的存储项时,不需要将该预定目录下已经下发给终端的存储项再次发给终端,而是直接从增量存储项中选取,由此可以降低传输数据所耗费的流量,且可以减少耗时,使得终端可以快速接收到所下发的存储项,降低延时。
参阅图9,在本发明的另一实施例中,接收终端发送对预定目录下的当前存储项的请求信息之后,还可以包括如下步骤:
901、根据请求信息,获取截至上一次下发历史存储项给终端时,已下发给终端的历史文件夹的最小版本号和历史文件的最小版本号,以获取用以标识上一次下发给终端的历史存储项的历史版本信息,各类型历史存储项的最小版本号用以指示对应类型历史存储项的最早操作时间。
本实施例中,历史版本信息还包括已下发给终端的历史文件夹的最小版本号和历史文件的最小版本号。具体地,历史文件夹的最小版本号为截至上一次下发历史存储项给终端时,预定目录中已下发的所有历史文件夹(包括上一次已下发的历史文件夹)的版本号中最小的版本号;历史文件的最小版本号为截至上一次下发历史存储项给终端时,预定目录中的所有历史文件(包括上一次已下发的历史文件)的版本号中最小的版本号。
其中,本实施例中,历史标识信息还包括文件夹的历史下发完全标记和历史文件的下发完全标记,其中历史下发完全标记为0或1,其中“0”表示在上一次下发历史存储项给终端之后预定目录下的所有历史文件/文件夹存储项没有被完全下发过给终端,“1”表示在上一次下发历史存储项给终端之后预定目录下的所有历史文件/文件夹存储项已被完全下发过给终端。其中,在接收到携带历史标识信息的请求信息之后,判断文件夹的历史下发完全标记是否为0,若是,则执行步骤902,若否,则不执行步骤902。另外,还判断文件的历史下发完全标记是否为0,若是,则执行步骤903,若否,则不执行步骤903。
902、将历史文件夹的最小版本号与当前文件夹的版本号进行比较,以确定版本号小于历史文件夹的最小版本号的当前文件夹,得到剩余文件夹。
当文件夹的历史下发完全标记为0时,说明在上一次下发历史存储项给终端之后,预定目录下的所有历史文件夹没有被完全下发过给终端,还有版本号较小的历史文件夹没有下发过给终端,此时通过将历史文件夹的最小版本号与当前文件夹的版本号进行比较,若当前一些文件夹的版本号小于历史文件夹的最小版本号,说明这部分文件夹并没有下发过给终端,因此可以确定在上一次下发存储项给终端之后,还没有下发过给终端的操作时间比较早的文件夹,即剩余文件夹,从而在当前下发操作中可以从剩余文件夹中选取文件夹下发给终端。当文件夹的历史下发完全标记为1时,说明在上一次下发历史存储项给终端之后,预定目录的所有历史文件夹已被下发过给终端,此时在当前下发操作中不需要再从版本号较小的历史文件夹中选取文件夹下发给终端,因此不需要执行步骤902,由此可以降低服务器的资源开销。
903、将历史文件的最小版本号与当前文件的版本号进行比较,以确定版本号小于历史文件的最小版本号的当前文件,得到剩余文件。
其中,根据文件的历史下发完全标记来确定是否需要执行步骤903,具体的过程可参考上述对步骤902的描述进行,此处不进行赘述。其中文件的历史下发完全标记为0或为1时所表示的意义,可参考文件夹的下发完全标记为0或1是的意义,此处也不进行赘述。
其中,本实施例对步骤902和903的执行顺序并不做限定,可以是两个步骤同时进行,也可以是先执行902后执行903,或者先执行903后执行902。
904、根据剩余文件夹以及剩余文件,确定当前存储项中在上一次下发历史存储项给终端之后,没有下发过给终端的剩余存储项,待下发存储项包括剩余存储项。
其中,剩余文件夹和剩余文件即为剩余存储项。
在本实施例中,按照预定规则从待下发存储项中选取所请求数量的存储项,具体可以包括:按照新增删除项、新增文件夹、新增文件、剩余文件夹、剩余文件的选取顺序,从待下发存储项中选取所请求数量的存储项,从而得到目标存储项。
在本实施例中,不仅确定预定目录下更新的增量存储项,还确定剩余存储项,从而增量存储项和剩余存储项作为待下发存储项,以从待下发存储项中选取要下发给终端的存储项。其中,对于同一类型存储项则按照版本号从大到小的顺序进行选取,直至选取够终端所请求的数量,若某一类型存储项不足终端所请求的数量,则按照上述选取顺序从下一类型存储项进行选取,以得到目标存储项。
在一种实施例中,得到目标存储项之后,还可以包括:判断预定目录的当前存储项中是否存在没有被选取过以下发给终端的文件夹,若是,则生成文件夹的当前下发完全标记,并使文件夹的当前下发完全标记为“0”;若否,则生成文件夹的当前下发完全标记,并使文件夹的当前下发完全标记为“1”。此外,还判断预定目录的当前存储项中是否存在没有被选取过以下发给终端的文件;若是,则生成文件的当前下发完全标记,并使文件的当前下发完全标记为“0”;若否,则生成文件的当前下发完全标记,并使文件的当前下发完全标记为“1”。
其中,可以根据历史标识信息中的历史文件夹的最大版本号和最小版本号、以及所选取的目标存储项中的文件夹,来判断当前存储项中是否存在没有被选取过下发给终端的文件夹,其中,当前文件夹中版本号位于历史文件夹的最大版本号和最小版本号之间的文件夹(包括端点版本号对应的文件夹)均为已被选取过下发给终端的历史文件夹,而根据目标存储项中的文件夹可以确定本次所要发送的文件夹,因此除去本次所要发送的文件夹以及位于历史文件夹的最大版本号和最小版本号之间的文件夹之后,若当前存储项中还有文件夹,则说明预定目录的当前存储项中存在没有被选取过以下发给终端的文件夹,此时将文件夹的当前下发完全标记置为0,若除去本次所要发送的文件夹以及位于历史文件夹的最大版本号和最小版本号之间的文件夹之后,当前存储项中没有文件夹,则说明当前存储项中不存在没有被选取过以下发给终端的文件夹,说明预定目录下的当前所有文件夹已被选取过以下发给终端,此时文件夹的当前下发完全标记置为1。同理地,参考文件夹的下发完全标记的设置方式,对应地设置文件的当前下发完全标记为0或1。
此外,还可以根据文件夹和文件的当前下发完全标记,生成一个总下发完全标记,记为finish_flag,其中该finish_flag的值可以为0(false)或1(true),用以表示预定目录下的所有文件夹和文件是否已被全部选取过以下发给终端。具体地,当文件夹和文件的当前下发完全标记均为1时,finish_flag的值为1,表示预定目录下的所有文件夹和文件均已被全部选取过以下发给终端;当文件夹和文件中其中一个的当前下发完全标记为0时,finish_flag的值为0,表示预定目录下的所有文件夹和文件中还存在文件夹或文件没有被全部选取过下发给终端。
其中,在将目标存储项发给终端之前,还可以包括:根据文件夹的当前下发完全标记、文件的当前下发完全标记、目标存储项中各类型存储项的最大版本号和最小版本号,更新历史标识信息,得到当前标识信息。
其中,将历史标识信息中的文件夹的历史下发完全标记更新为文件夹的当前下发完全标记,将历史标识信息中的文件的历史下发完全标记更新为文件的当前下发完全标记,从而得到当前标识信息中的文件夹和文件的当前下发完全标记。
其中,目标存储项中各类型存储项的最大版本号包括目标存储项中删除项的最大版本号、文件夹的最大版本号以及文件的最大版本号,最小版本号则包括目标存储项中文件夹的最小版本号以及文件的最小版本号。其中,当目标存储项中不包含某一类型存储项,例如目标存储项中没有文件夹,即在本次发送中没有下发文件夹给终端,因此不需要更新历史标识信息中的历史文件夹的最大版本号和最小版本号,当前标识信息中的文件夹的最大版本号仍然是历史标识信息中的历史文件夹的最大版本号。当目标存储项中存在文件夹时,选取目标存储项中的文件夹对应的所有版本号中大于历史文件夹的最大版本号且为该所有版本号中的最大的版本号,来更新历史标识信息中的历史文件夹的最大版本号;以及选取目标存储项中的文件夹对应的所有版本号中小于历史文件夹的最小版本号且为该所有版本号中最小的版本号,来更新历史标识信息中的历史文件夹的最小版本号。
其中,若目标存储项中的文件夹对应的所有版本号均是大于历史文件夹的最大版本号,则不需要更新历史标识信息中的历史文件夹的最小版本号,即当前标识信息的文件夹的最小版本号即为历史文件夹的最小版本号,若目标存储项中的文件夹对应的所有版本号均是小于历史文件夹的最小版本号,则不需要更新历史标识信息中的历史文件夹的最大版本号,即当前标识信息的文件夹的最大版本号即为历史文件夹的最大版本号。
基于类似的原理,根据目标存储项中的删除项的最大版本号、文件的最大版本号和最小版本号来更新历史标识信息中的删除项的最大版本号、文件的最大版本号和最小版本号,具体过程可参考文件夹的最大和最小版本号的设置方式进行,在此不进行一一赘述。
其中,更新后的历史标识信息即为当前标识信息,当前标识信息中包括文件夹的当前下发完全标记、文件的当前下发完全标记以及当前版本信息,当前版本信息包括当前文件夹的最大版本号和最小版本号、当前文件的最大版本号和最小版本号、以及当前删除项的最大版本号。
其中,更新历史标识信息之后,还可以包括:将更新后的历史标识信息中的下发完全标记、最大版本号、最小版本号按照预定格式进行排列,以形成字符串形式的当前标识信息。即,将文件夹的当前下发完全标记、文件的当前下发完全标记、当前文件夹的最大版本号和最小版本号、当前文件的最大版本号和最小版本号、以及当前删除项的最大版本号按照固定格式进行排列,得到字符串形式的当前标识信息。该固定格式例如可以是按照以下顺序进行排列:“文件夹的当前下发完全标记,文件的当前下发完全标记,当前删除项的最大版本,当前文件夹的最大版本号和最小版本号,当前文件的最大版本号和最小版本号”。
例如,文件夹的当前下发完全标记、文件的当前下发完全标记、当前文件夹的最大版本号和最小版本号、当前文件的最大版本号和最小版本号、以及当前删除项的最大版本号分别为0、0、V5、V2、V4、V1、V7,则合并为固定格式的一个字符串,如下:“0,0,V7,V5、V2、V4、V1”,由此得到当前标识信息。本实施例中,通过采取字符串的形式形成当前标识信息,由此可增强了终端和服务器之间协议的可扩展性,简化统一了终端请求存储项的逻辑。
其中,在得到当前标识信息之后,将目标存储项下发给终端具体可以包括:将当前标识信息和目标存储项下发给终端。由此终端可以根据接收到的历史标识信息和目标存储项来更新终端上所显示的预定目录下的存储项,并且在下一次请求预定目录下的存储项时,将本次接收到的当前标识信息发送给服务器。
此外,在本实施例中,在下发当前标识信息和目标存储项给终端时,还会下发删除项溢出标记给终端,该删除项溢出标记用overflow_flag表示,其中本次下发操作中overflow_flag例如为0,即云盘中的删除列表没有溢出。其中,还可以将finish_flag的值也一同下发给终端。
下面将以图5所示的三国文件夹目录下的存储项为例,进一步说明本发明。
其中,图5为本发明一实施例中,终端和云盘的服务器之间的首次交互示意图,终端首次向服务器请求预定目录下的存储项,服务器根据终端的请求首次返回存储项以及标识信息给终端。其中,如图5所示,首次请求三国文件夹目录下的存储项时,服务器下发给终端的存储项为文件夹3、文件夹2以及文件夹1,下发给终端的标识信息为:“0,0,V4,V13,V11,,”。分别表示为文件夹的下发完全标记、文件的下发完全标记、删除项的最大版本号、文件夹的最大版本号、文件夹的最小版本号,最后的空格符表示文件的最大版本号和文件的最小版本号均为空。
参阅图10,终端第二次向服务器发出对三国文件夹目录下的存储项的请求信息时,该请求信息携带了终端上一次接收到的历史标识信息,即首次请求中所接收到的标识信息:“0,0,V4,V13,V11,,”。
服务器根据接收到的历史标识信息,获取文件夹的历史下发完全标记、文件的历史下发完全标记、历史删除项的最大版本号、历史文件夹的最大版本号和最小版本号、历史文件的最大版本号和最小版本号,分别为“0”、“0”、“V4”、“V13”、“V11”、“”。结合图10所示的当前各存储项的版本号,服务器将历史删除项的最大版本号与预定目录下的当前所有删除项的版本号进行比较,根据比较结果可知历史删除项的最大版本号并没有小于当前删除项的最小版本号V1,因此删除列表没有溢出,此时服务器根据历史删除项的最大版本号、历史文件夹和历史文件的最大版本号确定增量存储项。
具体地,根据历史删除项的最大版本号V4和当前所有删除项的版本号的比对结果可知,当前所有删除项中没有版本号比历史删除项的最大版本号V4更大的当前删除项,因此新增删除项为零个;根据历史文件夹的最大版本号V13和当前所有文件夹的版本号的比对结果可知,当前所有文件夹中没有版本号比历史文件夹的最大版本号V13更大的当前文件夹,因此新增文件夹为零个;而由于历史文件的最大版本号为空,因此文件1~5既可以认为是增量文件,也可以认为是剩余文件。
另外,服务器在判断文件夹和文件的历史下发完全标记均为0之后,才执行剩余存储项的确定。具体地,根据历史文件夹的最小版本号V11和当前所有文件夹的版本号的比对结果可知,当前文件夹1的版本号V10小于历史文件夹的最小版本号V11,因此确定当前文件夹1为剩余文件夹,而由于历史文件的最小版本号为空,因此文件1~5既可以认为是增量文件,也可以认为是剩余文件。
以文件1~5为剩余文件为例,则此时新增文件可以认为是零个,服务器在确定增量存储项好剩余存储项之后,按照新增删除项、新增文件夹、新增文件、剩余文件夹、剩余文件的选取顺序,选取3个存储项作为目标存储项。其中,新增删除项、新增文件夹、新增文件均为零,因此从剩余文件夹和剩余文件中选取,并且同一类型存储项是按照版本号从大到小进行选取,因此选取文件夹1、文件5、文件4作为目标存储项。
其中,根据所选取的目标存储项的版本号可知,文件5的版本号为所选取的所有文件的版本号中最大的版本号,因此将历史标识信息中的历史文件的最大版本号更新为文件5的版本号V9,文件4为所选取的所有文件的版本号中最小的版本号,因此将历史标识信息中的历史文件的最小版本号更新为文件4的版本号V8,而文件夹1的版本号小于历史文件夹的最小版本号V11,因此将历史标识信息中的历史文件夹的最小版本号更新为文件夹1的版本号V10。其中目标存储项中的文件夹只有文件夹1,即目标存储项中的文件夹对应的所有版本号均是小于历史文件夹的最小版本号,因此不需要更新历史标识信息中的历史文件夹的最大版本号,仍然为V13。而目标存储项中没有删除项,因此也不需要更新历史标识信息中的历史删除项的最大版本号,仍然为V4。
此外,在选取了文件夹1、文件5和文件4之后,根据所选取的目标存储项可知,三国文件夹目录下的所有文件夹已被选取过以下发给终端,因此文件夹的当前下发完全标记为1,将历史标识信息中的文件夹的历史下发完全标记更新为文件夹的当前下发完全标记。而三国文件夹目录下的文件1~3还没有被选取过以下发给终端,因此文件的当前下发完全标记为0,此时不需要更新历史标识信息中的文件的历史下达完全标记。
由此,可以得到更新后的历史标识信息为:“1,0,V4,V13,V10,V9,V8”,从而得到当前标识信息。将选取的目标存储项和当前标识信息一同下发给终端。
参阅图11,在终端第二次请求三国文件夹目录下的存储项之后,若用户在其他终端上对三国文件夹目录下的存储项进行改动,例如,删除了文件夹4,之后又添加了新文件6,其中被删除的文件夹4变为删除项5,删除项5的其版本号紧随被删除的文件夹4的版本号V13而设置为V14,而新添加的文件6的版本号则设置为V15。之后,终端第三次请求三国文件夹目录下的存储项时,将上一次接收到的历史标识信息“1,0,V4,V13,V10,V9,V8”发给服务器。
服务器在判断历史删除项的最大版本号没有小于当前所有删除项的版本号中的最小版本号后,开始确定增量存储项。其中,根据历史删除项的最大版本号V4和当前删除项的版本号的比对结果可知,删除项5的版本号V14大于历史删除项的最大版本号V4,从而得到新增删除项:删除项5;根据历史文件夹的最大版本号V13和当前文件夹的版本号的比对结果可知,当前文件夹中没有版本号比历史文件夹的最大版本号V13更大的文件夹,因此新增文件夹为零个;根据历史文件的最大版本号V9和当前文件的版本号的比对结果可知,文件6的版本号V15大于历史文件的最大版本号V9,从而得到新增文件:文件6。其中,根据值为1的文件夹的历史下发完全标记可知,在上一次下发历史存储项给终端之后,预定目录下的所有文件夹均已被选取过下发给终端,因此剩余文件夹为零个,因此无需将当前文件夹的版本号和历史文件夹的最小版本号进行比对。而根据值为0的文件的历史下发完全标记可知,在上一次下发历史存储项给终端之后,预定目录下还有文件没有被选取过下发给终端,因此将文件的历史最小版本号V8与当前文件的版本号进行比对,根据比对结果可知,文件1~3的版本号小于历史文件的最小版本号,从而得到剩余文件:文件3、文件2和文件1。
由此,服务器按照预定选取规则,选取删除项5、文件6和文件3这3个目标存储项,并相应地更新历史标识信息,得到当前标识信息为:“1,0,V14、V13、V10、V15、V7”。然后将目标存储项和当前标识信息下发给终端。
通过上述方式,本发明实施例的云盘数据的下发方法中,根据历史标识信息可以确定预定目录中已下发过给终端的存储项和没有下发过给终端的存储项,因此终端每一次请求预定目录下的存储项时,只需从没有下发过给终端的增量存储项和剩余存储项中选取相应数量的存储项下发给终端,不需要将已下发的历史存储项重复下发给终端,由此避免了重复下发数据,从而可以降低传输数据所耗费的流量,且可以减少耗时,使得终端可以快速接收到所下发的存储项。
参阅图12,在本发明实施例提供的一云盘数据的下发装置中,该下发装置例如可以集成在服务器中,如云盘的服务器。该下发装置可以包括接收模块1201、确定模块1202、选取模块1203以及发送模块1204。
其中,接收模块1201用于接收终端发送对预定目录下的当前存储项的请求信息,请求信息携带所请求的数量和历史标识信息,历史标识信息包括用以标识截至上一次下发历史存储项给终端时,已下发给终端的历史存储项的历史版本信息。其中,历史标识信息可以是服务器在上一次下发历史存储项给终端时将历史标识信息一同下发给终端,或者也可以是在上一次终端接收到历史存储项后根据历史存储项的版本号等信息生成的历史标识信息。本实施例中,历史标识信息为服务器在上一次下发历史存储项给终端时将历史标识信息一同下发给终端。已下发给终端的历史存储项包括上一次下发给终端的历史存储项。
在一些实施例中,版本信息例如可以是存储项的版本号,包括已下发给终端的各类型存储项的最大版本号和最小版本号。
进一步地,该装置还可以包括获取模块1205和设置模块1206。该获取模块1025用于根据请求信息,获取截至上一次下发历史存储项给终端时,已下发给终端的历史删除项的最大版本号、历史文件夹的最大版本号以及历史文件的最大版本号,以获取历史版本信息,其中各类型存储项的最大版本号用以指示对应类型历史存储项的最晚操作时间,存储项的操作时间越晚版本号越大。因此,本实施例中,历史版本信息包括截至上一次下发历史存储项给终端时,已下发给终端的历史删除项的最大版本号、历史文件夹的最大版本号以及历史文件的最大版本号。
设置模块1206用于在接收模块1201接收终端发送对预定目录下的当前存储项的请求信息之前,根据预定目录下的当前存储项的操作时间,设置当前存储项的版本号,其中存储项的操作时间越晚版本号越大。
确定模块1202用于根据历史版本信息,从当前存储项中确定在上一次下发历史存储项给终端之后更新的增量存储项,得到待下发存储项。具体地,确定模块1202通过以下步骤确定增量存储项:
将历史删除项的最大版本号与当前删除项的版本号进行比较,以确定版本号大雨历史删除项的最大版本号的当前删除项,得到增量删除项;
将历史文件夹的最大版本号与当前文件夹的版本号进行比较,以确定版本号大于历史文件夹的最大版本号的当前文件夹,得到增量文件夹;
将历史文件的最大版本号与当前文件的版本号进行比较,以确定版本号大于历史文件的最大版本号的当前文件,得到增量文件;
根据增量删除项、增量文件夹以及增量文件,确定当前存储项中在上一次下发历史存储项给终端之后更新的增量存储项。
通过上述方式,确定增量存储项,即所有的增量删除项、增量文件夹以及增量文件均为增量存储项。本实施例中,存储项的版本号反应了各存储项的操作时间的先后顺序,版本号越大操作时间越晚,因此通过将历史删除项、历史文件夹以及历史文件的最大版本号与当前对应类型的各存储项的版本号进行比较,从而可以确定出在上一次下发历史存储项给终端之后,预定目录下更新的增量存储项。
选取模块1203用于按照预定规则从待下发存储项中选取所请求数量的存储项,得到目标存储项。该预定规则例如可以是按照增量删除项、增量文件夹以及增量文件的选取顺序,依次从增量删除项、增量文件夹以及增量文件中选取终端所请求数量的存储项,从而得到目标存储项,另外,在选取同一类型增量存储项时,按照版本号从大到小的顺序进行选取。
当然,在其他实施例中,也可以按照其他规则进行选取,例如按照增量文件夹、增量删除项以及增量文件的选取顺序依次选取终端所请求数量的存储项,对此不做限定。
发送模块1204用于将目标存储项下发给终端。
通过上述方式,若在上一次请求该预定目录下的存储项之后,该预定目录下产生更新的增量存储项,则当终端再次请求预定目录下的存储项时,不需要将该预定目录下已经下发给终端的存储项再次发给终端,而是直接从增量存储项中选取,由此可以降低传输数据所耗费的流量,且可以减少耗时,使得终端可以快速接收到所下发的存储项,降低延时。
参阅图13,本发明实施例的云盘数据的下发装置中,进一步还可以包括控制模块1301、更新模块1302、第一判断模块1303、第一生成模块1304、第二判断模块1305以及第二生成模块1306。
本实施例中,获取模块1205还用于根据请求信息,获取截至上一次下发历史存储项给终端时,已下发给终端的历史文件夹的最小版本号和历史文件的最小版本号,以获取用以标识上一次下发给终端的历史存储项的历史版本信息,各类型历史存储项的最小版本号用以指示对应类型历史存储项的最早操作时间。
即在本实施例中,历史版本信息还包括已下发给终端的历史文件夹的最小版本号和历史文件夹的最小版本号。此外,历史标识信息还包括文件夹的历史下发完全标记和历史文件的下发完全标记,其中历史下发完全标记为0或1,其中“0”表示在上一次下发历史存储项给终端之后预定目录下的所有历史文件/文件夹存储项没有被完全下发过给终端,“1”表示在上一次下发历史存储项给终端之后预定目录下的所有历史文件/文件夹存储项已被完全下发过给终端。
其中,在接收到携带历史标识信息的请求信息之后,控制模块1301用于判断文件夹的历史下发完全标记是否为0,若是,则控制确定模块1202执行将历史文件夹的最小版本号与当前文件夹的版本号进行比较的步骤,若否,则控制确定模块1202不执行将历史文件夹的最小版本号与当前文件夹的版本号进行比较的步骤。控制模块1301还用于判断文件的历史下发完全标记是否为0,若是,则控制确定模块1202执行将历史文件的最小版本号与当前文件的版本号进行比较的步骤,若否,则控制确定模块1202不执行将历史文件的最小版本号与当前文件的版本号进行比较的步骤。
其中,确定模块1202还用于执行以下步骤:
将历史文件夹的最小版本号与当前文件夹的版本号进行比较,以确定版本号小于历史文件夹的最小版本号的当前文件夹,得到剩余文件夹;
将历史文件的最小版本号与当前文件的版本号进行比较,以确定版本号小于历史文件的最小版本号的当前文件,得到剩余文件;
根据剩余文件夹以及剩余文件,确定当前存储项中在上一次下发历史存储项给终端之后,没有下发过给终端的剩余存储项,待下发存储项包括剩余存储项。
其中,剩余文件夹和剩余文件即为剩余存储项。选取模块1203具体用于按照新增删除项、新增文件夹、新增文件、剩余文件夹、剩余文件的选取顺序,从待下发存储项中选取所请求数量的存储项,从而得到目标存储项。在本实施例中,不仅确定预定目录下更新的增量存储项,还确定剩余存储项,从而增量存储项和剩余存储项作为待下发存储项,以从待下发存储项中选取要下发给终端的存储项。其中,对于同一类型存储项按照版本号从大到小的顺序进行选取,直至选取够终端所请求的数量,若某一类型存储项不足终端所请求的数量,则按照上述选取顺序从下一类型存储项进行选取,以得到目标存储项。
第二判断模块1305用于在获取模块1205获取历史版本信息之后,判断历史删除项的最大版本号是否小于当前删除项的最小版本号。第二生成模块1306用于当第二判断模块1305判断历史删除项的最大版本号小于当前删除项的最小版本号时,生成删除项溢出标记,并使删除项溢出标记的值为1(true);当第二判断模块1305判断历史删除项的最大版本号不小于当前删除项的最小版本号时,生成删除项溢出标记,并使删除项溢出标记的值为0(false),并控制确定模块1202执行根据历史版本信息,从当前存储项中确定在上一次下发历史存储项给终端之后更新的增量存储项的步骤。
其中,发送模块1204还用于将值为1的删除项溢出标记下发给终端,以使得终端根据删除项溢出标记将历史标识信息置空,并重新发送对预定目录下的当前存储项的请求信息。
第一判断模块1303用于在得到目标存储项之后,判断预定目录的当前存储项中是否存在没有被选取过以下发给终端的文件夹,以及判断预定目录的当前存储项中是否存在没有被选取过以下发给终端的文件。
第一生成模块1304用于当预定目录的当前存储项中存在没有被选取过以下发给终端的文件夹时,生成文件夹的当前下发完全标记,并使文件夹的当前下发完全标记为“0”;当预定目录的当前存储项中不存在没有被选取过以下发给终端的文件夹时,生成文件夹的当前下发完全标记,并使文件夹的当前下发完全标记为“1”。
第一生成模块1304还用于当预定目录的当前存储项中存在没有被选取过以下发给终端的文件时,生成文件的当前下发完全标记,并使文件的当前下发完全标记为“0”;当预定目录的当前存储项中不存在没有被选取过以下发给终端的文件时,生成文件的当前下发完全标记,并使文件的当前下发完全标记为“1”。
此外,第一生成模块1304还可以根据文件夹和文件的当前下发完全标记,生成一个总下发完全标记,记为finish_flag,其中该finish_flag的值可以为0(false)或1(true),用以表示预定目录下的所有文件夹和文件是否已被全部选取过以下发给终端。具体地,当文件夹和文件的当前下发完全标记均为1时,finish_flag的值为1,表示预定目录下的所有文件夹和文件均已被全部选取过以下发给终端;当文件夹和文件中其中一个的当前下发完全标记为0时,finish_flag的值为0,表示预定目录下的所有文件夹和文件中还存在文件夹或文件没有被全部选取过下发给终端。
更新模块1302用于在发送模块1204将目标存储项发送给终端之前,根据文件夹的当前下发完全标记、文件的当前下发完全标记、目标存储项中各类型存储项的最大版本号和最小版本号,更新历史标识信息,得到当前标识信息。进一步地,更新模块还用于将更新后的历史标识信息中的下发完全标记、最大版本号、最小版本号按照预定格式进行排列,以形成字符串形式的当前标识信息。
发送模块1204将当前标识信息和目标存储项下发给终端。本实施例中,在下发当前标识信息和目标存储项给终端时,还会下发删除项溢出标记给终端,该删除项溢出标记用overflow_flag表示,其中本次下发操作中overflow_flag例如为0,即云盘中的删除列表没有溢出。其中,还可以将finish_flag的值也一同下发给终端。
通过本实施例,根据历史标识信息可以确定预定目录中已下发过给终端的存储项和没有下发过给终端的存储项,因此终端每一次请求预定目录下的存储项时,只需从没有下发过给终端的增量存储项和剩余存储项中选取相应数量的存储项下发给终端,不需要将已下发的历史存储项重复下发给终端,由此避免了重复下发数据,从而可以降低传输数据所耗费的流量,且可以减少耗时,使得终端可以快速接收到所下发的存储项。
本发明实施例还提供一种服务器,如图14所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以包括一个或者一个以上处理核心的处理器1401、一个或一个以上计算机可读存储介质的存储器1402、电源1403和输入单元1404等部件。本领域技术人员可以理解,图14中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器1401是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器1402内的软件程序和/或模块,以及调用存储在存储器1402内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器1401可包括一个或多个处理核心;优选的,处理器1401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1401中。
存储器1402可用于存储软件程序以及模块,处理器1401通过运行存储在存储器1402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器1402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1402还可以包括存储器控制器,以提供处理器1401对存储器1402的访问。
服务器还包括给各个部件供电的电源1403,优选的,电源1403可以通过电源管理***与处理器1401逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源1403还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入单元1404,该输入单元1404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,服务器中的处理器1401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器1402中,并由处理器1401来运行存储在存储器1402中的应用程序,从而实现各种功能,如下:
接收终端发送对预定目录下的当前存储项的请求信息,请求信息携带所请求的数量和历史标识信息,历史标识信息包括用以标识截至上一次下发历史存储项给终端时,已下发给终端的历史存储项的历史版本信息;
根据历史版本信息,从当前存储项中确定在上一次下发历史存储项给终端之后更新的增量存储项,得到待下发存储项;
按照预定规则从待下发存储项中选取数量的存储项,得到目标存储项;
将目标存储项下发给终端。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
本发明实施例中,从终端的请求信息中获取用以标识截至上一次下发历史存储项给终端时,已下发的历史存储项的历史版本信息,然后根据历史版本信息从预定目录下的当前存储项中确定在上一次下发历史存储项给终端之后更新的增量存储项,得到待下发存储项,从待下发存储项中选取终端所请求数量的存储项下发给终端,本方案中,通过从上一次下发历史存储项给终端之后更新的增量存储项中选取本次所要下发的存储项,因此本次下发给终端的存储项仅是在上一次下发之后更新的存储项,而不需要将已下发的历史存储项重复下发给终端,由此避免了重复下发数据,从而可以降低传输数据所耗费的流量,且可以减少耗时,使得终端可以快速接收到所下发的存储项。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种云盘数据的下发方法中的步骤。例如,该指令可以如下步骤:
接收终端发送对预定目录下的当前存储项的请求信息,请求信息携带所请求的数量和历史标识信息,历史标识信息包括用以标识截至上一次下发历史存储项给终端时,已下发给终端的历史存储项的历史版本信息;
根据历史版本信息,从当前存储项中确定在上一次下发历史存储项给终端之后更新的增量存储项,得到待下发存储项;
按照预定规则从待下发存储项中选取数量的存储项,得到目标存储项;
将目标存储项下发给终端。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种云盘数据的下发方法中的步骤,因此,可以实现本发明实施例所提供的任一种云盘数据的下发方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种云盘数据的下发方法、装置及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (15)
1.一种云盘数据的下发方法,其特征在于,包括:
接收终端发送对预定目录下的当前存储项的请求信息,所述请求信息携带所请求的数量和历史标识信息,所述历史标识信息包括用以标识截至上一次下发历史存储项给所述终端时,已下发给所述终端的历史存储项的历史版本信息;
根据所述历史版本信息,从所述当前存储项中确定在上一次下发历史存储项给所述终端之后更新的增量存储项,得到待下发存储项;
按照预定规则从所述待下发存储项中选取所述数量的存储项,得到目标存储项;
将所述目标存储项下发给所述终端。
2.根据权利要求1所述的方法,其特征在于,存储项的类型包括删除项、文件夹以及文件;
所述接收终端发送对预定目录下的当前存储项的请求信息之后,还包括:
根据所述请求信息,获取截至上一次下发历史存储项给所述终端时,已下发给所述终端的历史删除项的最大版本号、历史文件夹的最大版本号以及历史文件的最大版本号,以获取历史版本信息,各类型历史存储项的最大版本号用以指示对应类型历史存储项的最晚操作时间,其中存储项的操作时间越晚版本号越大。
3.根据权利要求2所述的方法,其特征在于,所述根据所述历史版本信息,从所述当前存储项中确定在上一次下发历史存储项给所述终端之后更新的增量存储项,包括:
将所述历史删除项的最大版本号与当前删除项的版本号进行比较,以确定版本号大于所述历史删除项的最大版本号的当前删除项,得到增量删除项;
将所述历史文件夹的最大版本号与当前文件夹的版本号进行比较,以确定版本号大于所述历史文件夹的最大版本号的当前文件夹,得到增量文件夹;
将所述历史文件的最大版本号与当前文件的版本号进行比较,以确定版本号大于所述历史文件的最大版本号的当前文件,得到增量文件;
根据所述增量删除项、增量文件夹以及增量文件,确定所述当前存储项中在上一次下发历史存储项给所述终端之后更新的增量存储项。
4.根据权利要求3所述的方法,其特征在于,在接收终端发送对预定目录下的当前存储项的请求信息之前,还包括:
根据预定目录下的当前存储项的操作时间,设置所述当前存储项的版本号,其中存储项的操作时间越晚版本号越大。
5.根据权利要求3所述的方法,其特征在于,所述接收终端发送对预定目录下的当前存储项的请求信息之后,还包括:
根据所述请求信息,获取截至上一次下发历史存储项给所述终端时,已下发给所述终端的历史文件夹的最小版本号和历史文件的最小版本号,以获取历史版本信息,各类型历史存储项的最小版本号用以指示对应类型历史存储项的最早操作时间;
将所述历史文件夹的最小版本号与当前文件夹的版本号进行比较,以确定版本号小于所述历史文件夹的最小版本号的当前文件夹,得到剩余文件夹;
将所述历史文件的最小版本号与当前文件的版本号进行比较,以确定版本号小于所述历史文件的最小版本号的当前文件,得到剩余文件;
根据所述剩余文件夹以及剩余文件,确定所述当前存储项中在上一次下发历史存储项给所述终端之后,没有下发过给所述终端的剩余存储项,所述待下发存储项包括所述剩余存储项。
6.根据权利要求5所述的方法,其特征在于,所述历史标识信息还包括文件夹的历史下发完全标记和文件的历史下发完全标记,所述历史下发完全标记为0或1,其中“0”表示在上一次下发历史存储项给所述终端之后所述预定目录下的所有历史文件/文件夹存储项没有被完全下发过给所述终端,“1”表示在上一次下发历史存储项给所述终端之后所述预定目录下的所有历史文件/文件夹存储项已被完全下发过给所述终端;
在所述将所述历史文件夹的最小版本号与当前文件夹的版本号进行比较之前,还包括:
判断所述文件夹的历史下发完全标记是否为0;
若是,则执行将所述历史文件夹的最小版本号与当前文件夹的版本号进行比较的步骤;
在所述将所述历史文件的最小版本号与当前文件的版本号进行比较之前,还包括:判断所述文件的历史下发完全标记是否为0;若是,则执行将所述历史文件的最大版本号与当前文件的版本号进行比较的步骤。
7.根据权利要求5所述的方法,其特征在于,在所述按照预定规则从所述待下发存储项中选取所述数量的存储项,得到目标存储项之后,还包括:
判断所述预定目录的当前存储项中是否存在没有被选取过以下发给所述终端的文件夹;
若是,则生成文件夹的当前下发完全标记,并使所述文件夹的当前下发完全标记为“0”;若否,则生成文件夹的当前下发完全标记,并使所述文件夹的当前下发完全标记为“1”;
判断所述预定目录的当前存储项中是否存在没有被选取过以下发给所述终端的文件;
若是,则生成文件的当前下发完全标记,并使所述文件的当前下发完全标记为“0”;若否,则生成文件的当前下发完全标记,并使所述文件的当前下发完全标记为“1”。
8.根据权利要求7所述的方法,其特征在于,在所述将所述目标存储项下发给所述终端之前,还包括:
根据所述文件夹的当前下发完全标记、文件的当前下发完全标记、所述目标存储项中各类型存储项的最大版本号和最小版本号,更新所述历史标识信息,以得到当前标识信息;
所述将所述目标存储项下发给所述终端,包括:将所述当前标识信息和所述目标存储项下发给所述终端。
9.根据权利要求8所述的方法,其特征在于,所述更新所述历史标识信息之后,还包括:
将更新后的所述历史标识信息中的下发完全标记、最大版本号、最小版本号按照预定格式进行排列,以形成字符串形式的当前标识信息。
10.根据权利要求5所述的方法,其特征在于,所述按照预定规则从所述待下发存储项中选取所述数量的存储项,包括:
按照所述新增删除项、新增文件夹、新增文件、剩余文件夹、剩余文件的选取顺序,从所述待下发存储项中选取所述数量的存储项。
11.根据权利要求2所述的方法,其特征在于,在所述根据所述历史版本信息,从所述当前存储项中确定在上一次下发历史存储项给所述终端之后更新的增量存储项之前,还包括:
判断所述历史删除项的最大版本号是否小于当前删除项的最小版本号;
若是,则生成删除项溢出标记,并使所述删除项溢出标记的值为1;以及将所述删除项溢出标记下发给所述终端,以使得所述终端根据所述删除项溢出标记将所述历史标识信息置空,并重新发送对预定目录下的当前存储项的请求信息;
若否,则生成删除项溢出标记,使所述删除项溢出标记的值为0,并执行根据所述历史版本信息,从所述当前存储项中确定在上一次下发历史存储项给所述终端之后更新的增量存储项的步骤。
12.一种云盘数据的下发装置,其特征在于,包括:
接收模块,用于接收终端发送对预定目录下的当前存储项的请求信息,所述请求信息携带所请求的数量和历史标识信息,所述历史标识信息包括用以标识截至上一次下发历史存储项给所述终端时,已下发给所述终端的历史存储项的历史版本信息;
确定模块,用于根据所述历史版本信息,从所述当前存储项中确定在上一次下发历史存储项给所述终端之后更新的增量存储项,得到待下发存储项;
选取模块,用于按照预定规则从所述待下发存储项中选取所述数量的存储项,得到目标存储项;
发送模块,用于将所述目标存储项下发给所述终端。
13.根据权利要求12所述的装置,其特征在于,存储项的类型包括删除项、文件夹以及文件;
所述装置还包括获取模块,用于根据所述请求信息,获取截至上一次下发历史存储项给所述终端时,已下发给所述终端的历史删除项的最大版本号、历史文件夹的最大版本号以及历史文件的最大版本号,以获取历史版本信息,各类型历史存储项的最大版本号用以指示对应类型历史存储项的最晚操作时间,其中存储项的操作时间越晚版本号越大。
14.根据权利要求13所述的装置,其特征在于,所述确定模块具体用于:
将所述历史删除项的最大版本号与当前删除项的版本号进行比较,以确定版本号大于所述历史删除项的最大版本号的当前删除项,得到增量删除项;
将所述历史文件夹的最大版本号与当前文件夹的版本号进行比较,以确定版本号大于所述历史文件夹的最大版本号的当前文件夹,得到增量文件夹;
将所述历史文件的最大版本号与当前文件的版本号进行比较,以确定版本号大于所述历史文件的最大版本号的当前文件,得到增量文件;
根据所述增量删除项、增量文件夹以及增量文件,确定所述当前存储项中在上一次下发历史存储项给所述终端之后更新的增量存储项。
15.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行如权利要求1至11任一项所述云盘数据的下发方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711372692.2A CN108111598B (zh) | 2017-12-19 | 2017-12-19 | 云盘数据的下发方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711372692.2A CN108111598B (zh) | 2017-12-19 | 2017-12-19 | 云盘数据的下发方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108111598A true CN108111598A (zh) | 2018-06-01 |
CN108111598B CN108111598B (zh) | 2021-10-08 |
Family
ID=62211187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711372692.2A Active CN108111598B (zh) | 2017-12-19 | 2017-12-19 | 云盘数据的下发方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108111598B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108243207A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种网络云盘的数据存储方法 |
CN108833553A (zh) * | 2018-06-21 | 2018-11-16 | 郑州云海信息技术有限公司 | 目录处理方法及相关设备 |
CN110492979A (zh) * | 2019-08-22 | 2019-11-22 | 杭州海兴电力科技股份有限公司 | 一种增量数据传输方法、装置、从机及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102761861A (zh) * | 2011-04-27 | 2012-10-31 | ***通信集团广东有限公司 | 信息的更新方法、服务器以及信息的更新*** |
CN102857570A (zh) * | 2012-09-13 | 2013-01-02 | 清华大学 | 文件的云同步方法及云存储服务器 |
CN105426403A (zh) * | 2015-10-30 | 2016-03-23 | 努比亚技术有限公司 | 书签同步方法及装置 |
-
2017
- 2017-12-19 CN CN201711372692.2A patent/CN108111598B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102761861A (zh) * | 2011-04-27 | 2012-10-31 | ***通信集团广东有限公司 | 信息的更新方法、服务器以及信息的更新*** |
CN102857570A (zh) * | 2012-09-13 | 2013-01-02 | 清华大学 | 文件的云同步方法及云存储服务器 |
CN105426403A (zh) * | 2015-10-30 | 2016-03-23 | 努比亚技术有限公司 | 书签同步方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108243207A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种网络云盘的数据存储方法 |
CN108833553A (zh) * | 2018-06-21 | 2018-11-16 | 郑州云海信息技术有限公司 | 目录处理方法及相关设备 |
CN110492979A (zh) * | 2019-08-22 | 2019-11-22 | 杭州海兴电力科技股份有限公司 | 一种增量数据传输方法、装置、从机及存储介质 |
CN110492979B (zh) * | 2019-08-22 | 2022-10-28 | 杭州海兴电力科技股份有限公司 | 一种增量数据传输方法、装置、从机及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108111598B (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302676B (zh) | 一种分布式文件***的主备机制数据传输方法及装置 | |
CN107370667A (zh) | 多线程并行处理方法和装置、可读介质和存储控制器 | |
CN108111598A (zh) | 云盘数据的下发方法、装置及存储介质 | |
CN110022337A (zh) | 资源调度方法、装置、设备和*** | |
CN102207957A (zh) | 部分项改变跟踪和同步 | |
KR20140011164A (ko) | 클립보드 동기화 서버 및 그를 포함한 클립보드 동기화 시스템 | |
CN109299157A (zh) | 一种分布式大单表的数据导出方法及装置 | |
CN107924391A (zh) | 共享协同编辑文档的方法和装置 | |
CN105930233B (zh) | 对指定公有云账户的数据进行分别自动备份的方法及*** | |
CN106933614A (zh) | 一种单页面应用升级方法及装置 | |
CN108090078A (zh) | 文档在线预览方法及装置 | |
CN107770229A (zh) | 云端文件分享方法、***和云服务器 | |
CN109144785A (zh) | 用于备份数据的方法和装置 | |
CN109981702A (zh) | 一种文件存储方法及*** | |
JP2001175681A (ja) | データベースシステム、データベースのレプリカ生成方法およびデータベースのレプリカ生成プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
CN103248636B (zh) | 离线下载的***及方法 | |
CN102377688B (zh) | 一种文件的传输方法和设备 | |
CN109189431A (zh) | 一种客户端升级方法、装置、设备及可读存储介质 | |
CN111737204A (zh) | 文件目录遍历方法、装置、设备和介质 | |
CN108520401B (zh) | 用户名单管理方法、装置、平台及存储介质 | |
CN110471968A (zh) | Etl任务的发布方法、装置、设备及存储介质 | |
CN102467355B (zh) | 信息处理设备及方法 | |
CN114138786A (zh) | 一种联机交易消息去重方法、装置、介质、产品和设备 | |
CN114492349A (zh) | 表格拆分方法、装置、电子设备及存储介质 | |
CN101180605A (zh) | 数据提示装置、数据提示程序以及数据提示方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |