基于ApacheFtpServer实现定制化FTP服务器的方法及装置与流程

文档序号:11930658阅读:466来源:国知局
基于Apache FtpServer实现定制化FTP服务器的方法及装置与流程
本发明涉及计算机
技术领域
,特别地涉及一种基于ApacheFtpServer实现定制化FTP服务器的方法及装置。
背景技术
:FTPServer文件传输服务器是一种专供其他电脑检索文件和存储的特殊电脑。在TCP/IP网络中,客户机可通过文件传输协议FTP(FileTransportProtocol)从文件服务器下载文件或向文件服务器上传文件,以实现资源共享,用户可以通过该协议把自己的电脑与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTPServer已成为互联网上的一种重要资源。传统的FTP服务器实现原理示意图如图1所示,主要实现步骤如下:1.在服务器上安装FTP服务运行环境;2.在FTP服务器上创建用户,为用户分配权限并设置根目录;3.分配了权限的用户根据服务器上的配置进行鉴权,鉴权成功后执行文件上传或下载操作。如图2所示,是传统FTP服务器的多用户操作情况示意图。FTP服务器的网络带宽有限,例如是固定的10M,在多用户操作情况下,无论上传和下载均需要占用一定的带宽,如果不设置用户上传或下载速率则有可能导致带宽阻塞,引起FTP服务器服务异常或者拖慢FTP服务器的服务效率,使服务质量下降。然而,这仅仅是最常见的FTP服务器的操作情况,传统的FTP服务器由于服务模式固定单一,因此具有以下的缺点:1.传统的FTP服务器可配置能力有限,如不能控制用户的上传或下载速率,在设定时间内冻结用户等;2.传统FTP服务器不具备定制化开发能力,无法完成定制化需求,比如广播下发文件、文件搬迁、文件归档、以及跟踪用户的行为等。综上可知,传统的FTP服务器不能满足用户精准化控制以及定制化开发的需求。因此,需要基于可扩展的FTP服务器实现可定制化的FTP服务器来丰富功能。经研究发现,ApacheFtpServer是一种可扩展的FTP服务器。ApacheFtpServer的基础模块与传统的FTP服务器功能相似,此外ApacheFtpServer还具有可控制用户的上传和下载速率的功能。而且ApacheFtpServer是纯Java的开源FTP服务器软件,它采用MINA网络框架开发,具有非常好的性能,可以通过扩展ApacheFtpServer的源码来实现定制化的功能。因此,本发明即是针对现有技术的缺陷与不足,提供了一种基于ApacheFtpServer实现定制化FTP服务器的方法及装置。由于ApacheFtpServer具有很好的扩展性,因此可以通过扩展配置信息来实现在设定时间内冻结用户,以及进行功能扩展以实现一些定制化的需求,例如:广播下发文件、文件搬迁、文件归档、以及跟踪用户的行为等。技术实现要素:有鉴于此,本发明提供一种扩展FTP服务器配置能力的解决方法和可跟踪FTP文件交互过程的方法。具体地,本发明提供一种基于ApacheFtpServer实现定制化FTP服务器的方法及装置,能够通过配置来精确化管理用户,例如,在设定时间内冻结用户、跟踪用户的行为、做到用户权限隔离,并将历史上传文件进行归档以便实现故障恢复,同时还可以实现广播下发文件,满足多用户下载的需求。为实现上述目的,根据本发明的一个方面,提供了一种基于ApacheFtpServer实现定制化FTP服务器的方法。一种基于ApacheFtpServer实现定制化FTP服务器的方法,包括:完成配置信息并保存到数据库中;当监听到用户事件发生后,根据从所述数据库中读取的配置信息执行相应的操作;将所述用户事件的信息以及所述操作的过程和结果保存到日志表中,以便进一步分析。可选地,所述配置信息包括:用户基本信息、文件搬迁信息、文件归档信息、以及文件清理信息。可选地,所述用户基本信息包括用户冻结信息,所述文件搬迁信息包括文件搬迁目录,所述文件归档信息包括文件归档目录,所述文件清理信息包括定时任务名称、定时表达式和待清理目录。可选地,还包括:设置定时任务,根据所述文件清理信息来定期清理过期的归档文件,并将执行过程记录在所述日志表中。可选地,还包括:通过分析所述日志表,根据预先设定的判断规则来判断用户的合法性,并将非法用户设置为冻结状态。可选地,当监听到用户事件发生后,根据从所述数据库中读取的配置信息执行相应的操作包括:当监听到用户登录的事件后,从所述数据库中读取所述用户基本信息,并对用户进行鉴权;当监听到用户开始上传或开始下载的事件后,从所述数据库中读取所述用户基本信息,并判断用户是否处于冻结状态;当监听到用户上传完成的事件后,从所述数据库中读取所述文件搬迁信息,并将上传的文件搬迁到所述文件搬迁目录下;当监听到用户下载完成的事件后,从所述数据库中读取所述文件归档信息,并将下载的文件搬迁到所述文件归档目录下。可选地,所述文件搬迁目录包括一个或多个。根据本发明的另一方面,提供了一种基于ApacheFtpServer实现定制化FTP服务器的装置。一种基于ApacheFtpServer实现定制化FTP服务器的装置,包括:信息配置模块,用于完成配置信息并保存到数据库中;监听执行模块,用于当监听到用户事件发生后,根据从所述数据库中读取的配置信息执行相应的操作;日志记录模块,用于将所述用户事件的信息以及所述操作的过程和结果保存到日志记录表中,以便进一步分析。可选地,所述配置信息包括:用户基本信息、文件搬迁信息、文件归档信息、以及文件清理信息。可选地,所述用户基本信息包括用户冻结信息,所述文件搬迁信息包括文件搬迁目录,所述文件归档信息包括文件归档目录,所述文件清理信息包括定时任务名称、定时表达式和待清理目录。可选地,还包括:定时任务模块,用于根据所述文件清理信息来定期清理过期的归档文件,并将执行过程记录在所述日志表中。可选地,还包括:日志分析模块,用于通过分析所述日志表,根据预先设定的判断规则来判断用户的合法性,并将非法用户设置为冻结状态。可选地,所述监听执行模块还用于:当监听到用户登录的事件后,从所述数据库中读取所述用户基本信息,并对用户进行鉴权;当监听到用户开始上传或开始下载的事件后,从所述数据库中读取所述用户基本信息,并判断用户是否处于冻结状态;当监听到用户上传完成的事件后,从所述数据库中读取所述文件搬迁信息,并将上传的文件搬迁到所述文件搬迁目录下;当监听到用户下载完成的事件后,从所述数据库中读取所述文件归档信息,并将下载的文件搬迁到所述文件归档目录下。可选地,所述文件搬迁目录包括一个或多个。根据本发明的技术方案,以ApacheFtpServer的基础模块为基础,通过扩展ApacheFtpServer的配置信息来丰富用户属性,可以实现用户的操作可控制,来精确化管理用户。设置基于事件机制实现的监听器来接收事件并完成后续操作,可以实现文件的搬迁,从而将用户权限进行隔离,避免用户间文件操作换乱导致的文件破坏问题;同时还可以实现广播下发文件,满足多用户下载的需求;另外,还可以将文档进行归档,以便实现故障恢复。此外,将操作的过程和结果保存在日志中以进行分析,可以通过交互日志跟踪用户行为,解决传统FTP用户不可跟踪问题,也可以用户行为作为依据来优化配置,可较大提高FTP服务器的性能。附图说明附图用于更好地理解本发明,不构成对本发明的不当限定。其中:图1是传统FTP服务器的实现原理示意图;图2是传统FTP服务器的多用户操作情况示意图;图3是根据本发明实施例的基于ApacheFtpServer实现定制化FTP服务器的方法的主要步骤示意图;图4是根据本发明实施例的基于ApacheFtpServer实现定制化FTP服务器的装置的主要模块示意图;图5是本发明实施例的定制化FTP服务器的工作原理示意图;图6是本发明实施例的定制化FTP服务器的框架结构示意图;图7是本发明实施例的定制化FTP服务器的实现原理图;图8是本发明实施例的监听器子模块的实现机制示意图;图9是本发明实施例的用户登录事件的处理时序图;图10是本发明实施例的用户开始上传事件的处理时序图;图11是本发明实施例的用户上传完成事件的处理时序图;图12是本发明实施例的用户开始下载事件的处理时序图;图13是本发明实施例的用户下载完成事件的处理时序图;图14是本发明实施例的监听器子模块的监听活动示意图;图15是本发明实施例的定时任务模块的执行过程时序图;图16是本发明实施例的通过日志分析跟踪用户行为的实施过程示意图。具体实施方式以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。本发明的定制化FTP服务器是以ApacheFtpServer的基础模块为基础,通过扩展ApacheFtpServer来实现扩展FTP服务器配置能力和跟踪FTP文件交互过程,例如,丰富配置属性、用户鉴权和操作轨迹记录等等。图3是根据本发明实施例的基于ApacheFtpServer实现定制化FTP服务器的方法的主要步骤示意图。如图3所示,本发明的基于ApacheFtpServer实现定制化FTP服务器的方法主要包括如下的步骤S31至步骤S33。步骤S31:完成配置信息并保存到数据库中。所述配置信息包括:用户基本信息、文件搬迁信息、文件归档信息、以及文件清理信息。其中,所述用户基本信息包括用户冻结信息等,所述文件搬迁信息包括文件搬迁目录,所述文件归档信息包括文件归档目录,所述文件清理信息包括定时任务名称、定时表达式和待清理目录等内容。步骤S32:当监听到用户事件发生后,根据从所述数据库中读取的配置信息执行相应的操作。其中,根据用户事件的不同,可以包括以下几种操作:操作1:当监听到用户登录的事件后,从所述数据库中读取所述用户基本信息,并对用户进行鉴权;操作2:当监听到用户开始上传或开始下载的事件后,从所述数据库中读取所述用户基本信息,并判断用户是否处于冻结状态;操作3:当监听到用户上传完成的事件后,从所述数据库中读取所述文件搬迁信息,并将上传的文件搬迁到所述文件搬迁目录下;操作4:当监听到用户下载完成的事件后,从所述数据库中读取所述文件归档信息,并将下载的文件搬迁到所述文件归档目录下。根据本发明的技术方案,所述文件搬迁目录包括一个或多个。步骤S33:将所述用户事件的信息以及所述操作的过程和结果保存到日志表中,以便进一步分析。根据本发明的实施过程可知,还可以设置定时任务,根据所述文件清理信息来定期清理过期的归档文件,并将执行过程记录在所述日志表中。另外,本发明还可以通过分析所述日志表,根据预先设定的判断规则来判断用户的合法性,并将非法用户设置为冻结状态。图4是根据本发明实施例的基于ApacheFtpServer实现定制化FTP服务器的装置的主要模块示意图。如图4所示,本发明的基于ApacheFtpServer实现定制化FTP服务器的装置40主要包括信息配置模块41、监听执行模块42和日志记录模块43。信息配置模块41用于完成配置信息并保存到数据库中;监听执行模块42用于当监听到用户事件发生后,根据从所述数据库中读取的配置信息执行相应的操作;日志记录模块43用于将所述用户事件的信息以及所述操作的过程和结果保存到日志记录表中,以便进一步分析。根据本发明的实现原理,所述配置信息包括:用户基本信息、文件搬迁信息、文件归档信息、以及文件清理信息。其中,所述用户基本信息包括用户冻结信息等,所述文件搬迁信息包括文件搬迁目录,所述文件归档信息包括文件归档目录,所述文件清理信息包括定时任务名称、定时表达式和待清理目录。另外,本发明中所述文件搬迁目录可以包括一个或多个。监听执行模块42还可以用于当监听到用户登录的事件后,从所述数据库中读取所述用户基本信息,并对用户进行鉴权;当监听到用户开始上传或开始下载的事件后,从所述数据库中读取所述用户基本信息,并判断用户是否处于冻结状态;当监听到用户上传完成的事件后,从所述数据库中读取所述文件搬迁信息,并将上传的文件搬迁到所述文件搬迁目录下;当监听到用户下载完成的事件后,从所述数据库中读取所述文件归档信息,并将下载的文件搬迁到所述文件归档目录下。另外,本发明的基于ApacheFtpServer实现定制化FTP服务器的装置40还可以包括定时任务模块,用于根据所述文件清理信息来定期清理过期的归档文件,并将执行过程记录在所述日志表中;以及日志分析模块,用于通过分析所述日志表,根据预先设定的判断规则来判断用户的合法性,并将非法用户设置为冻结状态。以下将通过具体实施例来介绍本发明的实施过程。图5至图16是本发明的实施例的具体实施过程。图5是本发明实施例的定制化FTP服务器的工作原理示意图。如图5所示,本发明的定制化FTP服务器有别于传统的FTP服务器,上传用户不用于下载文件,只负责上传文件到指定目录(标号1所示),FTP服务器系统会把文件搬迁到下载目录(标号2所示),其中下载目录可以是一个也可以是多个,分别实现点对点下载和广播模式下载;同样地,下载用户只用于下载文件。文件下载完成后,FTP服务器系统会把下载目录下的文件搬迁到归档目录(标号3所示)。根据如上所述的工作原理,本发明的定制化FTP服务器可以避免现有技术中的由于用户权限没有做到隔离,可能会导致用户间文件操作混乱以致文件被破坏的情况发生;另外,文件可以搬迁到多个下载目录,实现了广播下发文件;并且,通过文件归档解决了异常文件恢复的问题。如图6所示,是本发明实施例的定制化FTP服务器的框架结构示意图。由于ApacheFtpServer基础模块的功能与传统FTP服务器功能相似,仅增加了上传和下载文件速率控制的功能,故而图中省略了FTP基础模块部分。从图中可以看出,与传统FTP服务器相比,本发明的定制化FTP服务器还可以包括FTP功能扩展模块和FTP可视化跟踪模块。FTP功能扩展模块根据功能实现的先后顺序又可以包括核心配置子模块、监听器子模块和定时任务子模块。核心配置子模块用于扩展FTP的定制化需求的配置属性,监听器子模块主要监听用户操作并执行相应的文件搬迁、归档等任务,定时任务子模块主要负责将过期的归档文件进行清理,以保证FTP服务器有足够的空间为用户服务。FTP可视化跟踪模块主要用于保存监听器子模块和定时任务子模块功能实现过程中的交互日志,并用于进一步的分析,以解决传统FTP服务器用户不可跟踪的问题,同时可以优化核心配置信息。图7是本发明实施例的定制化FTP服务器的实现原理图。如图7所示,本实施例中主要包含4个模块,分别以数字1-4标示于图中。以下将详细介绍各个模块的实现过程。1、核心配置子模块该模块主要用于配置各个功能实现的必要信息,其中配置信息主要包括3部分:1.1用户基本信息,其中,包括用户是否冻结的属性,即用户冻结信息,此为根据功能实现需求新增加的用户基本信息,主要服务于监听器子模块和定时任务子模块;1.2文件搬迁信息和文件归档信息,主要服务于监听器子模块;1.3文件清理信息,主要服务于定时任务子模块。如图7所示,核心配置子模块中可以配置文件是否需要备份以及文件备份目录、文件是否需要归档以及文件归档目录等信息,还可以配置文件搬迁时是点对点搬迁还是分发搬迁,同时还可以对文件清理进行配置,例如定时任务规则配置及待清理目录等,其中定时任务规则主要包括定时任务名称、定时表达式等。为显示更为清楚,表1中列出了ApacheFtpServer原有的FTP_USER属性;表2中列出了FTP_USER的扩展属性,包括:用户是否冻结、文件搬迁目录和文件归档目录;表3中列出了定时任务配置属性,主要包括定时任务名称、定时表达式和待清理目录。其中,表2中所列的用户是否冻结的属性信息和表1中的ApacheFtpServer原有的FTP_USER属性共同组成了用户基本信息。表1ApacheFtpServer原有FTP_USER属性userid用户userpassword用户密码homedirectory根目录enableflag用户可用标记writepermission是否可写标记idletime空闲时间uploadrate上传文件速率downloadrate下载文件速率maxloginnumber用户最大登录数maxloginperip每个ip最大登录数sourceip源IP地址表2FTP_USER扩展属性frozen用户是否冻结goaldirectory文件搬迁目录backdirectory文件归档目录表3定时任务配置属性task_Name定时任务名称CRON_EXPRESSION定时表达式clear_director待清理目录ApacheFtpServer通过提供接口的方式,可以很方便地设置用户的参数信息,并将配置信息保存到数据库中。在用户登录时就可以获取用户基本信息以用于鉴权,用户登录后,监听器子模块可以根据用户的扩展属性中的用户冻结信息来判断该用户是否已被冻结,来限制用户是否可操作文件,例如上传或者下载文件等。此外,对于用户的冻结信息设置较为灵活,且用户的冻结时间也可以设置。例如,可以设置高频用户是否冻结,来限制用户在特定时间段内无法操作,等到资源使用率较低时,再设置该高频用户冻结失效,可以操作。2、监听器子模块监听器子模块主要用于监听用户操作并执行相应的文件搬迁、归档等操作,并将操作的过程和结果记录在日志表中。监听器子模块是基于事件机制来实现的,事件触发后监听器接收事件并完成相应的后续操作,如图8所示的本发明实施例的监听器子模块的实现机制示意图。当监听器子模块监听到用户登录FTP服务器、用户开始上传或者上传完成事件、用户开始下载或者下载完成事件后,将接收事件并完成后续操作。另外,监听器子模块还提供扩展监听接口用于扩展监听新的用户事件。下面以这几个常用的用户事件为例,详细介绍该子模块的功能实现。如图9所示,是本发明实施例的用户登录事件的处理时序图。当监听器子模块监听到用户登录的事件后,将根据该用户名加载用户基本信息,并调用鉴权程序进行鉴权,并将用户登录的事件信息以及监听器子模块对用户基本信息的加载结果和鉴权结果写入鉴权日志。如图10所示,是本发明实施例的用户开始上传事件的处理时序图。当监听器子模块监听到用户开始上传的事件后,将首先加载用户基本信息,并根据用户基本信息中的用户冻结信息检测用户是否处于冻结状态,当用户未被冻结时,将用户的上传轨迹写入日志表,以用于跟踪记录用户的上传频率。图11是本发明实施例的用户上传完成事件的处理时序图。当监听器子模块监听到用户上传完成的事件后,将首先加载用户基本信息、文件搬迁信息,再通过用户基本信息的配置找到文件的存放根目录,通过文件搬迁信息找到文件搬迁目录,然后将文档搬迁到预设的一个或者多个下载目录中,并将搬迁的结果写入日志表。此处,文件搬迁目录根据预先设置的可用于下载的目录来确定。图12是本发明实施例的用户开始下载事件的处理时序图。当监听器子模块监听到用户开始下载的事件后,将首先加载用户基本信息,并根据用户基本信息中的用户冻结信息检测用户是否处于冻结状态,当用户未被冻结时,将用户的下载轨迹写入日志表,以用于跟踪用户的下载频率。图13是本发明实施例的用户下载完成事件的处理时序图。当监听器子模块监听到用户下载完成的事件后,将首先加载用户基本信息和文件归档信息,再通过用户基本信息找到文件的存放根目录,通过文件归档信息找到文件归档目录,然后调用文件归档功能将文档搬迁到归档目录下,并将归档结果写入日志表。由上述图9至图13的用户事件的处理时序图可以看出,监听器模块是基于事件机制来实现的,事件触发后监听器接收事件并完成相应的后续操作。下面以用户登录后上传文件为例,介绍监听器子模块的监听活动图。如图14所示,是本发明实施例的监听器子模块的监听活动示意图。当FTP用户登录FTP服务器时,将触发用户登录事件,并将该事件通知到监听器子模块的登录监听单元,然后登录监听单元根据用户基本信息进行鉴权,鉴权通过后,用户将执行文件上传的操作。首先是用户触发开始上传文件事件,并通知监听器子模块的上传监听单元,待文件上传完成之后上传监听单元根据配置信息通知文件搬迁器,将文件搬迁到相应的目录下。如此,即可实现通过监听器子模块来执行后续操作的目的。3、定时任务子模块定时任务子模块用于清理过期的归档文件,此处,定时任务的待清理目录即为文件归档目录。定时任务子模块通过设置定时任务的方式来扫描文件归档目录,当扫描到文件存储时间大于设定时间(如一个月)时,就删除该文件,释放FTP磁盘空间,保证FTP服务器有足够的空间为用户服务。本发明实施例的定时任务子模块的执行过程时序如图15所示。定时任务子模块通过加载配置信息中的文件清理信息,以加载定时任务规则,之后,即可校验文件是否可清理,如果可清理则调用清理文件逻辑完成过期文件的清理。其中,定时任务规则主要包括定时任务名称、定时表达式等,定时表达式中例如可以包括文件存活时间(默认为一个月)等信息。定时任务子模块,加载定时任务规则后,遍历待清理目录下的所有文件,如果文件存活时间超过设定的文件存活时间,则清理该文件,以达到清理过期文件的效果。另外,还可以根据需要设置重要的历史文件进行转存到其他磁盘空间等。4、FTP可视化跟踪模块FTP可视化跟踪模块包括日志记录系统和日志分析系统,日志记录系统主要用于保存用户事件的信息以及监听器子模块执行的操作的过程和结果,日志分析系统用于对保存的日志数据进行分析。通过交互日志可跟踪用户行为,解决传统FTP服务器用户不可跟踪问题,例如:通过日志表中的日志记录可跟踪用户登录次数及已操作文件轨迹来发现文件是否上传完成;文件是否搬迁到下载目录;下载用户是否完成下载;文件是否已归档等,如表4所示。同时,还可以用户行为作为依据重新设置用户基本信息来优化配置。例如,通过分析日志表,可以根据预先设定的判断规则来判断用户的合法性,并将非法用户设置为冻结状态。此处,判断规则可根据具体业务需求来制定,判断规则例如可以是根据用户的操作轨迹、用户上传文件类型、用户上传文件格式等,来判断用户的行为是否合法,如果是非法用户,则可通过设置用户为冻结状态来限制其操作。表4日志表示例图16是本发明实施例的通过日志分析跟踪用户行为的实施过程示意图。以用户的操作轨迹为例来分析用户的行为。如图16所示,将整个FTP服务器的工作状态分为配置状态和运行状态两种。在配置状态,管理员通过日志分析用户操作轨迹(步骤S161),根据用户的操作频率与预定的操作频率限制进行比较,可判断用户的操作频率是否超限(步骤S162),如果超限,则为非法用户,否则为合法用户。若用户为合法用户,则无需进行状态设置,若用户为非法用户,则设置用户为冻结状态(步骤S163)并保存到配置信息中。在运行状态,用户登录时将加载配置信息(步骤S164),当用户需要进行上传或下载的操作时,先判断用户是否处于冻结状态(步骤S165),如果用户为非冻结状态,则不限制用户的上传或下载操作(步骤S166);否则,当用户为冻结状态时,将限制用户的上传或下载操作(步骤S167)。以上所述为本发明实施例的原理和具体实施过程。根据本发明实施例的技术方案,以ApacheFtpServer的基础模块为基础,通过扩展ApacheFtpServer的配置信息来丰富用户属性,可以实现用户的操作可控制,来精确化管理用户。设置基于事件机制实现的监听器来接收事件并完成后续操作,可以实现文件的搬迁,从而将用户权限进行隔离,避免用户间文件操作换乱导致的文件破坏问题;同时还可以实现广播下发文件,满足多用户下载的需求;另外,还可以将文档进行归档,以便实现故障恢复。此外,将操作的过程和结果保存在日志中以进行分析,可以通过交互日志跟踪用户行为,解决传统FTP用户不可跟踪问题,也可以用户行为作为依据来优化配置,可较大提高FTP服务器的性能。上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1