CN114363358A - 文档分发方法、装置、电子设备及存储介质 - Google Patents

文档分发方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114363358A
CN114363358A CN202111651572.2A CN202111651572A CN114363358A CN 114363358 A CN114363358 A CN 114363358A CN 202111651572 A CN202111651572 A CN 202111651572A CN 114363358 A CN114363358 A CN 114363358A
Authority
CN
China
Prior art keywords
document
node
current node
block
target
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
Application number
CN202111651572.2A
Other languages
English (en)
Other versions
CN114363358B (zh
Inventor
孙强
郑传义
杨生飞
徐国龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING ZHONGFU TAIHE TECHNOLOGY DEVELOPMENT CO LTD
Nanjing Zhongfu Information Technology Co Ltd
Zhongfu Information Co Ltd
Zhongfu Safety Technology Co Ltd
Original Assignee
BEIJING ZHONGFU TAIHE TECHNOLOGY DEVELOPMENT CO LTD
Nanjing Zhongfu Information Technology Co Ltd
Zhongfu Information Co Ltd
Zhongfu Safety Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING ZHONGFU TAIHE TECHNOLOGY DEVELOPMENT CO LTD, Nanjing Zhongfu Information Technology Co Ltd, Zhongfu Information Co Ltd, Zhongfu Safety Technology Co Ltd filed Critical BEIJING ZHONGFU TAIHE TECHNOLOGY DEVELOPMENT CO LTD
Priority to CN202111651572.2A priority Critical patent/CN114363358B/zh
Publication of CN114363358A publication Critical patent/CN114363358A/zh
Application granted granted Critical
Publication of CN114363358B publication Critical patent/CN114363358B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供的一种文档分发方法、装置、电子设备及存储介质,涉及互联网领域。通过应用于多节点文档系统,各节点根据节点之间的归属关系形成层级结构,各节点分别用于存储对应层级的文档,且用于对下级节点的同步管理,当前节点获取第一文档获取请求,所述第一文档获取请求包括待获取的目标文档元数据中的各文档块标识;所述当前节点根据所述文档块标识确定当前节点中是否保存目标文档的所有文档块实体。可以提升文档在多区域多节点分发的速度,通过使用户按需获取文档,同时可以支持汇聚获取,极大的节省了网络带宽资源,另外,通过对各区域各节点进行权限管控,在快速分发文档的同时能够确保文档的安全性。

Description

文档分发方法、装置、电子设备及存储介质
技术领域
本申请涉及互联网领域,具体而言,涉及一种文档分发的方法、装置、电子设备及存储介质。
背景技术
目前,客户通常使用办公协作类产品网盘,用于文档管理,支持文档的上传下载以及分享等。协作类产品网盘中,除了公有云网盘,还有支持搭建在客户自己网络中的网盘类产品。私有网盘方案好处是客户完全控制数据,并且可以基于自身业务流程进行深度定制。
但是,规模较大、服务节点较多的客户搭建的私有云盘产品,要达到公有云产品服务质量(例如下载速度、网络稳定性等指标),则需要投入巨大的人力物力来保障。一般情况下,为了保障服务质量和数据安全,多节点部署时,按区域进行分层,用户需要就近接入(县级用户接入县级网盘系统,市级用户接入市级节点等),如果有一个文档要在整个区域分发,通常需要使用文档流转系统分发到省市县各级节点供省市县各级管理员下载,再由各级管理员注入到网盘系统中供本级节点人员下载使用,这样不仅步骤繁琐,而且耗时较长。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种文档分发方法、装置、电子设备及存储介质,以提升文档在多区域多节点分发的速度,达到文档快速安全的分发目的。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种文档分发方法,应用于多节点文档系统,所述多节点文档系统中包括多个节点,各节点根据节点之间的归属关系形成多层级结构,各节点分别用于存储对应层级的文档,且用于对下级节点进行同步管理,所述方法包括:
当前节点获取第一文档获取请求,所述第一文档获取请求中包括待获取的目标文档元数据中的各文档块标识,所述当前节点为所述多节点文档系统中的任一节点,所述目标文档拆分为多个文档块,各文档块标识由所述多节点文档系统中的顶级节点在将所述目标文档拆分为所述多个文档块后根据各文档块的信息生成并分发至所述多节点文档系统中的各节点;
所述当前节点根据所述文档块标识确定所述当前节点中是否保存所述目标文档的所有文档块实体;
若是,则所述当前节点输出所述目标文档的所有文档块实体;
若否,则所述当前节点根据所述当前节点所保存的所述目标文档的未同步文档块标识,从所述当前节点的上级节点获取所述目标文档的未同步文档块实体,并根据所述标识输出所述未同步文档块实体。
可选的,所述当前节点根据所述当前节点所保存的所述目标文档的未同步文档块的标识,从所述当前节点的上级节点获取所述目标文档的未同步文档块实体,包括:
所述当前节点向所述当前节点的上级节点发送第二文档获取请求,所述第二文档获取请求中包括所述目标文档的未同步文档块的标识;
所述当前节点的上级节点根据所述目标文档的未同步文档块的标识,读取所述目标文档的未同步文档块实体,并向所述当前节点同步所述目标文档的未同步文档块实体;
所述当前节点接收所述当前节点同步的所述目标文档的未同步文档块实体。
可选的,所述当前节点根据所述文档块标识确定所述当前节点中是否保存所述目标文档的所有文档块实体之后,还包括:
若所述当前节点中已保存所述目标文档的至少一个文档块实体,则所述当前节点输出已保存的文档块实体。
可选的,所述当前节点获取第一文档获取请求之前,还包括:
所述顶级节点获取所述目标文档;
所述顶级节点将所述目标文档切分为至少一个文档块;
所述顶级节点分别为各文档块生成文档块标识,并根据各文档块的所述文档块标识生成文档块列表;
所述顶级节点根据所述文档块列表以及各所述目标文档的属性信息,生成各所述目标文档的元数据,所述属性信息包括:文档大小、修改时间、文档类型;
所述顶级节点向所述顶级节点的下层节点分发所述目标文档的元数据,并保存所述目标文档。
可选的,所述方法还包括:
所述当前节点向所述当前节点的上级节点发送元数据更新请求,所述元数据更新请求用于请求获取所述当前节点的上级节点新增且未同步至所述当前节点的元数据;
所述当前节点的上级节点将新增且未同步至所述当前节点的元数据发送至所述当前节点;
所述当前节点保存所述上级节点新增且未同步至所述当前节点的元数据。
可选的,所述当前节点根据所述文档块标识确定所述当前节点中是否保存所述目标文档的所有文档块实体,包括:
所述当前节点确定触发所述第一文档获取请求的用户是否具有获取当前层级的文档获取权限;
若是,所述当前节点根据所述文档块标识确定所述当前节点中是否保存所述目标文档的所有文档块实体。
可选的,所述当前节点获取第一文档获取请求,包括:
所述当前节点实时监测节点业务负荷;
若所述当前节点业务负荷小于第一预设阈值,且,所述当前节点未下载文档块的时长大于或等于第二预设阈值,则所述当前节点获取所述第一文档获取请求。
第二方面,本申请实施例还提供了一种文档分发装置,所述装置包括:
获取模块,用于获取第一文档获取请求,所述第一文档获取请求中包括待获取的目标文档元数据中的各文档块标识,所述当前节点为所述多节点文档系统中的任一节点,所述目标文档拆分为多个文档块,各文档块标识由所述多节点文档系统中的顶级节点在将所述目标文档拆分为所述多个文档块后根据各文档块的信息生成并分发至所述多节点文档系统中的各节点;
确定模块,用于根据所述文档块标识确定所述当前节点中是否保存所述目标文档的所有文档块实体;
输出模块,用于当所述当前节点中保存所述目标文档的所有文档块实体时,输出所述目标文档的所有文档块实体;
获取模块,用于当所述当前节点中未保存所述目标文档的所有文档块实体时,根据所述当前节点所保存的所述目标文档的未同步文档块标识,从所述当前节点的上级节点获取所述目标文档的未同步文档块实体,并根据所述标识输出所述未同步文档块实体。
可选的,所述获取模块,具体用于:
向所述当前节点的上级节点发送第二文档获取请求,所述第二文档获取请求中包括所述目标文档的未同步文档块的标识;
所述当前节点的上级节点根据所述目标文档的未同步文档块的标识,读取所述目标文档的未同步文档块实体,并向所述当前节点同步所述目标文档的未同步文档块实体;
所述当前节点接收所述当前节点同步的所述目标文档的未同步文档块实体。
可选的,所述输出模块,具体用于:
若所述当前节点中已保存所述目标文档的至少一个文档块实体,则所述当前节点输出已保存的文档块实体。
可选的,所述获取模块,具体用于:
获取所述目标文档;
将所述目标文档切分为至少一个文档块;
分别为各文档块生成文档块标识,并根据各文档块的所述文档块标识生成文档块列表;
根据所述文档块列表以及各所述目标文档的属性信息,生成各所述目标文档的元数据,所述属性信息包括:文档大小、修改时间、文档类型;
向所述顶级节点的下层节点分发所述目标文档的元数据,并保存所述目标文档。
可选的,所述获取模块,具体用于:
向所述当前节点的上级节点发送元数据更新请求,所述元数据更新请求用于请求获取所述当前节点的上级节点新增且未同步至所述当前节点的元数据;
所述当前节点的上级节点将新增且未同步至所述当前节点的元数据发送至所述当前节点;
保存所述上级节点新增且未同步至所述当前节点的元数据。
可选的,所述确定模块,具体用于:
确定触发所述第一文档获取请求的用户是否具有获取当前层级的文档获取权限;
若是,所述当前节点根据所述文档块标识确定所述当前节点中是否保存所述目标文档的所有文档块实体。
可选的,所述获取模块,具体用于:
实时监测节点业务负荷;
若所述当前节点业务负荷小于第一预设阈值,且,所述当前节点未下载文档块的时长大于或等于第二预设阈值,则所述当前节点获取所述第一文档获取请求。
第三方面,本申请实施例还提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当应用程序运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行如上述第一方面所述的文档分发方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述第一方面所提供的文档分发方法。
本申请的有益效果是:
本申请提供的一种文档分发方法、装置、电子设备及存储介质,通过应用于多节点文档系统,各节点根据节点之间的归属关系形成层级结构,各节点分别用于存储对应层级的文档,且用于对下级节点的同步管理,当前节点获取第一文档获取请求,所述第一文档获取请求包括待获取的目标文档元数据中的各文档块标识;所述当前节点根据所述文档块标识确定当前节点中是否保存目标文档的所有文档块实体;若是,则所述当前节点输出所述目标文档的所有文档块实体;若否,则所述当前节点根据所述当前节点所保存的所述目标文档的未同步文档块的标识,从所述当前节点的上级节点获取所述目标文档的未同步文档块实体,并根据所述文档块标识输出所述未同步文档块实体。可以提升文档在多区域多节点分发的速度,通过使用户按需获取文档,同时可以支持汇聚获取,极大的节省了网络带宽资源,另外,通过对各区域各节点进行权限管控,在快速分发文档的同时能够确保文档的安全性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种文档分发方法的系统架构图;
图2为本申请实施例提供的一种文档分发方法的流程示意图;
图3为本申请实施例提供的另一种文档分发方法的流程示意图;
图4为本申请实施例提供的又一种文档分发方法的流程示意图;
图5为本申请实施例提供的一种文档分发方法的文档更新流程示意图;
图6为本申请实施例提供的一种文档分发方法的装置示意图;
图7为本申请实施例提供的一种电子设备的结构框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
图1为本申请实施例提供的一种文档分发方法的系统架构图,如图1所示,该方法应用于多节点文档系统,该多节点文档系统包括多个节点,各节点根据节点之间的归属关系形成多层级结构,各节点分别用于存储对应层级的文档,且用于对下级节点进行同步管理。应当理解,图1所示的结构图仅为示意,即该多节点文档系统可以具有比图1更多或者更少的节点,或者具有与图1所示不同的配置。其中,图1所示的各层级节点可以通过网络进行通信连接。
其中,各节点根据节点之间的归属关系形成多层级结构。详细地,该多节点文档系统为一多级节点相连/嵌套的节点集合,用于映射各节点之间的上下级连接关系,且各节点可用于对下级节点进行同步管理。示例性的,节点j归属于节点i,则节点i可以对节点j进行同步管理。
继续参照图1,上述多节点文档系统中的顶级节点可对应于实际管理中拥有最高管理权限的机构或者人员,例如其他节点若需要同步文档时,必须经由顶级节点下发到顶级节点对应连接的下级节点,再由顶级节点对应连接的下级节点持续下发到其对应的下级节点。若顶级节点未同步文档,则其他层级节点也不能同步该文档。
图2为本申请实施例提供的一种文档分发方法的流程示意图,该方法应用于上述多节点文档系统中。如图2所示,该方法包括:
S101、当前节点获取第一文档获取请求。其中第一文档获取请求包括待获取的目标文档元数据中的各文档块标识,当前节点为多节点文档系统中的任一节点,目标文档拆分为多个文档块,各文档块的标识由多节点文档系统中的顶级节点在将目标文档拆分为多个文档块后根据文档块的信息生成并分发至多节点文档系统中的各节点。
可选的,各文档块的标识由多节点文档系统中的顶级节点在将目标文档拆分为多个文档块后根据文档块的信息生成并分发至多节点文档系统中的各节点。其中,目标文档包括目标文档的元数据和元数据中各文档块的标识以及各文档块的文档实体,可以根据各文档块的标识获取到各文档块,顶级节点向各节点分发的是目标文档的文档块对应的标识,并且各节点将接收到的各文档块对应的标识保存在各节点的固定目录中,以便于用户的查找。
示例性的,例如可以固定存放在各节点的/storage目录下。
可选的,当前节点的用户可以进入到当前节点中的文档仓库中,向当前节点发送获取第一文档的请求,其中,第一文档获取请求中包括待获取的目标文档的元数据中各文档块标识,具体地,用户可以通过点击待获取的目标文档的元数据,通过目标文档元数据中的各文档块的标识来向当前节点发送获取标识对应的文档块的请求,当前节点接收用户发送的文档获取请求。
示例性的,当前节点的用户需要获取当前节点文档仓库中的A1文档块,且A1文档块对应的标识为h1,h1存储在目标文档的元数据H1中,用户进入到当前节点的文档仓库后,通过点击目标文档的元数据H1获取A1文档块的标识h1,通过A1文档块的标识h1向当前节点发送获取文档块A1的请求,则当前节点接收用户发送的获取文档块A1的请求。
S102、当前节点根据文档块标识确定当前节点中是否保存目标文档的所有文档块实体。
其中,文档块实体可以包括文档块记载的文档内容,目标文档的各文档块记载的文档内容整合在一起则是目标文档记载的文档内容。
可选的,用户可以向当前节点发送待获取目标文档的各文档块的标识,当前节点根据各文档块的标识在当前节点的文档仓库中查找各文档块的标识对应的文档块是否存在于当前节点中。具体地,若待获取目标文档的文档块包括B1、B2、B3,各文档块对应的标识为b1、b2、b3,则当前节点接收到用户发送的标识b1、b2、b3后,在当前节点的文档仓库中的待获取文档块标识存储的对应位置中查找有没有对应的文档块B1、B2、B3。若存在,执行步骤S103,若不存在,则执行步骤S104。
S103、若是,则当前节点输出所述目标文档的所有文档块实体。
可选的,当前节点根据接收到的待获取目标文档的各文档块的标识在当前节点中查找是否存在目标文档的所有文档块的文档实体,若存在,则当前节点将目标文档的所有文档块实体输出并发送给用户。
示例性的,若上述标识b1、b2、b3对应的文档块B1、B2、B3都存在于当前节点中,则当前节点直接将文档块B1、B2、B3输出并发送给用户。
S104、若否,则所述当前节点根据所述当前节点所保存的所述目标文档的未同步文档块的标识,从所述当前节点的上级节点获取所述目标文档的未同步文档块实体,并根据所述标识输出所述未同步文档块实体。
可选的,若当前节点中不存在目标文档的所有文档块的文档实体,则当前节点并未同步目标文档的所有文档块的文档实体,同时,当前节点根据未同步文档块的标识从当前节点的上级节点请求获取目标文档的未同步文档块实体,则,当前节点向上级节点发送未同步目标文档的各文档块的标识,当前节点的上级节点接收到未同步文档块的标识之后,根据未同步文档块的标识在本节点的文档仓库中查找到未同步文档块的文档实体,并将未同步文档块的文档实体转发给当前节点,当前节点将接收到的上级节点转发的未同步文档块的文档实体进行保存,同时将未同步文档块的文档实体转发给用户。
可选的,若当前节点的上级节点未查找出本节点中存在未同步文档块的文档实体,则当前节点的上级节点继续向上级节点请求获取未同步文档块的文档实体,若一直未获取到未同步文档块的文档实体,则根据多文档系统的层级关系向上级请求,一直到顶级节点,顶级节点则将未同步文档块的文档实体转发给下级节点,下级节点根据多文档系统的层级关系逐层级转发至当前节点,当前节点接收到未同步文档块的文档实体,将未同步文档块的文档实体进行保存同时转发给用户。
示例性的,当前节点C为节点B的下级节点,节点B为节点A的下级节点,同时节点A为顶级节点,当前节点C的用户向当前节点C请求获取目标文档H的所有文档块的文档实体,则当前节点C根据用户发送的目标文档H各文档块的标识h1、h2、h3查找是否存在各文档块H1、H2、H3,其中各文档块的存储位置可以为/storage/目录下,若当前节点C存在文档块H1、H2、H3,则当前节点C直接将文档块H1、H2、H3发送给用户;若当前节点C未找到文档块H1、H2、H3,则当前节点C向节点B请求获取各文档块H1、H2、H3,当前节点C向节点B发送标识h1、h2、h3,节点B根据标识h1、h2、h3在本节点中的文档仓库中查找是否存在文档块H1、H2、H3,若节点B存在文档块H1、H2、H3,则将文档块H1、H2、H3转发给节点C;若节点B也不存在文档块H1、H2、H3,则节点B向顶级节点A请求获取各文档块H1、H2、H3,节点A接收到节点B发送的文档标识h1、h2、h3,根据标识h1、h2、h3向节点B转发文档块H1、H2、H3,节点B接收文档块H1、H2、H3并保存,同时转发给节点C,节点C接收到文档块H1、H2、H3并保存,同时转发给用户。
综上所述,本实施例通过应用于多节点文档系统,各节点根据节点之间的归属关系形成层级结构,各节点分别用于存储对应层级的文档,且用于对下级节点的同步管理,当前节点获取第一文档获取请求,所述第一文档获取请求包括待获取的目标文档的各文档块的标识;所述当前节点根据所述标识确定当前节点中是否保存目标文档的所有文档块实体;若是,则所述当前节点输出所述目标文档的所有文档块实体;若否,则所述当前节点根据所述当前节点所保存的所述目标文档的未同步文档块的标识,从所述当前节点的上级节点获取所述目标文档的未同步文档块实体,并根据所述标识输出所述未同步文档块实体。可以提升文档在多区域多节点分发的速度,达到文档快速安全的分发目的。
图3为本申请实施例提供的另一种文档分发方法的流程示意图,如图3所示,上述步骤S104中,当前节点根据所述当前节点所保存的所述目标文档的未同步文档块的标识,从当前节点的上级节点获取目标文档的未同步文档块实体,该方法包括:
S201、当前节点向当前节点的上级节点发送第二文档获取请求,第二文档获取请求中包括目标文档的未同步文档块的标识;
可选的,当前节点向当前节点的上级节点通过网络通信发送第二文档获取请求,其中,该第二文档获取请求是当前节点在本节点文档仓库中未查找到的目标文档,具体地,当前节点可以向当前节点的上级节点发送目标文档的未同步文档块的标识,上级节点接收当前节点发送的未同步文档块的标识。
示例性的,例如当前节点文档仓库中未同步文档块的标识为h1,未同步文档块的文档实体为H1,则当前节点通过网络通信向当前节点的上级节点发送未同步文档块的标识h1,当前节点的上级节点通过网络通信对未同步文档块的标识为h1进行接收。
S202、当前节点的上级节点根据所述目标文档的未同步文档块的标识,读取所述目标文档的未同步文档块实体,并向所述当前节点同步所述目标文档的未同步文档块实体。
可选的,当前节点的上级节点接收到目标文档的未同步文档块的标识后,根据接收到的未同步文档块的标识读取到目标文档的文档块实体,将目标文档的未同步文档块实体通过网络通信同步到当前节点。
示例性的,例如上级节点在本节点中的未同步文档块的标识h1记录的文档块H1保存的位置为/storage/h1,则上级节点,接收到当前节点发送的未同步文档块的标识h1后,在上级节点的本节点中根据发送的未同步文档块的标识h1,在本节点中的文档块H1保存的位置/storage/h1读取到未同步文档块的文档实体,将目标文档的未同步文档块实体通过网络通信同步到当前节点的文档仓库中。
S203、当前节点接收所述当前节点同步的所述目标文档的未同步文档块实体。
可选的,当前节点接收到上级节点发送的未同步文档块实体,将未同步文档块实体进行同步并保存在当前节点中。
示例性的,例如当前节点未同步的文件块的文档实体是H1,文档块的标识是h1,文档实体H1在当前节点的存储位置是/storage/h1,则当前节点接收到上级节点发送的未同步文档块的文档实体H1后,将未同步文档块的文档实体H1进行同步,并保存在当前节点的/storage/h1目录中。
可选的,当前节点根据标识确定当前节点中是否保存目标文档的所有文档块实体之后,包括:
若当前节点中已保存目标文档的至少一个文档块实体,则当前节点输出已保存的文档块实体。
可选的,若当前节点接收到用户发送的获取目标文档的请求,当前节点根据的各文档块的标识在本节点的文档仓库中查找各文档块,若查找到目标文档的至少一个文档块实体,则当前节点输出已保存的文档块实体。具体地,目标文档的标识中可以包括四个文档块,例如可以是H1、H2、H3、H4,各文档块对应的标识为h1、h2、h3,h4,当用户向当前节点发送获取目标文档时,当前节点的文档仓库中只保存了目标文档中的两个文档块,例如可以是H1、H2,而其他两个文档块H3、H4正在从当前节点的上级节点同步中,则,当前节点可以先将文档块H1、H2发送给用户,而且当前节点在发送文档块H1、H2的同时文档块H3、H4也继续在同步,用户接收文档块H1、H2完成后,当前节点将同步好的文档块H3、H4保存,同时,将文档块H3、H4发送给用户,则用户接收到完整的目标文档的所有文档块H1、H2、H3、H4。
本实施例中,通过设置节点在转发文档块的同时还能获取文档块,可以使节点实现汇聚获取,节省了网络带宽资源。
图4为本申请实施例提供的又一种文档分发方法的流程示意图,如图4所示,上述步骤S101中,当前节点获取第一文档获取请求之前,包括:
S301、顶级节点获取目标文档。
可选的,顶级节点获取到目标文档,其中,该目标文档可以是一个任何格式的文档,例如可以是mp4、wav、jpg、doc、xml等其他格式。用户可以向顶级节点的文档仓库中的固定位置放入目标文档,目标文档的硬盘接用户放入的目标文档。
S302、顶级节点将所述目标文档切分为至少一个文档块。
可选的,顶级节点的硬盘接收到目标文档后,将目标文档切分为至少一个文档块,具体地,可以按照固定大小进行切分,例如该目标文档的总内存大小为16MB,则可以将目标文档设定划分为4个文档块,每个文档块的大小都设定为4MB,例如可以为B1、B2、B3、B4,对应的大小为B1(4MB),B2(4MB)、B3(4MB)、B4(4MB)。切分文档的大小可以自定义,各文档块的大小总和与目标文档的总内存大小一致则可。
S303、顶级节点分别为各文档块生成文档块标识,并根据各文档块的所述文档块标识生成文档块列表。
可选的,顶级节点在该节点的硬盘中对各文档块可以执行算法计算,使各文档块都生成对应的文档块标识,其中,该执行算法可以为SHA-256(加密哈希函数)摘要算法,在顶级节点的硬盘中对各文档块分别执行SHA-256摘要算法生成对应的文档标识,该文档标识可以是以一个长度为64的十六进制字符串来表示,且该标识是唯一的,各文档块的标识可以命名为Blockid,例如目标文档被切分成4个文档块,则目标文档会生成4个Blockid,并将4个Blockid以列表的形式存储在文档元数据中,则上述文档块B1、B2、B3、B4生成的文档块列表可以为:
“f18314fdc8f515d217196e647baf40c2e9f999124d62a62c00ec50c8a9f2aaa7”“5cc27edea100c3f89bcd1bac137dc826bfab448d56691a7c4033d6a162eb2911”“95648b4276a5433d36acd80bbd898c5785b23a7ecc5f7a7c3cc20947e8d66ae1”“52b0f184dc52dbf8b0f8474943c756826795a799a474171970a98069082b6ed6”。
S304、顶级节点根据文档块列表以及目标文档的属性信息,生成目标文档的元数据,属性信息包括:文档大小、修改时间、文档类型。
可选的,顶级节点在该节点的硬盘中根据文档块列表以及目标文档的属性信息,生成目标文档的元数据,并将生成的目标文档保存在本节点的固定位置。例如可以使用SHA-256摘要算法对文档块的属性信息进行计算生成唯一的ID,将各文档块生成的对应的ID以列表的形式存储在文档元数据中,结合文档的属性信息生成文档的元数据。其中,文档的属性信息可以包括文档大小、修改时间、文档类型等,例如目标文档的元数据可以为:
Figure BDA0003446682840000141
S305、顶级节点向顶级节点的下层节点分发文档的元数据,并保存目标文档。
顶级节点可以根据文档系统的层级关系向下层节点分发文档的元数据,各层级节点接收到分发的文档的元数据后保存在各节点的固定位置中。其中,顶级节点向顶级节点的下层节点分发个文档块的元数据时,具体地,可以选择两种方式进行分发,第一种,顶级节点可以在本节点将各文档块的标识整合在一个元数据文件中,将整合后的元数据文件分发给各层级节点;第二种,顶级节点可以逐个的分发各文档块,例如可以将一个文档块放入在一个文件中,若有4个文档块则会有4个文件,则将4个文件逐个分发给下级节点。下级节点将接收到的文档元数据进行保存同时将保存的各文档块分发给对应的下级节点。
本实施例中,通过将文档切分成文档块,对个文档块进行计算得到唯一的标识,可以实现通过各文档块的标识来查找需要的文档块,提高查找的准确性和效率。
图5为本申请实施例提供的一种文档分发方法的文档更新流程示意图,如图5所示,上述任一步骤包括:
S401、当前节点向当前节点的上级节点发送元数据更新请求,其中,元数据更新请求用于请求获取当前节点的上级节点新增且未同步至当前节点的元数据。
可选的,当前节点可以定时向当前节点的上级节点发送元数据的更新请求,例如可以设定每5s向上级节点发送元数据的更新请求。具体地,在t时刻,当前节点的文档仓库中的元数据为d1,当前节点的上级节点的文档仓库中的元数据为d2,当前节点向当前节点的上级节点发送元数据d1,当前节点的上级节点将元数据d1与本级节点的元数据d2进行对比,若元数据d1与元数据d2一致,则上级节点不需要向当前节点发送元数据;若元数据d1与d2不一致,且上级节点中新增加了元数据d21、d22,则上级节点将新增的元数据d21、d22发送到当前节点的文档仓库中。
可选的,当前节点的上级节点对本级节点的元数据与当前节点发送的元数据进行对比,两个元数据之间还可以发生删除或者修改的变化,若上级节点有删除或者修改的元数据,则上级节点将删除或者修改的元数据返回给当前节点,当前节点接收到上级节点返回的删除或者修改的元数据,对当前节点的元数据进行相应的删除或者修改。
S402、当前节点保存上级节点新增且未同步至当前节点的元数据。
可选的,当前节点接收到上级节点发送的新增且未同步的元数据后,将新增且未同步的元数据进行同步,同时保存在当前节点的文档仓库中。具体地,若当前节点元数据的保存位置是/storage/dang/blkid,则将新增且未同步的元数据也可以保存在位置/storage/dang/blkid中。
本实施例中,通过设置元数据的更新,使各节点同步的文档数据与上级节点的文档数据能够及时保持一致。
可选的,当前节点根据元数据确定当前节点中是否保存目标文档的所有文档块实体,包括:
当前节点确定触发第一文档获取请求的用户是否具有获取当前层级的文档获取权限,若是,当前节点根据元数据确定当前节点中是否保存目标文档的所有文档块实体。
可选的,各节点可以设置访问权限管理,对访问本节点的用户进行权限设置,在用户需要获取本节点中的文档时,需要判断用户是否具有访问本节点文档的权限。可以根据用户的信息,例如用户ID、电话、职位等进行权限设置,以便各节点可以基于用户的权限来进行各文档的访问。若用户具有访问权限,则用户可以进入需要访问的节点,根据元数据确定当前节点中是否保存目标文档的所有文档块的文档实体;若用户不具有访问权限,则会提示获取失败。
本实施例中,通过对各节点设置用户权限管理,可以确保各节点文档的安全性。
可选的,当前节点获取第一文档获取请求,包括:
当前节点实时监测节点业务负荷,若当前节点业务负荷小于第一预设阈值,且当前节点未下载文档块的时长大于或等于第二预设阈值,则当前节点获取第一文档获取请求。
其中,当前节点获取第一文档的获取请求可以包括用户向当前节点发送获取第一文档的获取请求和当前节点通过实时监测节点业务负荷来主动获取第一文档的请求。
可选的,当前节点实时监测节点业务负荷,其中,该业务负荷可以是当前节点文档仓库中的文档实体所占的内存,具体地,当前节点可以实时的根据本节点的各文档块的标识获取各文档块的文档实体所占的内存,若当前节点获取到的各文档块的文档实体所占的内存小于第一预设阈值时,并且当前节点未下载文档块的时长大于或等于第二预设阈值时,则当前节点主动向当前节点的上级节点发送获取文档块的请求。
示例性的,第一预设阈值例如可以为20MB,第二预设阈值例如可以为24小时。
本实施例中,通过设置实时监测节点业务负荷,可以在网络带宽空闲状态获取文档,从而节省了网络带宽资源。
图6为本申请实施例提供的一种文档分发方法的装置示意图,该装置包括:获取模块501、确定模块502、输出模块503。
获取模块501,用于获取第一文档获取请求,所述第一文档获取请求中包括待获取的目标文档元数据中的各文档块标识,所述当前节点为所述多节点文档系统中的任一节点,所述目标文档拆分为多个文档块,各文档块标识由所述多节点文档系统中的顶级节点在将所述目标文档拆分为所述多个文档块后根据各文档块的信息生成并分发至所述多节点文档系统中的各节点;
确定模块502,用于根据所述文档块标识确定所述当前节点中是否保存所述目标文档的所有文档块实体;
输出模块503,用于当所述当前节点中保存所述目标文档的所有文档块实体时,输出所述目标文档的所有文档块实体;
获取模块501,用于当所述当前节点中未保存所述目标文档的所有文档块实体时,根据所述当前节点所保存的所述目标文档的未同步文档块标识,从所述当前节点的上级节点获取所述目标文档的未同步文档块实体,并根据所述标识输出所述未同步文档块实体。
可选的,所述获取模块501,具体用于:
向所述当前节点的上级节点发送第二文档获取请求,所述第二文档获取请求中包括所述目标文档的未同步文档块的标识;
所述当前节点的上级节点根据所述目标文档的未同步文档块的标识,读取所述目标文档的未同步文档块实体,并向所述当前节点同步所述目标文档的未同步文档块实体;
所述当前节点接收所述当前节点同步的所述目标文档的未同步文档块实体。
可选的,所述输出模块503,具体用于:
若所述当前节点中已保存所述目标文档的至少一个文档块实体,则所述当前节点输出已保存的文档块实体。
可选的,所述获取模块501,具体用于:
获取所述目标文档;
将所述目标文档切分为至少一个文档块;
分别为各文档块生成文档块标识,并根据各文档块的所述文档块标识生成文档块列表;
根据所述文档块列表以及各所述目标文档的属性信息,生成所述目标文档的元数据,所述属性信息包括:文档大小、修改时间、文档类型;
向所述顶级节点的下层节点分发所述目标文档的元数据,并保存所述目标文档。
可选的,所述获取模块501,具体用于:
向所述当前节点的上级节点发送元数据更新请求,所述元数据更新请求用于请求获取所述当前节点的上级节点新增且未同步至所述当前节点的元数据;
所述当前节点的上级节点将新增且未同步至所述当前节点的元数据发送至所述当前节点;
保存所述上级节点新增且未同步至所述当前节点的元数据。
可选的,所述确定模块502,具体用于:
确定触发所述第一文档获取请求的用户是否具有获取当前层级的文档获取权限;
若是,所述当前节点根据所述文档块标识确定所述当前节点中是否保存所述目标文档的所有文档块实体。
可选的,所述获取模块501,具体用于:
实时监测节点业务负荷;
若所述当前节点业务负荷小于第一预设阈值,且,所述当前节点未下载文档块的时长大于或等于第二预设阈值,则所述当前节点获取所述第一文档获取请求。
图7为本申请实施例提供的一种电子设备600的结构框图,如图7所示,该电子设备可包括:处理器601、存储器602。
可选的,还可以包括总线603,其中,所述存储器602用于存储有所述处理器601可执行的机器可读指令(例如,图6中的装置中获取模块501、确定模块502、输出模块503对应的执行指令等),当电子设备600运行时,所述处理器601与所述存储器602存储之间通过总线603通信,所述机器可读指令被所述处理器601执行时执行上述方法实施例中的方法步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述文档分发方法实施例中的方法步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (10)

1.一种文档分发方法,其特征在于,应用于多节点文档系统,所述多节点文档系统中包括多个节点,各节点根据节点之间的归属关系形成多层级结构,各节点分别用于存储对应层级的文档,且用于对下级节点进行同步管理,所述方法包括:
当前节点获取第一文档获取请求,所述第一文档获取请求中包括待获取的目标文档元数据中的各文档块标识,所述当前节点为所述多节点文档系统中的任一节点,所述目标文档拆分为多个文档块,各文档块标识由所述多节点文档系统中的顶级节点在将所述目标文档拆分为多个文档块后根据各文档块的信息生成并分发至所述多节点文档系统中的各节点;
所述当前节点根据所述文档块标识确定所述当前节点中是否保存所述目标文档的所有文档块实体;
若是,则所述当前节点输出所述目标文档的所有文档块实体;
若否,则所述当前节点根据所述当前节点所保存的所述目标文档的未同步文档块标识,从所述当前节点的上级节点获取所述目标文档的未同步文档块实体,并根据所述标识输出所述未同步文档块实体。
2.根据权利要求1所述的一种文档分发方法,其特征在于,所述当前节点根据所述当前节点所保存的所述目标文档的未同步文档块标识,从所述当前节点的上级节点获取所述目标文档的未同步文档块实体,包括:
所述当前节点向所述当前节点的上级节点发送第二文档获取请求,所述第二文档获取请求中包括所述目标文档的未同步文档块的标识;
所述当前节点的上级节点根据所述目标文档的未同步文档块的标识,读取所述目标文档的未同步文档块实体,并向所述当前节点同步所述目标文档的未同步文档块实体;
所述当前节点接收所述当前节点同步的所述目标文档的未同步文档块实体。
3.根据权利要求1所述的一种文档分发方法,其特征在于,所述当前节点根据所述文档块标识确定所述当前节点中是否保存所述目标文档的所有文档块实体之后,还包括:
若所述当前节点中已保存所述目标文档的至少一个文档块实体,则所述当前节点输出已保存的文档块实体。
4.根据权利要求1所述的一种文档分发方法,其特征在于,所述当前节点获取第一文档获取请求之前,还包括:
所述顶级节点获取所述目标文档;
所述顶级节点将所述目标文档切分为至少一个文档块;
所述顶级节点分别为各文档块生成文档块标识,并根据各文档块的所述文档块标识生成文档块列表;
所述顶级节点根据所述文档块列表以及各所述目标文档的属性信息,生成各所述目标文档的元数据,所述属性信息包括:文档大小、修改时间、文档类型;
所述顶级节点向所述顶级节点的下层节点分发所述目标文档的元数据,并保存所述目标文档。
5.根据权利要求1-4任一项所述的一种文档分发方法,其特征在于,所述方法还包括:
所述当前节点向所述当前节点的上级节点发送元数据更新请求,所述元数据更新请求用于请求获取所述当前节点的上级节点新增且未同步至所述当前节点的元数据;
所述当前节点的上级节点将新增且未同步至所述当前节点的元数据发送至所述当前节点;
所述当前节点保存所述上级节点新增且未同步至所述当前节点的元数据。
6.根据权利要求1-4任一项所述的一种文档分发方法,其特征在于,所述当前节点根据所述文档块标识确定所述当前节点中是否保存所述目标文档的所有文档块实体,包括:
所述当前节点确定触发所述第一文档获取请求的用户是否具有获取当前层级的文档获取权限;
若是,所述当前节点根据所述文档块标识确定所述当前节点中是否保存所述目标文档的所有文档块实体。
7.根据权利要求1-4任一项所述的一种文档分发方法,其特征在于,所述当前节点获取第一文档获取请求,包括:
所述当前节点实时监测节点业务负荷;
若所述当前节点业务负荷小于第一预设阈值,且,所述当前节点未下载文档块的时长大于或等于第二预设阈值,则所述当前节点获取所述第一文档获取请求。
8.一种文档分发装置,其特征在于,包括:
获取模块,用于获取第一文档获取请求,所述第一文档获取请求中包括待获取的目标文档的各文档块标识,所述当前节点为所述多节点文档系统中的任一节点,所述目标文档拆分为多个文档块,各文档块标识由所述多节点文档系统中的顶级节点在将所述目标文档拆分为所述多个文档块后根据各文档块的信息生成并分发至所述多节点文档系统中的各节点;
确定模块,用于根据所述文档块标识确定所述当前节点中是否保存所述目标文档的所有文档块实体;
输出模块,用于当所述当前节点中保存所述目标文档的所有文档块实体时,输出所述目标文档的所有文档块实体;
获取模块,用于当所述当前节点中未保存所述目标文档的所有文档块实体时,根据所述当前节点所保存的所述目标文档的未同步文档块标识,从所述当前节点的上级节点获取所述目标文档的未同步文档块实体,并根据所述标识输出所述未同步文档块实体。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1-7任一项所述的文档分发方法。
CN202111651572.2A 2021-12-30 2021-12-30 文档分发方法、装置、电子设备及存储介质 Active CN114363358B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111651572.2A CN114363358B (zh) 2021-12-30 2021-12-30 文档分发方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111651572.2A CN114363358B (zh) 2021-12-30 2021-12-30 文档分发方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN114363358A true CN114363358A (zh) 2022-04-15
CN114363358B CN114363358B (zh) 2024-03-12

Family

ID=81103614

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111651572.2A Active CN114363358B (zh) 2021-12-30 2021-12-30 文档分发方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114363358B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116932656A (zh) * 2023-09-18 2023-10-24 中孚安全技术有限公司 基于区块链的数据血缘存储方法、系统、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105554143A (zh) * 2015-12-25 2016-05-04 浪潮(北京)电子信息产业有限公司 一种高可用缓存服务器及其数据处理方法和系统
CN106550047A (zh) * 2016-11-25 2017-03-29 上海爱数信息技术股份有限公司 基于内容分发机制的文档快速访问系统及方法
CN108566370A (zh) * 2018-02-11 2018-09-21 北京奇艺世纪科技有限公司 一种数据回源的方法以及装置
CN109039794A (zh) * 2017-06-08 2018-12-18 北京金山云网络技术有限公司 一种回源路径确定方法及装置
CN110875947A (zh) * 2018-09-03 2020-03-10 阿里巴巴集团控股有限公司 一种数据处理方法和边缘节点设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105554143A (zh) * 2015-12-25 2016-05-04 浪潮(北京)电子信息产业有限公司 一种高可用缓存服务器及其数据处理方法和系统
CN106550047A (zh) * 2016-11-25 2017-03-29 上海爱数信息技术股份有限公司 基于内容分发机制的文档快速访问系统及方法
CN109039794A (zh) * 2017-06-08 2018-12-18 北京金山云网络技术有限公司 一种回源路径确定方法及装置
CN108566370A (zh) * 2018-02-11 2018-09-21 北京奇艺世纪科技有限公司 一种数据回源的方法以及装置
CN110875947A (zh) * 2018-09-03 2020-03-10 阿里巴巴集团控股有限公司 一种数据处理方法和边缘节点设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116932656A (zh) * 2023-09-18 2023-10-24 中孚安全技术有限公司 基于区块链的数据血缘存储方法、系统、设备及介质
CN116932656B (zh) * 2023-09-18 2024-01-09 中孚安全技术有限公司 基于区块链的数据血缘存储方法、系统、设备及介质

Also Published As

Publication number Publication date
CN114363358B (zh) 2024-03-12

Similar Documents

Publication Publication Date Title
US11461365B2 (en) Atomic moves with lamport clocks in a content management system
US11226944B2 (en) Cache management
US20070150498A1 (en) Social network for distributed content management
AU2014379431A1 (en) Content item synchronization by block
CN106484820B (zh) 一种重命名方法、访问方法及装置
CN102882985A (zh) 基于云存储的文件共享方法
CN103002027A (zh) 基于键值对系统实现树形目录结构的数据存储系统及方法
US10169348B2 (en) Using a file path to determine file locality for applications
CN112181309A (zh) 一种海量对象存储的在线扩容方法
JP7407275B2 (ja) 同期のためのローカルデバイスフォルダのコンテンツ管理システムへのバインディング
CN104519078A (zh) 实现云存储的方法与装置
CN114363358B (zh) 文档分发方法、装置、电子设备及存储介质
CN103744882A (zh) 一种基于键值对的目录片段表示方法及装置
CN116775712A (zh) 联表查询方法、装置、电子设备、分布式系统和存储介质
CN114490514A (zh) 文件系统的元数据管理方法、装置、设备
US11016933B2 (en) Handling weakening of hash functions by using epochs
CN117873967B (zh) 分布式文件系统的数据管理方法、装置、设备及存储介质
CN114327285A (zh) 数据存储方法、装置、设备及存储介质
Cai et al. A Metadata Management Method Base on Directory Path Code.

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