文件处理方法、装置、电子设备及计算机可读存储介质与流程

文档序号:22040812发布日期:2020-08-28 18:05阅读:129来源:国知局
文件处理方法、装置、电子设备及计算机可读存储介质与流程

本申请涉及数据处理技术领域,具体而言,本申请涉及一种文件处理方法、装置、电子设备及计算机可读存储介质。



背景技术:

yum(yellowdogupdater,modified):fedora和redhat以及centos中的shell前端软件包管理器,基于rpm(red-hatpackagemanager,软件包管理器)包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。yum源,指的是在使用yum运行安装文件之前,需指定好yum下载rpm包的位置,此位置称为yum源。

yum源的常见搭建方式:将软件源镜像直接挂载到指定目录,再搭建http或ftp服务使其他机器能获取安装包;利用原生的rsync(remotesync,远程同步)从开放rsync服务的软件源同步镜像资源到本地,再搭建http(hypertexttransferprotocol,超文本传输协议)或ftp(filetransferprotocol,文件传输协议)服务使其他机器能获取安装包;下载软件安装包后放到指定目录下,利用createrepo(用于创建yum源)将该目录创建成为yum能索引的目录,再提供http等服务给其他服务器。

但是这种搭建方式存在以下缺点:

下载安装包,并使用createrepo创建yum索引目录实现yum源的服务方式,灵活但是安全性差,特别是在集群内部时,当被导入有问题的安装包时,容易使整个yum源受到影响,由于操作无法记录导致问题的源头无法追踪。



技术实现要素:

本申请提供了一种文件处理方法、装置、电子设备及计算机可读存储介质,可以解决上述的问题。所述技术方案如下:

第一方面,提供了一种文件处理方法,该方法包括:

当监听到预设组件中存在针对预设的文件库的事件任务时,调用所述预设组件以获取所述事件任务;其中,所述事件任务为预设的文件管理系统响应于针对所述文件库中任一文件的处理请求生成,并将所述事件任务下发至所述预设组件;

执行针对所述文件库的所述事件任务,并在执行完成所述事件任务时生成执行结果;

基于预设规则对所述执行结果进行存储。

优选地,所述方法还包括:

获取所述文件库的预设信息;所述预设信息包括文件库的大小、端口状态、进程状态;

调用预设的警告组件对所述预设信息进行检测,以使得当所述警告组件检测到所述预设信息满足预设的警告条件时,生成警告信息。

优选地,所述事件任务包括用户发起的针对所述文件库中预设的同步配置文件的第一更新任务;

所述针对所述文件库执行所述事件任务,并在执行完成所述事件任务时生成执行结果,包括:

从所述文件库中获取所述同步配置文件,并基于所述第一更新任务对所述同步配置文件进行更新;

若更新成功,则基于所述用户的相关信息生成更新成功的执行结果;若更新失败,则基于所述用户的相关信息生成更新失败的执行结果;所述用户的相关信息包括用户身份标识、ip地址、位置信息中的至少一项。

优选地,所述事件任务包括用户发起的针对所述文件库中任一目标文件的第二更新任务;

所述针对所述文件库执行所述事件任务,并在执行完成所述事件任务时生成执行结果,包括:

从所述文件库中获取所述目标文件,并基于所述第二更新任务对所述目标文件进行更新;

若更新成功,则基于所述用户的相关信息生成更新成功的执行结果;若更新失败,则基于所述用户的相关信息生成更新失败的执行结果。

优选地,所述事件任务包括将新的文件同步至所述文件库的同步任务;

所述针对所述文件库执行所述事件任务,并在执行完成所述事件任务时生成执行结果,包括:

基于所述同步任务,调用预设的同步组件从预设的远程文件库获取所述新的文件,并将所述新的文件存储至所述文件库;

若存储成功,则生成同步成功的执行结果;若存储失败,则生成同步失败的执行结果。

优选地,所述同步任务通过所述文件管理系统基于用户的同步请求生成,或,基于预设的同步配置文件生成。

优选地,还包括:

当调用预设的用于下载文件的第一文件组件接收到用户通过客户端发起的针对所述文件库中任一文件的下载请求时,调用所述第一文件组件将所述任一文件发送至所述客户端。

优选地,还包括:

当调用预设的用于上传文件的第二文件组件接收到用户发起的针对待上传文件的上传请求时,调用所述第二文件组件接收所述待上传文件,并将所述待上传文件存储至所述文件库。

优选地,所述采用预设规则对所述执行结果进行存储,包括:

通过预设的文件管理系统将所述执行结果存储至预设的信息数据库中;所述信息数据库包括至少一条执行结果。

第二方面,提供了一种文件处理装置,该装置包括:

第一处理模块,用于监听预设组件中存在针对预设的文件库的事件任务;其中,所述事件任务为预设的文件管理系统响应于针对所述文件库中任一文件的处理请求生成,并将所述事件任务下发至所述预设组件;

第二处理模块,用于调用所述预设组件以获取所述事件任务;

第三处理模块,用于执行针对所述文件库的所述事件任务,并在执行完成所述事件任务时生成执行结果;

第四处理模块,用于基于预设规则对所述执行结果进行存储。

优选地,所述方法还包括:

第五处理模块,用于获取所述文件库的预设信息;所述预设信息包括文件库的大小、端口状态、进程状态;

第六处理模块,用于调用预设的警告组件对所述预设信息进行检测,以使得当所述警告组件检测到所述预设信息满足预设的警告条件时,生成警告信息。

优选地,所述事件任务包括用户发起的针对所述文件库中预设的同步配置文件的第一更新任务;

所述第三处理模块包括:

第一获取子模块,用于从所述文件库中获取所述同步配置文件;

第一更新子模块,用于基于所述第一更新任务对所述同步配置文件进行更新;

第一生成子模块,用于基于所述用户的相关信息生成更新成功的执行结果,或,基于所述用户的相关信息生成更新失败的执行结果。

优选地,所述事件任务包括用户发起的针对所述文件库中任一目标文件的第二更新任务;

所述第三处理模块包括:

第二获取子模块,用于从所述文件库中获取所述目标文件;

第二更新子模块,用于基于所述第二更新任务对所述目标文件进行更新;

第二生成子模块,用于基于所述用户的相关信息生成更新成功的执行结果,或,基于所述用户的相关信息生成更新失败的执行结果;所述用户的相关信息包括用户身份标识、ip地址、位置信息中的至少一项。

优选地,所述事件任务包括将新的文件同步至所述文件库的同步任务;

所述第三处理模块包括:

第三获取子模块,用于基于所述同步任务,调用预设的同步组件从预设的远程文件库获取所述新的文件;

存储子模块,用于将所述新的文件存储至所述文件库;

第三生成子模块,用于生成同步成功的执行结果,或,生成同步失败的执行结果。

优选地,所述同步任务通过所述文件管理系统基于用户的同步请求生成,或,基于预设的同步配置文件生成。

优选地,还包括:

第七处理模块,用于当调用预设的用于下载文件的第一文件组件接收到用户通过客户端发起的针对所述文件库中任一文件的下载请求时,调用所述第一文件组件将所述任一文件发送至所述客户端。

优选地,还包括:

第八处理模块,用于当调用预设的用于上传文件的第二文件组件接收到用户发起的针对待上传文件的上传请求时,调用所述第二文件组件接收所述待上传文件,并将所述待上传文件存储至所述文件库。

优选地,所述第四处理模块具体用于:

通过预设的文件管理系统将所述执行结果存储至预设的信息数据库中;所述信息数据库包括至少一条执行结果。

第三方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;

存储器用于存放至少一可执行指令,可执行指令使处理器执行如本申请的第一方面所示的文件处理方法对应的操作。

第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请第一方面所示的文件处理方法。

本申请提供的技术方案带来的有益效果是:

当监听到预设组件中存在针对预设的文件库的事件任务时,调用所述预设组件以获取所述事件任务,其中,事件任务为预设的文件管理系统响应于针对文件库中任一文件的处理请求生成,并将事件任务下发至预设组件;然后执行针对所述文件库的所述事件任务,并在执行完成所述事件任务时生成执行结果,并基于预设规则对所述执行结果进行存储。这样,针对文件库执行的所有事件任务都可以通过执行结果记录下来,用户可以通过查询执行结果确定出针对文件库执行完成的历史事件任务,以及发起事件任务的用户的相关信息,实现了对事件任务源头的追踪,特别是在文件库出现问题的时候,从而保证了文件库的安全性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。

图1为本申请的整体框架示意图;

图2为本申请一个实施例提供的一种文件处理方法的流程示意图;

图3为本申请另一实施例提供的一种文件处理方法的流程示意图;

图4为本申请中zookeeper的数据结构示意图;

图5-1为本申请又一实施例提供的一种文件处理装置的结构示意图;

图5-2为本申请又一实施例提供的一种文件处理装置的结构示意图;

图5-3为本申请又一实施例提供的一种文件处理装置的结构示意图;

图6为本申请又一实施例提供的一种文件处理的电子设备的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

首先对本申请涉及的几个名词进行介绍和解释:

zookeeper:zookeeper是一个分布式的、开放源码的分布式应用程序协调服务,是google的chubby一个开源的实现,是hadoop和hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

fileserver:文件服务器,是指在计算机网络环境中,所有用户都可访问的文件存储设备。文件服务器允许用户在网络上共享信息,而不用通过软磁盘或一些其它外部存储设备来物理地移动文件。任何计算机都能被设置为主机,并作为文件服务器运行。

如图1所示,为本申请的整体框架示意图。其中,文件库可以是yum源,用于存储应用程序的安装文件和同步配置文件。所谓yum源,指的是在使用yum运行安装文件之前,需指定好yum下载rpm包的位置,此位置称为yum源。换句话说,yum源指的就是安装文件的来源。使用yum安装应用程序时至少需要一个yum源,yum源既可以是网络yum源,也可以是本地yum源。

进一步,文件库可以是一个文件库,也可以是包含多个子文件库的集合,在实际应用中可以根据实际需求进行设置,本发明实施例对此不作限制。

代理组件:监听zookeeper;从zookeeper获取事件任务并执行事件任务;将执行结果上报至文件管理系统;监控文件库,并将监控数据发送给警告组件。其中,代理组件可以为agent,警告组件可以为argus。

同步组件:基于同步任务,将远程文件库中新的文件同步到文件库中,并将同步任务的执行结果上报至文件管理系统。其中,远程文件库可以是除文件库之外的任意文件库。

第一文件组件:负责为前端提供文件下载服务,比如为用户提供文件下载服务。其中,第一文件组件可以为nginx。

第二文件组件:负责为前端提供文件上传服务,比如用户通过客户端发起的文件上传。其中,第二文件组件可以为fileserveragent。

文件管理系统可以为yum-oss(operationsupportsystems,操作支持系统),yum-oss负责:

1)接收前端的请求,比如用户发起的请求,或者信息数据库发起的请求等;基于请求生成事件任务;将事件任务下发至zookeeper;将信息数据记录到信息数据库;

2)接受代理组件回传的执行结果;基于执行结果更新信息数据库。

信息数据库:可以用于存储用于同步文件的同步配置信息,同步配置信息包括但不限于同步方式、上级源(获取新的文件的目的远程文件库)、同步周期等。还可以用于存储执行事件任务完成后的执行结果。

需要说明的是,上述文件库、信息数据库库、文件管理系统以及各个组件可以部署在一台设备中,也可以部署在不同的设备中,比如,将文件库、代理组件、同步组件、第一文件组件以及第二文件组件部署在当前设备中,其它部分部署在另一台设备中。在实际应用中可以根据实际需求进行设置,本申请对此不作限制。

为方便描述,本申请以将文件库、代理组件、同步组件、第一文件组件以及第二文件组件部署在一台设备中,其它部分部署在另一台设备中为例进行详细说明。

本申请提供的文件处理方法、装置、电子设备和计算机可读存储介质,旨在解决现有技术的如上技术问题。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

在一个实施例中提供了一种文件处理方法,如图2所示,该方法包括:

步骤s201,当监听到预设组件中存在针对预设的文件库的事件任务时,调用预设组件以获取事件任务;其中,事件任务为预设的文件管理系统响应于针对文件库中任一文件的处理请求生成,并将事件任务下发至预设组件;

具体而言,预设组件可以是zookeeper,zookeeper用于为分布式应用提供一致性服务;监听预设组件的可以是代理组件。当调用代理组件监听到zookeeper中存储针对文件库的事件任务时,代理组件可以调用zookeeper来获取该事件任务。其中,事件任务可以包括但不限于:用户发起的针对文件库中预设的同步配置文件的第一更新任务、用户发起的针对文件库中任一目标文件的第二更新任务、将新的文件同步至文件库的同步任务。

在实际应用中,也可能会出现同时监听到分别针对多个不同的目标文件的事件任务的情况,那么代理组件同时获取多个事件任务即可,在实际应用中可以根据实际需求进行设置,本发明实施例对此不作限制。

进一步,事件任务为预设的文件管理系统yum-oss响应于针对文件库中任一文件的处理请求生成,该处理请求可以由用户发起,也可以由信息数据库发起,文件管理系统基于处理请求生成事件任务后,即可将该事件任务下发至预设组件zookeeper。

步骤s202,执行针对文件库的事件任务,并在执行完成事件任务时生成执行结果;

调用代理组件获取到事件任务后,即可执行针对文件库的该事件任务,当事件任务执行完成后,生成执行结果。

步骤s203,基于预设规则对执行结果进行存储。

在生成了执行结果之后,可以将执行结果进行存储,以便于后续查询。

在本发明实施例中,当监听到预设组件中存在针对预设的文件库的事件任务时,调用预设组件以获取事件任务,其中,事件任务为预设的文件管理系统响应于针对文件库中任一文件的处理请求生成,并将事件任务下发至预设组件;然后执行针对文件库的事件任务,并在执行完成事件任务时生成执行结果,并基于预设规则对执行结果进行存储。这样,针对文件库执行的所有事件任务都可以通过执行结果记录下来,用户可以通过查询执行结果确定出针对文件库执行完成的历史事件任务,以及发起事件任务的用户的相关信息,实现了对事件任务源头的追踪,特别是在文件库出现问题的时候,从而保证了文件库的安全性。

在另一个实施例中提供了一种文件处理方法,如图3所示,该方法包括:

步骤s301,当监听到预设组件中存在针对预设的文件库的事件任务时,调用预设组件以获取事件任务;其中,事件任务为预设的文件管理系统响应于针对文件库中任一文件的处理请求生成,并将事件任务下发至预设组件;

具体而言,预设组件可以是zookeeper,监听预设组件的可以是代理组件。当调用代理组件监听到zookeeper中存储针对文件库的事件任务时,代理组件可以调用zookeeper来获取该事件任务。其中,事件任务可以包括但不限于:用户发起的针对文件库中预设的同步配置文件的第一更新任务、用户发起的针对文件库中任一目标文件的第二更新任务、将新的文件同步至文件库的同步任务。

在实际应用中,也可能会出现同时监听到分别针对多个不同的目标文件的事件任务的情况,那么代理组件同时获取多个事件任务即可,在实际应用中可以根据实际需求进行设置,本发明实施例对此不作限制。

进一步,事件任务为预设的文件管理系统,也就是yum-oss响应于针对文件库中任一文件的处理请求生成,该处理请求可以由用户发起,也可以由信息数据库发起,文件管理系统基于处理请求生成事件任务后,即可将该事件任务下发至预设组件zookeeper。

步骤s302,执行针对文件库的事件任务,并在执行完成事件任务时生成执行结果;

调用代理组件获取到事件任务后,即可执行针对文件库的该事件任务,当事件任务执行完成后,生成执行结果。

在本发明一种优选实施例中,执行针对文件库的事件任务,并在执行完成事件任务时生成执行结果,包括:

从文件库中获取同步配置文件,并基于第一更新任务对同步配置文件进行更新;

若更新成功,则基于用户的相关信息生成更新成功的执行结果;若更新失败,则基于用户的相关信息生成更新失败的执行结果;用户的相关信息包括用户身份标识、ip地址、位置信息中的至少一项。

具体而言,用户可以通过客户端发起针对同步配置文件的更新请求,客户端将更新请求发送至文件管理系统,文件管理系统在接收到更新请求后向zookeeper下发更新任务,更新任务中可以包括对同步配置文件的更新指令。

代理组件获取到更新任务后,可以先从文件库中获取同步配置文件,然后依据更新任务中的更新指令对同步配置文件进行更新,比如,更新同步方式、更新同步的上级源、更新同步周期等等。若更新成功,则基于用户的相关信息生成更新成功的执行结果;若更新失败,则基于用户的相关信息生成更新失败的执行结果。其中,用户的相关信息包括但不限于:用户身份标识、ip地址、位置信息等等;执行结果包括但不限于:用户的相关信息、更新日期、更新时间、更新内容等等、更新的结果、文件库标识、目标文件标识等等。

比如,更新成功的执行结果可以为{张三;2020年6月10日;18:06;文件库002;同步周期修改为3天;成功},更新失败的执行结果可以为{张三;2020年6月10日;18:06;文件库002;同步周期修改为3天;失败}。

在本发明一种优选实施例中,执行针对文件库的事件任务,并在执行完成事件任务时生成执行结果,包括:

从文件库中获取目标文件,并基于第二更新任务对目标文件进行更新;

若更新成功,则基于用户的相关信息生成更新成功的执行结果;若更新失败,则基于用户的相关信息生成更新失败的执行结果。

具体而言,用户可以通过客户端发起针对文件库中任一目标文件的更新请求,客户端将更新请求发送至文件管理系统,文件管理系统在接收到更新请求后向zookeeper下发更新任务,更新任务中可以包括对目标文件的更新指令。

代理组件获取到更新任务后,可以先从文件库中获取该目标文件,然后依据更新任务中的更新指令对目标文件进行更新,比如,修改目标文件、移动目标文件、删除目标文件等等。若更新成功,则基于用户的相关信息生成更新成功的执行结果;若更新失败,则基于用户的相关信息生成更新失败的执行结果。其中,用户的相关信息包括但不限于:用户身份标识、ip地址、位置信息等等;执行结果包括但不限于:用户的相关信息、更新日期、更新时间、更新内容等等、更新的结果、文件库标识、目标文件标识等等。

比如,更新成功的执行结果可以为{张三;2020年6月10日;18:06;文件库002;删除文件0035;成功},更新失败的执行结果可以为{张三;2020年6月10日;18:06;文件库002;删除文件0035;失败}。

进一步,在实际应用中,文件库中除了可以包括文件之外,还可以包括文件夹,上述针对文件的更新任务同样适用于文件夹,在此就不赘述了。

在本发明一种优选实施例中,执行针对文件库的事件任务,并在执行完成事件任务时生成执行结果,包括:

基于同步任务,调用预设的同步组件从预设的远程文件库获取新的文件,并将新的文件存储至文件库;

若存储成功,则生成同步成功的执行结果;若存储失败,则生成同步失败的执行结果。

具体而言,由于同步配置文件中记录了同步周期,所以在到达同步周期时,代理组件可以启动同步任务,然后调用同步组件依据同步配置文件从远程文件库中获取新的文件,并将获取到的新的文件存储至文件库中。

若存储成功,则生成同步成功的执行结果;若存储失败,则生成同步失败的执行结果。其中,执行结果包括但不限于:同步日期、同步时间、同步类型、同步方式、同步的文件库标识、同步的文件标识、同步的结果等。

比如,同步成功的执行结果可以为{2020年6月10日;18:06;rsync同步;rsync;文件库002;同步文件1035;成功};同步失败的执行结果可以为{2020年6月10日;18:06;自定义同步;自定义;文件库002;同步文件1035;失败}。

进一步,本发明实施例中的同步类型可以包括rsync同步、自定义同步以及人工同步。其中,rsync同步采用的同步配置文件可以为包括至少一条rsync指令的指令列表,rsync同步时执行指令列表中的各条rsync指令即可;自定义同步采用的同步配置文件可以为包括至少一条脚本指令的脚本文件,自定义同步时执行脚本文件中的各条脚本即可;人工同步为用户发起的同步任务,同步任务包括具体的同步由于自动同步是具有同步周期的,所以,在到达下一个同步周期之前,用户可以自行发起同步任务。

具体地,用户可以通过客户端发起同步请求,客户端将同步请求发送至文件管理系统,文件管理系统在接收到同步请求后向zookeeper下发同步任务,同步任务中可以包括启动同步的启动指令。

代理组件获取到同步任务后,依据同步任务中的启动指令启动同步任务,然后调用同步组件从文件库中获取预设的同步配置文件,再依据同步配置文件从远程文件库获取新的文件,并将新的文件存储至文件库中。

由于是人工同步,所以,同步完成之后,可以基于用户的相关信息生成执行结果,比如,同步成功的执行结果可以为{张三;2020年6月10日;18:06;人工同步;rsync;文件库002;同步文件1035;成功}。

步骤s303,基于预设规则对执行结果进行存储;

在生成了执行结果之后,可以将执行结果进行存储,以便于后续查询。

在本发明一种优选实施例中,采用预设规则对执行结果进行存储,包括:

通过预设的文件管理系统将执行结果存储至预设的信息数据库中。

具体而言,当代理组件执行完成事件任务生成的执行结果,以及同步组件执行完成事件任务后生成的执行结果,都可以回传至文件管理系统,然后由文件管理系统将执行任务存储至信息数据库中。这样,每次执行完成事件任务后,都可以将执行结果存储至信息数据库中进行记录,用户或管理人员通过查询信息数据库中的执行结果即可得知已执行完成的历史事件任务以及执行结果。

进一步,由于信息数据库中也存储了同步配置文件(与文件库中的同步配置文件相同),所以,若事件任务为修改同步配置文件,那么文件管理系统在接收到执行结果后,除了将执行结果存储至信息数据库中之外,还可以修改信息数据库中的同步配置文件,使得二者的同步配置文件保持同步。

步骤s304,获取文件库的预设信息;预设信息包括文件库的大小、端口状态、进程状态;

具体而言,代理组件除了可以执行事件任务之外,还可以对文件库进行监控,获取文件库的预设信息,预设信息包括但不限于:文件库的大小、端口状态、进程状态等等。

进一步,调用代理组件获取文件库的预设信息可以是每隔预设的时间间隔来获取,也可以是实时获取,或者还可以是其它的方式进行获取,在实际应用中可以根据实际需求进行设置,本发明实施例对此不作限制。

步骤s305,调用预设的警告组件对预设信息进行检测,以使得当警告组件检测到预设信息满足预设的警告条件时,生成警告信息;

具体而言,调用代理组件获取到预设信息后,可以调用警告组件,并将预设信息上报给警告组件,警告组件对上报的警告信息进行检测,若预设信息满足预设的警告条件,则生成警告信息,然后通过警告组件的输出接口将警告信息进行输出;若预设信息不满足预设的警告条件,则结束本次检测。

进一步,警告组件中可以存储预先配置好的至少一个警告条件,当警告组件接收到代理组件上报的预设信息后,就可以基于各个警告条件对预设信息进行检测了。

步骤s306,当调用预设的用于下载文件的第一文件组件接收到用户通过客户端发起的针对文件库中任一文件的下载请求时,调用第一文件组件将任一文件发送至客户端;

具体而言,由于第一文件组件可以为前端提供文件下载服务,所以,用户可以通过客户端向第一文件组件发起针对文件库中任一文件的下载请求,当前设备中调用第一文件组件接收到下载请求后,调用第一文件组件将该任一文件发送至客户端,实现下载功能。

需要说明的是,在实际应用中,用户可以通过客户端同时发起针对文件库中多个文件的下载请求,此时当前设备可以调用第一文件组件依次将多个文件分别发送至客户端,也可以将多个文件同时发送至客户端,在实际应用中可以根据实际需求进行设置,本发明实施例对此不作限制。

进一步,在实际应用中,当用户下载完成后,第一文件组件还可以将用户的相关信息、用户下载的文件的文件标识、下载日期、下载时间等信息上报给文件管理系统,文件管理系统将这些信息记录到信息数据库中,以便于后续查询。

另外,第一文件组件还可以提供针对文件库的浏览服务。比如,用户通过第一文件组件可以浏览文件库中的各个文件、各个文件的相关信息等等。

步骤s307,当调用预设的用于上传文件的第二文件组件接收到用户发起的针对待上传文件的上传请求时,调用第二文件组件接收待上传文件,并将待上传文件存储至文件库。

具体而言,由于第二文件组件可以为前端提供文件上传服务,所以,用户可以通过客户端将待上传文件先上传至fileserver,fileserver向第二文件组件发起针对待上传文件的上传请求,同时向文件管理系统发送上传指令。当前设备调用第二文件组件接收该上传请求,响应于该上传请求之后即可从fileserver接收待上传文件。fileserver开始上传文件时,文件管理系统可以监控fileserver是否上传完成,可以实时监控,也可以每隔预设的时间间隔监控,当上传完成后,文件管理系统可以将用户的相关信息、用户上传的文件的文件标识、上传日期、上传时间等信息记录到信息数据库中,以便于后续查询。

进一步,文件管理系统和代理组件通过zookeeper进行数据交互,zookeeper的数据结构可以如图4所示。其中,数据按照发下协议传递:

1、第一级节点

yum-oss节点为整个文件库的存储根节点。

2、第二级节点

第二级节点的每一个字段对应一个第三级子节点,表示该第三级子节点是否有新的更新。

当yum-oss更新zookeeper的第三级子节点数据时,会将该子节点对应的第二级节点的标志字段置为true(比如更新了第三级节点—配置相关的配置节点,会将其上的二级节点的配置节点设为true);当代理组件agent收到更新后的第三级子节点的数据,并按照该数据完成了任务后,会将该子节点对应的第二级节点的标志字段置为false。

yum-oss的第二级节点(即每个文件库对应的根结点)作为状态位:

配置节点:表示第三级的配置节点是否有更新;

指令节点:表示第三级的指令节点是否有更新;

文件上传节点:表示第三级的上传文件节点是否有更新。

3、第三级节点

1)配置节点

(1)远程同步rsync包括:yum源名称、yum源的同步周期、同步类型、yum源同步的上级源、执行同步的脚本;

(2)自定义脚本包括:yum源名称、yum源的同步周期、同步类型、执行同步的脚本;

(3)人工上传包括:执行同步的脚本。

2)指令节点

格式:[指令][参数][同步历史表中当前任务的记录id];比如:

(1)新建文件夹:新建文件夹centos/7folder1;

(2)文件重命名:将centos/7/file_name重命名为centos/7/new_file_nam;

(3)删除文件:删除centos/7/file文件;

(4)启用同步:启动centos的同步任务。

3)文件上传节点

格式:uploadyumfile【文件名】【目标路径】【文件上传任务id】【同步历史表中当前任务的记录id】

在本发明实施例中,当监听到预设组件中存在针对预设的文件库的事件任务时,调用预设组件以获取事件任务,其中,事件任务为预设的文件管理系统响应于针对文件库中任一文件的处理请求生成,并将事件任务下发至预设组件;然后执行针对文件库的事件任务,并在执行完成事件任务时生成执行结果,并基于预设规则对执行结果进行存储。这样,针对文件库执行的所有事件任务都可以通过执行结果记录下来,用户可以通过查询执行结果确定出针对文件库执行完成的历史事件任务,以及发起事件任务的用户的相关信息,实现了对事件任务源头的追踪,特别是在文件库出现问题的时候,从而保证了文件库的安全性。

进一步,在现有技术中,直接挂载镜像的方式导致无法实现yum源中软件源镜像的动态更新,而且,原生的远程同步方式虽然可以通过将远程同步命令写到定时任务中实现定时更新,但是配置更改麻烦且易出错,难以监控同步情况。本发明实施例在文件库中预设了同步配置文件,通过读取同步配置文件即可实现对自动文件库进行动态更新,而且,用户还可以在任何时间通过发起同步任务,从而基于同步配置文件对文件库进行更新,在实现了文件库更新的动态更新的同时,还保证了更新的个性化。

更进一步,在当前设备中部署代理组件agent、第一文件组件nginx、第二文件组件fileserveragent来执行事件任务、文件上传、文件下载,不仅可以处理用户的所有请求,而且代理组件agent还可以监控文件库,结合警告组件argus实现了文件库的异常警告。同时,采用高可用的zookeeper与代理组件agent进行数据交互保证了数据交互的可靠性。

图5-1为本申请又一实施例提供的一种文件处理装置的结构示意图,如图5-1所示,本实施例的装置可以包括:

第一处理模块501,用于监听预设组件中存在针对预设的文件库的事件任务;其中,事件任务为预设的文件管理系统响应于针对文件库中任一文件的处理请求生成,并将事件任务下发至预设组件;

第二处理模块502,用于调用预设组件以获取事件任务;

第三处理模块503,用于执行针对文件库的事件任务,并在执行完成事件任务时生成执行结果;

第四处理模块504,用于基于预设规则对执行结果进行存储。

在本发明一种优选实施例中,如图5-2所示,装置还包括:

第五处理模块505,用于获取文件库的预设信息;预设信息包括文件库的大小、端口状态、进程状态;

第六处理模块506,用于调用预设的警告组件对预设信息进行检测,以使得当警告组件检测到预设信息满足预设的警告条件时,生成警告信息。

在本发明一种优选实施例中,事件任务包括用户发起的针对文件库中预设的同步配置文件的第一更新任务;

第三处理模块包括:

第一获取子模块,用于从文件库中获取同步配置文件;

第一更新子模块,用于基于第一更新任务对同步配置文件进行更新;

第一生成子模块,用于基于用户的相关信息生成更新成功的执行结果,或,基于用户的相关信息生成更新失败的执行结果;用户的相关信息包括用户身份标识、ip地址、位置信息中的至少一项。

在本发明一种优选实施例中,事件任务包括用户发起的针对文件库中任一目标文件的第二更新任务;

第三处理模块包括:

第二获取子模块,用于从文件库中获取目标文件;

第二更新子模块,用于基于第二更新任务对目标文件进行更新;

第二生成子模块,用于基于用户的相关信息生成更新成功的执行结果,或,基于用户的相关信息生成更新失败的执行结果。

在本发明一种优选实施例中,事件任务包括将新的文件同步至文件库的同步任务;

第三处理模块包括:

第三获取子模块,用于基于同步任务,调用预设的同步组件从预设的远程文件库获取新的文件;

存储子模块,用于将新的文件存储至文件库;

第三生成子模块,用于生成同步成功的执行结果,或,生成同步失败的执行结果。

在本发明一种优选实施例中,同步任务通过文件管理系统基于用户的同步请求生成,或,基于预设的同步配置文件生成。

在本发明一种优选实施例中,如图5-3所示,还包括:

第七处理模块507,用于当调用预设的用于下载文件的第一文件组件接收到用户通过客户端发起的针对文件库中任一文件的下载请求时,调用第一文件组件将任一文件发送至客户端。

第八处理模块508,用于当调用预设的用于上传文件的第二文件组件接收到用户发起的针对待上传文件的上传请求时,调用第二文件组件接收待上传文件,并将待上传文件存储至文件库。

在本发明一种优选实施例中,第四处理模块具体用于:

通过预设的文件管理系统将执行结果存储至预设的信息数据库中;信息数据库包括至少一条执行结果。

本实施例的文件处理装置可执行本申请第一个实施例、第二个实施例所示的文件处理方法,其实现原理相类似,此处不再赘述。

在本发明实施例中,当监听到预设组件中存在针对预设的文件库的事件任务时,调用预设组件以获取事件任务,其中,事件任务为预设的文件管理系统响应于针对文件库中任一文件的处理请求生成,并将事件任务下发至预设组件;然后执行针对文件库的事件任务,并在执行完成事件任务时生成执行结果,并基于预设规则对执行结果进行存储。这样,针对文件库执行的所有事件任务都可以通过执行结果记录下来,用户可以通过查询执行结果确定出针对文件库执行完成的历史事件任务,以及发起事件任务的用户的相关信息,实现了对事件任务源头的追踪,特别是在文件库出现问题的时候,从而保证了文件库的安全性。

进一步,在现有技术中,直接挂载镜像的方式导致无法实现yum源中软件源镜像的动态更新,而且,原生的rsync方式虽然可以通过将rsync命令写到定时任务中实现定时更新,但是配置更改麻烦且易出错,难以监控同步情况。本发明实施例在文件库中预设了同步配置文件,通过读取同步配置文件即可实现对自动文件库进行动态更新,而且,用户还可以在任何时间通过发起同步任务,从而基于同步配置文件对文件库进行更新,在实现了文件库更新的动态更新的同时,还保证了更新的个性化。

更进一步,在当前设备中部署agent、fileserveragent、nginx来执行事件任务、文件上传、文件下载,不仅可以处理用户的所有请求,而且agent还可以监控文件库,结合argus实现了文件库的异常警告。同时,采用高可用的zookeeper与agent进行数据交互保证了数据交互的可靠性。

本申请的又一实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:当监听到预设组件中存在针对预设的文件库的事件任务时,调用预设组件以获取事件任务,其中,事件任务为预设的文件管理系统响应于针对文件库中任一文件的处理请求生成,并将事件任务下发至预设组件;然后执行针对文件库的事件任务,并在执行完成事件任务时生成执行结果,并基于预设规则对执行结果进行存储。这样,针对文件库执行的所有事件任务都可以通过执行结果记录下来,用户可以通过查询执行结果确定出针对文件库执行完成的历史事件任务,以及发起事件任务的用户的相关信息,实现了对事件任务源头的追踪,特别是在文件库出现问题的时候,从而保证了文件库的安全性。

在一个可选实施例中提供了一种电子设备,如图6所示,图6所示的电子设备6000包括:处理器6001和存储器6003。其中,处理器6001和存储器6003相连,如通过总线6002相连。可选地,电子设备6000还可以包括收发器6004。需要说明的是,实际应用中收发器6004不限于一个,该电子设备6000的结构并不构成对本申请实施例的限定。

处理器6001可以是cpu,通用处理器,dsp,asic,fpga或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器6001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。

总线6002可包括一通路,在上述组件之间传送信息。总线6002可以是pci总线或eisa总线等。总线6002可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器6003可以是rom或可存储静态信息和指令的其他类型的静态存储设备,ram或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom、cd-rom或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。

存储器6003用于存储执行本申请方案的应用程序代码,并由处理器6001来控制执行。处理器6001用于执行存储器6003中存储的应用程序代码,以实现前述任一方法实施例所示的内容。

其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。

本申请的又一实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,当监听到预设组件中存在针对预设的文件库的事件任务时,调用预设组件以获取事件任务,其中,事件任务为预设的文件管理系统响应于针对文件库中任一文件的处理请求生成,并将事件任务下发至预设组件;然后执行针对文件库的事件任务,并在执行完成事件任务时生成执行结果,并基于预设规则对执行结果进行存储。这样,针对文件库执行的所有事件任务都可以通过执行结果记录下来,用户可以通过查询执行结果确定出针对文件库执行完成的历史事件任务,以及发起事件任务的用户的相关信息,实现了对事件任务源头的追踪,特别是在文件库出现问题的时候,从而保证了文件库的安全性。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1