应用于云存储的快速文件更新方法及系统的制作方法

文档序号:7776898阅读:315来源:国知局
专利名称:应用于云存储的快速文件更新方法及系统的制作方法
技术领域
本发明涉及云计算技术领域,尤其涉及一种应用于云存储的快速文件更新方法及系统。
背景技术
云存储是一种以数据存储和管理为核心的云计算系统,云存储基于云计算技术为用户提供高速、安全的存储服务,可以满足用户日益增长的存储需求,为业务平台开展高安全性、高可靠性、高可用性、高兼容性和开放性的存储服务来提供开放的云存储能力支持。有些时候,用户或业务系统可能需要向云存储进行文件的更新,如果更新的是追加文件,由于其修改的内容是以一定格式写入文件尾部的,因此可以直接上传修改部分进行文件更新;而如果更新的是非追加文件,这种文件在修改时文件整体会发生变化,因此必须将文件整体上传来实现文件更新,那么对于文件修改的内容较少,而文件本身尺寸较大的情形,则会带来更新代价过高而速度较慢的问题。

发明内容
本发明的目的是提出一种应用于云存储的快速文件更新方法及系统,能够实现云存储的文件的快速上传和更新。为实现上述目的,本发明提供了 一种应用于云存储的快速文件更新方法,包括:客户端向云存储服务器提交待更新文件的文件信息查询请求;所述云存储服务器根据所述文件信息查询请求将所述待更新文件的部分或全部分片的文件分片元数据返回给所述客户端,所述文件分片元数据包括当前分片的哈希值、所述当前分片的上一分片和下一分片的哈希值指针、当前分片的分片数据地址和当前分片的数据长度;所述客户端将接收到的所述待更新文件的部分或全部分片的文件分片元数据与自身保存的新文件通过分片操作所得到的文件分片元数据按照分片顺序依次进行比对;所述客户端根据比对结果确定所述新文件中与所述待更新文件的文件分片元数据不一致的文件分片元数据作为更新用的文件分片元数据;所述客户端将所述更新用的文件分片元数据和相应的分片数据上传给所述云存储服务器;所述云存储服务器根据所述更新用的文件分片元数据和相应的分片数据的存储地址对所述待更新文件的相应文件分片元数据进行更新。为实现上述目的,本发明还提供了一种应用于云存储的快速文件更新系统,包括客户端和云存储服务器,其中所述客户端包括:文件查询单元,用于向所述云存储服务器提交待更新文件的文件信息查询请求;分片比较单元,用于将接收到的所述待更新文件的部分或全部分片的文件分片元数据与自身保存的新文件通过分片操作所得到的文件分片元数据按照分片顺序依次进行比对;更新分片确定单元,用于根据比对结果确定所述新文件中与所述待更新文件的文件分片元数据不一致的文件分片元数据作为更新用的文件分片元数据;数据上传单元,用于将所述更新用的文件分片元数据和相应的分片数据上传给所述云存储服务器;所述云存储服务器包括:数据下发单元,用于根据所述文件信息查询请求将所述待更新文件的部分或全部分片的文件分片元数据返回给所述客户端,所述文件分片元数据包括当前分片的哈希值、所述当前分片的上一分片和下一分片的哈希值指针、当前分片的分片数据地址和当前分片的数据长度;文件更新单元,用于根据所述更新用的文件分片元数据和相应的分片数据的存储地址对所述待更新文件的相应文件分片元数据进行更新。基于上述技术方案,本发明实施例在文件的上传和更新过程中,先通过文件分片元数据的查询和比对来确定发生变化的文件分片,从而只对发生变化的文件分片进行上传,从而实现了文件的快速上传和更新,对系统资源和网络资源的占用较少。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1为本发明应用于云存储的快速文件更新方法的一实施例的流程示意图。图2为本发明应用于云存储的快速文件更新方法实施例中文件分片元数据的一种形式的结构示意图。图3为本发明应用于云存储的快速文件更新方法的另一实施例的信令示意图。图4为本发明快速文件更新系统的一实施例的结构示意图。
具体实施例方式下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。如图1所示,为本发明应用于云存储的快速文件更新方法的一实施例的流程示意图。在本实施例中,快速文件更新过程包括:步骤101、客户端向云存储服务器提交待更新文件的文件信息查询请求;步骤102、所述云存储服务器根据所述文件信息查询请求将所述待更新文件的部分或全部分片的文件分片元数据返回给所述客户端,所述文件分片元数据包括当前分片的哈希值、所述当前分片的上一分片和下一分片的哈希值指针、当前分片的分片数据地址和当前分片的数据长度;步骤103、所述客户端将接收到的所述待更新文件的部分或全部分片的文件分片元数据与自身保存的新文件通过分片操作所得到的文件分片元数据按照分片顺序依次进行比对;步骤104、所述客户端根据比对结果确定所述新文件中与所述待更新文件的文件分片元数据不一致的文件分片元数据作为更新用的文件分片元数据;
步骤105、所述客户端将所述更新用的文件分片元数据和相应的分片数据上传给所述云存储服务器;步骤106、所述云存储服务器根据所述更新用的文件分片元数据和相应的分片数据的存储地址对所述待更新文件的相应文件分片元数据进行更新。在本实施例中,客户端在更新云存储服务器上的文件之前,需要先向云存储服务器查询一下待更新文件的分片信息,云存储服务器根据文件信息查询请求将待更新文件的部分或全部分片的文件分片元数据返回给客户端。客户端通过比对待更新文件的分片和新文件的分片的哈希值来确定是否相同来确定哪些文件分片发生了变化。如果新文件相对于待更新文件只有很少的变化,那么只需将发生变化的一个或几个分片上传给云存储服务器就可以了。云存储服务器在接收到客户端上传的更新用的文件分片元数据和相应的分片数据,则可以根据更新用的文件分片元数据和相应的分片数据的存储地址对待更新文件的相应文件分片元数据进行更新。客户端和云存储服务器可以在客户端向云存储服务器提交待更新文件的文件信息查询请求的操作之前,预先约定分片方式及哈希算法,以保证分片方式和哈希计算的一致性,使得比对具有可行性。另一种可行的方式是,在云存储服务器向客户端返回文件分片元数据后,进行客户端与云存储服务器的协商,来约定分片方式及哈希算法。相应的,客户端既可以在接收到云存储服务器发送的文件分片元数据之前就对自身保存的新文件进行分割,也可以接收到云存储服务器发送的文件分片元数据之后对自身保存的新文件进行分割。云存储服务器可以在接收客户端发出的请求之前就预先对待更新文件进行分割,这种方式响应用户的时间较短;另一种方式是当接收到客户端发出的文件信息查询请求时,才对待更新文件进行分割,这种方式不需要占用过多服务器侧的存储,分割得到的分片数据可暂时保存在内存中。分割的文件分片元数据可以包括当前分片的哈希值、所述当前分片的上一分片和下一分片的哈希值指针、当前分片的分片数据地址和当前分片的数据长度等,如图2所示,为本发明应用于云存储的快速文件更新方法实施例中文件分片元数据的一种形式的结构示意图。在图2中每个文件分片元数据都包括当前分片的哈希值、所述当前分片的上一分片和下一分片的哈希值指针、当前分片的分片数据地址和当前分片的数据长度(图中未示出)。对于头分片来说,其上一分片的哈希值指针为NULL,对于尾分片来说,其下一分片的哈希值指针为NULL,以此也能区分出文件分片元数据是否为头尾分片的文件分片元数据。对于一个文件分片元数据来说,其保存的当前分片的上一分片和下一分片的哈希值指针也就是上一分片和下一分片的哈希值,在读取文件时,从头分片开始读取,利用下一分片的哈希值指针寻找下一分片,循环这个过程,直到尾分片,以此将每个分片中数据地址中对应的数据链接组合成文件。在客户端发送更新用的文件分片元数据和相应的分片数据时,可采用多线程的方式进行上传这会使上传过程更加快速。在服务器得到了更新用的文件分片元数据和相应的分片数据后,就可以对待更新文件的相应文件分片元数据进行更新了。具体来说,对于在所述待更新文件的文件分片元数据中与所述更新用的文件分片元数据相对应的文件分片元数据,对所述对应的文件分片元数据进行更新。这种情况是发生变化的是已有的文件分片,则直接对该文件分片元数据进行更新,通过更新重新确定该文件分片的哈希值,上一分片和下一分片的哈希值指针,以及更新分片数据的数据地址为上传后保存的该分片对应的数据地址。如果相对于所述待更新文件的文件分片元数据,所述更新用的文件分片元数据存在新增分片,则对所述新增分片对应的文件分片元数据进行更新,并对更新后文件的文件总分片数进行相应调整。这种情况是更新用的文件分片中具有待更新文件中没有的分片,此时则需要通过修改上下分片的哈希值指针将该新增分片插入到相应的位置,以保持分片的连续性,同时因为新增了分片,因此还需要修改文件总分片数。如果新增分片的分片长度超过预设最大分片长度,则将该新增分片按照预设最大分片长度再次切分成多个分片,并对该多个分片对应的文件分片元数据进行更新,并对更新后文件的文件总分片数进行相应调整。上述更新过程基本都需要根据所述更新用的文件分片元数据对本分片的哈希值进行更新,并根据上一分片的哈希值更新本分片的上一分片哈希值指针,以及根据下一分片的哈希值更新本分片的下一分片哈希值指针;根据所述更新用的文件分片元数据相应的分片数据的存储地址更新本分片的分片数据地址。如果客户端已保存有云存储服务器中的待更新文件的文件分片元数据,就无需向服务器提交文件信息查询请求了,可以直接将待更新文件的文件分片元数据与自身保存的新文件通过分片操作所得到的文件分片元数据按照分片顺序依次进行比对,然后根据比对结果向云存储服务器有选择的上传文件分片元数据及相应的分片数据,这样会节省一定的网络带宽和服务器的系统资源。下面以一种更直观的信令示意图的方式来说明以下本发明的快速文件更新过程,如图3所示,为本发明应用于云存储的快速文件更新方法的另一实施例的信令示意图。在图3中,快速文件更新流程包括:步骤201、客户端向云存储服务器提交待更新文件的文件信息查询请求,在文件信息查询请求中包含有待更新文件的标识或者地址信息。步骤202、云存储服务器将待更新文件的部分或全部分片的文件分片元数据连同其他一些文件信息(例如待更新文件的标识等)返回给客户端,在文件分片元数据中包括了当前分片的哈希值、所述当前分片的上一分片和下一分片的哈希值指针、当前分片的分片数据地址和当前分片的数据长度等。步骤203、客户端对本地保存的新文件(相对于待更新文件而言)进行分片,并计算各个分片的哈希值,形成文件分片元数据。步骤204、客户端将接收到的待更新文件的部分或全部分片的文件分片元数据与自身保存的新文件通过分片操作所得到的文件分片元数据按照分片顺序依次进行比对,判断文件分片元数据是否一致,如果一致则不需进行更新,如果不一致则执行步骤205。步骤205、客户端将更新用的文件分片元数据和相应的分片数据连同其他一些文件信息(例如待更新文件的标识等)以多线程的方式上传给云存储服务器,其中更新用的文件分片元数据为发生变化,需要更新的文件分片。步骤206、云存储服务器根据所述更新用的文件分片元数据和相应的分片数据的存储地址对所述待更新文件的相应文件分片元数据进行更新。步骤207、云存储服务器向客户端返回上传成功的响应消息。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。如图4所示,为本发明快速文件更新系统的一实施例的结构示意图。在本实施例中,快速文件更新系统包括客户端I和云存储服务器2,其中客户端I包括:文件查询单元
11、分片比较单元12、更新分片确定单元13和数据上传单元14。文件查询单元11负责向所述云存储服务器提交待更新文件的文件信息查询请求。分片比较单元12负责将接收到的所述待更新文件的部分或全部分片的文件分片元数据与自身保存的新文件通过分片操作所得到的文件分片元数据按照分片顺序依次进行比对。更新分片确定单元13负责根据比对结果确定所述新文件中与所述待更新文件的文件分片元数据不一致的文件分片元数据作为更新用的文件分片元数据。数据上传单元14负责将所述更新用的文件分片元数据和相应的分片数据上传给所述云存储服务器。云存储服务器2包括:数据下发单元21和文件更新单元22。数据下发单元21负责于根据所述文件信息查询请求将所述待更新文件的部分或全部分片的文件分片元数据返回给所述客户端,所述文件分片元数据包括当前分片的哈希值、所述当前分片的上一分片和下一分片的哈希值指针、当前分片的分片数据地址和当前分片的数据长度。文件更新单元22负责根据所述更新用的文件分片元数据和相应的分片数据的存储地址对待更新文件的相应文件分片元数据进行更新。在另一个实施例中,文件更新单元可以具体包括:第一更新组件,被配置为对于所述待更新文件的文件分片元数据中与所述更新用的文件分片元数据相对应的文件分片元数据,对所述对应的文件分片元数据进行更新;第二更新组件,被配置为在相对于所述待更新文件的文件分片元数据,所述更新用的文件分片元数据存在新增分片时,对所述新增分片对应的文件分片元数据进行更新,并对更新后文件的文件总分片数进行相应调整。在另一个实施例中,文件更新单元可以进一步包括:第三更新组件,被配置为在新增分片的分片长度超过预设最大分片长度时,将所述新增分片按照预设最大分片长度再次切分成多个分片,并对该多个分片对应的文件分片元数据进行更新,并对更新后文件的文件总分片数进行相应调整。在上述几个系统实施例中,在文件的上传和更新过程中,先通过文件分片元数据的查询和比对来确定发生变化的文件分片,从而只对发生变化的文件分片进行上传,从而实现了文件的快速上传和更新,对系统资源和网络资源的占用较少。最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式
进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
权利要求
1.一种应用于云存储的快速文件更新方法,包括: 客户端向云存储服务器提交待更新文件的文件信息查询请求; 所述云存储服务器根据所述文件信息查询请求将所述待更新文件的部分或全部分片的文件分片元数据返回给所述客户端,所述文件分片元数据包括当前分片的哈希值、所述当前分片的上一分片和下一分片的哈希值指针、当前分片的分片数据地址和当前分片的数据长度; 所述客户端将接收到的所述待更新文件的部分或全部分片的文件分片元数据与自身保存的新文件通过分片操作所得到的文件分片元数据按照分片顺序依次进行比对; 所述客户端根据比对结果确定所述新文件中与所述待更新文件的文件分片元数据不一致的文件分片元数据作为更新用的文件分片元数据; 所述客户端将所述更新用的文件分片元数据和相应的分片数据上传给所述云存储服务器; 所述云存储服务器根据所述更新用的文件分片元数据和相应的分片数据的存储地址对所述待更新文件的相应文件分片元数据进行更新。
2.根据权利要求1所述的快速文件更新方法,其中所述客户端将所述更新用的文件分片元数据和相应的分片数据发送给所述云存储服务器的操作具体为: 所述客户端将所述更新用的文件分片元数据和相应的分片数据以多线程的方式上传给所述云存储服务器。
3.根据权利要求1所述的快速文件更新方法,其中所述云存储服务器根据所述更新用的文件分片元数据相应的分片数据的存储地址对所述待更新文件的相应文件分片元数据进行更新的操作具体为: 对于在所述待更新文件的文件分片元数据中与所述更新用的文件分片元数据相对应的文件分片元数据,对所述对应的文件分片元数据进行更新; 如果相对于所述待更新文件的文件分片元数据,所述更新用的文件分片元数据存在新增分片,则对所述新增分片对应的文件分片元数据进行更新,并对更新后文件的文件总分片数进行相应调整。
4.根据权利要求3所述的快速文件更新方法,其中如果新增分片的分片长度超过预设最大分片长度,则将所述新增分片按照预设最大分片长度再次切分成多个分片,并对该多个分片对应的文件分片元数据进行更新,并对更新后文件的文件总分片数进行相应调整。
5.根据权利要求3或4所述的快速文件更新方法,其中所述对文件分片数据进行更新的操作具体包括: 根据所述更新用的文件分片元数据对本分片的哈希值进行更新,并根据上一分片的哈希值更新本分片的上一分片哈希值指针,以及根据下一分片的哈希值更新本分片的下一分片哈希值指针; 根据所述更新用的文件分片元数据相应的分片数据的存储地址更新本分片的分片数据地址。
6.根据权利要求1所述的快速文件更新方法,其中在所述客户端向云存储服务器提交待更新文件的文件信息查询请求的操作之前,还包括:所述客户端和云存储服务器预先约定分片方式及哈希算法。
7.根据权利要求1所述的快速文件更新方法,其中如果所述客户端已保存有所述云存储服务器中的待更新文件的文件分片元数据,则直接将所述待更新文件的文件分片元数据与自身保存的新文件通过分片操作所得到的文件分片元数据按照分片顺序依次进行比对。
8.一种快速文件更新系统,包括客户端和云存储服务器,其中所述客户端包括: 文件查询单元,用于向所述云存储服务器提交待更新文件的文件信息查询请求; 分片比较单元,用于将接收到的所述待更新文件的部分或全部分片的文件分片元数据与自身保存的新文件通过分片操作所得到的文件分片元数据按照分片顺序依次进行比对; 更新分片确定单元,用于根据比对结果确定所述新文件中与所述待更新文件的文件分片元数据不一致的文件分片元数据作为更新用的文件分片元数据; 数据上传单元,用于将所述更新用的文件分片元数据和相应的分片数据上传给所述云存储服务器; 所述云存储服务器包括: 数据下发单元,用于根据所述文件信息查询请求将所述待更新文件的部分或全部分片的文件分片元数据返回给所述客户端,所述文件分片元数据包括当前分片的哈希值、所述当前分片的上一分片和下一分片的哈希值指针、当前分片的分片数据地址和当前分片的数据长度; 文件更新单元,用于根据所 述更新用的文件分片元数据和相应的分片数据的存储地址对所述待更新文件的相应文件分片元数据进行更新。
9.根据权利要求8所述的快速文件更新系统,其中所述文件更新单元具体包括: 第一更新组件,被配置为对于所述待更新文件的文件分片元数据中与所述更新用的文件分片元数据相对应的文件分片元数据,对所述对应的文件分片元数据进行更新 第二更新组件,被配置为在相对于所述待更新文件的文件分片元数据,所述更新用的文件分片元数据存在新增分片时,对所述新增分片对应的文件分片元数据进行更新,并对更新后文件的文件总分片数进行相应调整。
10.根据权利要求9所述的快速文件更新系统,其中所述文件更新单元进一步包括: 第三更新组件,被配置为在新增分片的分片长度超过预设最大分片长度时,将所述新增分片按照预设最大分片长度再次切分成多个分片,并对该多个分片对应的文件分片元数据进行更新,并对更新后文件的文件总分片数进行相应调整。
全文摘要
本发明涉及一种应用于云存储的快速文件更新方法,包括客户端向云存储服务器提交待更新文件的文件信息查询请求;云存储服务器根据文件信息查询请求将待更新文件的文件分片元数据返回;客户端对文件分片元数据进行比对;客户端根据比对结果确定更新用的文件分片元数据;客户端将更新用的文件分片元数据和分片数据上传给云存储服务器;云存储服务器对待更新文件的相应文件分片元数据进行更新。本发明涉及一种应用于云存储的快速文件更新系统。本发明在文件的上传和更新过程中,先通过文件分片元数据的查询和比对来确定发生变化的文件分片,从而只对发生变化的文件分片进行上传,从而实现了文件的快速上传和更新,对系统资源和网络资源的占用少。
文档编号H04L29/08GK103166992SQ20111041588
公开日2013年6月19日 申请日期2011年12月14日 优先权日2011年12月14日
发明者龚靖, 雷俊智, 龙洋, 王锦华, 秦达 申请人:中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1