`
izuoyan
  • 浏览: 9274190 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何在Apache FtpServer基础上增加或者修改FTP命令

阅读更多

一、情景

项目由于需要支持大文件传输和下载,用到了开源的Apache FtpServerhttp://mina.apache.org/ftpserver/)。但是,为了配合客户端使用,这些FTP命令并不能满足需求,即需要增加一些命令,也需要删除或者修改一些对于整个系统可能带来安全问题的命令。

二、修改Apache FtpServer的大致思路

1. 新增加命令,则增加具体的实现类,继承AbstractCommand,实现execute()方法。

2. 自定义一个类MyCommandFactoryFactory,对DEFAULT_COMMAND_MAP进行初始化控制,增加自己定义的命令。

具体代码可以参考org.apache.ftpserver.command.CommandFactoryFactory,基本类似。

3. server启动之前,重新设置CommandFactory

serverFactory.setCommandFactory((new MyCommandFactoryFactory()).createCommandFactory());

(另外:也可以直接修改CommandFactoryFactory的代码,这样比较简单。但是一般情况下,如果对于开源包有更改,还是建议继承或者重写相关的类,这样以后升级使用的包更容易些。)

三、如何对定制后的FtpServer测试

对于定制后的FtpServer,因为命令已经改变,使用传统的一些FTP工具就无法对Server进行测试了。这就需要自己写一个同样是定制过的简单的Ftp客户端来进行测试。Apache提供的commonnet包(http://commons.apache.org/net/)对于Ftp协议进行了支持,并且是开源的,所以可以直接修改commonnet的代码,提供一个定制版本的commonnet,以对定制的Ftp命令进行支持。然后再使用定制版本的commonnet写一个简单的Ftp客户端。

四、修改commonnet代码的大致思路

1. org.apache.commons.net.ftp.FTPCommand

代码不多,很容易懂。需要修改或者增加命令。

2. org.apache.commons.net.ftp.FTP

这个类封装了Ftp客户端的主要功能。增加或者修改具体的方法。

3. org.apache.commons.net.ftp.FtpClient

这个类是对外提供服务的。增加或者修改具体的方法。


注:因为不能涉及具体业务,所以写的不够详细,见谅。基本思路已经写出来了,按照这个思路,再仔细看看代码,应该没问题的。
分享到:
评论
1 楼 zhuxy_sun 2011-10-17  
请问:
  
    如果对于自定义的命令需要返回对应的结果应该如何开发?

相关推荐

    apache FTPserver 安装包

    4. **多平台支持**:Apache FTPServer可以在多种操作系统上运行,包括Windows、Linux、Unix等。 5. **强大的配置能力**:通过XML配置文件,管理员可以精细地控制FTP服务器的行为,例如设置用户权限、限制速度、配置...

    Apache FtpServer配置详解

    从零开始介绍Apache FtpServer,并一步一步教你配置Apache FtpServer,更高级的应用,教你用写代码控制Apache FtpServer及集成到自己的应用中 <!--ftp端口 --> <!--绑定的服务器IP地址,多网卡的时候使用...

    Apache FTPServer的配置使用

    在 JavaWeb 集群环境下,配置 FTP 服务器是非常重要的,本文将介绍 Apache FTPServer 的配置使用,帮助读者快速搭建 FTP 服务器。 FTP 介绍 FTP 是一个标准的 TCP/IP 协议,用于在网络上传输文件。FTP 协议基于...

    Apache Ftpserver 全套

    总之,这个压缩包提供了从基础到高级的所有必要资源,让你能够全面掌握Apache Ftpserver的使用和定制。无论是作为开发者还是管理员,你都可以通过这份资料深化对FTP服务器工作的理解,并实现高效的FTP服务部署。

    apache ftpserver笔记

    另外,文中可能提到的“aptche ftpserver2.htm”和“apache ftpserver1.htm”可能是关于Apache FTPServer的两个不同版本或者不同阶段的配置和使用教程。而“Apache FTP 实用代码.html”可能包含了一些示例代码,方便...

    apache-ftpserver-1.1.1.zip

    Apache FTPServer是一款开源的FTP(File Transfer Protocol)服务器软件,主要负责在互联网上进行文件传输。这个特定的压缩包“apache-ftpserver-1.1.1.zip”包含了该服务器软件的v1.1.1版本,适用于Linux和Windows...

    apache ftpserver讲解

    例如,在 `%FTP_HOME%/common/lib/ftpserver-core-1.0.5.jar` 文件中找到相关类文件,如 `org.apache.ftpserver.usermanager.impl.DbUserManager.class` 和 `org.apache.ftpserver.usermanager.impl....

    Apache FtpServer 1.0.6

    Apache FtpServer是一个100%纯Java的、基于现有开放式协议基础上、完整、小巧的FTP服务器。此外,FtpServer还可以作为Windows服务器、Unix / Linux后台程序或是被嵌入在Java应用程序而独立运行。有了MINA...

    apache ftpserver Mysql配置

    FTP(File Transfer Protocol)是互联网上用于文件传输的标准协议,Apache FTPServer是其一个流行的开源实现。它提供了一个灵活的框架,支持多种插件,可以根据需求进行定制。 2. **Apache FTPServer安装** 首先...

    Apache_FtpServer配置详解

    Apache_FtpServer配置详解

    apache ftpserver使用讲解

    - **Linux/Unix系统**: 使用命令 `tar -xzvf ftpserver-1.0.5.tar.gz` 进行解压。 - **Windows系统**: 使用解压工具进行解压。 3. **配置文件** 安装完成后,需要对配置文件进行编辑。配置文件通常位于 `%FTP_...

    Apache Ftp Server使用说明

    1. **基本配置**:在`<ftpserver>`标签内,可以设置服务器的基本属性,如端口(`port`)和数据连接模式(`dataConnectionMode`)。 2. **用户认证**:在`<users>`标签内,定义FTP用户的用户名、密码、主目录等信息。...

    apache ftp server

    如果你需要进一步的信息,可以参考Apache FTP Server的官方文档,或者查找相关的社区资源和教程。 总之,Apache FTP Server是一个强大且灵活的开源FTP解决方案,适合那些需要自定义和扩展功能的企业级文件传输环境...

    (转)Java使用Apache FtpServer实现嵌入式FTP服务器

    Java使用Apache FtpServer实现嵌入式FTP服务器是一项常见的任务,尤其在开发集成测试或部署自动化流程时。Apache FtpServer是一个开源项目,它提供了一个轻量级且可嵌入的FTP服务器,允许开发者在Java应用程序中直接...

    Apache FtpServer详细配置.zip

    在开始配置Apache FtpServer之前,你需要先下载并安装它。这通常涉及到以下几个步骤: 1. 下载Apache FtpServer的最新版本。 2. 解压缩下载的文件到你选择的目录。 3. 运行`bin/startup.sh`(Linux或Mac)或`bin/...

    apache ftpserver

    7. **虚拟主机**:FTPServer支持虚拟主机功能,允许在一个服务器上运行多个独立的FTP站点,每个站点有自己的域名、用户账户和权限设置。 8. **断点续传**:FTPServer支持断点续传功能,当文件传输中断后,可以从...

    Android FTP server 用org.apache.ftpserver实现

    Android FTP server 用org.apache.ftpserver实现, 可以设置端口号, 匿名或用户名密码 https://blog.csdn.net/weixin_42065195/article/details/106944004

    apache ftpserver jar包

    在Java应用程序中使用Apache FtpServer时,你需要包含一系列的jar包来支持其运行。这些jar包包含了服务器本身的基础组件、网络通信模块以及可能需要的依赖库。"apache ftpserver所需jar包"通常包括以下几个关键组件...

    Java 嵌入apache.ftpserver.FtpServer 实现FTP服务

    Java中的Apache FtpServer库为开发人员提供了一个强大的框架,用于在Java应用程序中轻松地创建和管理FTP服务器。Apache FtpServer提供了丰富的API,可以定制服务器的行为,满足各种需求。本篇文章将深入探讨如何利用...

    apache-ftpserver-1.0.6

    这个"apache-ftpserver-1.0.6"版本是该软件的一个特定发布版,包含了在该版本中所实现的功能和改进。 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议,基于TCP/IP协议族。FTP服务器允许...

Global site tag (gtag.js) - Google Analytics