FtpServer是apache MINA的子项目
官网地址
http://mina.apache.org/ftpserver-project/index.html
FTPServer 我们都熟悉,下载点文件什么的都会用到。
但是你想想,自己搭建一个Server去提供下载的话是不是很酷(也许吧)
有了FtpServer我们可以很简单的搭建一个功能强大,系统稳定的FTP服务。
目前FtpServer的最新版本是1.0.6 首先我们从官网下载一个版本。
下面的例子提供了一个带用户管理的服务器,基于目前最新的1.0.6 release
需要的jar包,不同版本的jar包我没有试过。同样这所以的jar包都能够在下载的文件中找到。
ftplet-api-1.0.6.jar
ftpserver-core-1.0.6.jar
log4j-1.2.14.jar
mina-core-2.0.4.jar
slf4j-api-1.5.2.jar
slf4j-log4j12-1.5.2.jar
启动服务的代码超级简单
package cn.tang.test; import java.io.File; import org.apache.ftpserver.FtpServer; import org.apache.ftpserver.FtpServerFactory; import org.apache.ftpserver.ftplet.FtpException; import org.apache.ftpserver.listener.ListenerFactory; import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory; public class ConfigurableFtpServer { public static void main(String[] args) { FtpServerFactory serverFactory=new FtpServerFactory(); ListenerFactory factory=new ListenerFactory(); factory.setPort(21); serverFactory.addListener("default", factory.createListener()); PropertiesUserManagerFactory userManagerFactory = new PropertiesUserManagerFactory(); userManagerFactory.setFile(new File("users.properties")); serverFactory.setUserManager(userManagerFactory.createUserManager()); FtpServer server=serverFactory.createServer(); try { server.start(); } catch (FtpException e) { e.printStackTrace(); } } }
使用listener的作用是修改默认端口,本例子中依然是默认的21.
UserManagerFactory通过设置配置文件来完成对用户的管理。
users.properties如下
# Password is "admin" ftpserver.user.admin.userpassword=21232F297A57A5A743894A0E4A801FC3 ftpserver.user.admin.homedirectory=./res/homea ftpserver.user.admin.enableflag=true ftpserver.user.admin.writepermission=true ftpserver.user.admin.maxloginnumber=0 ftpserver.user.admin.maxloginperip=0 ftpserver.user.admin.idletime=0 ftpserver.user.admin.uploadrate=0 ftpserver.user.admin.downloadrate=0 ftpserver.user.anonymous.userpassword= ftpserver.user.anonymous.homedirectory=./res/homeb ftpserver.user.anonymous.enableflag=true ftpserver.user.anonymous.writepermission=false ftpserver.user.anonymous.maxloginnumber=20 ftpserver.user.anonymous.maxloginperip=2 ftpserver.user.anonymous.idletime=300 ftpserver.user.anonymous.uploadrate=4800 ftpserver.user.anonymous.downloadrate=4800
上面设置了两个用户,一个是admin,另外一个匿名的用户,为了区别不同的用户,我让不同的用户访问不同的文件路径。
我们需要做的是,在项目路径下新建两个这样的目录res/homea ,res/homeb
以上代码用CuteFTP 8.0 测试通过。
附件是一个可运行的Eclipse项目
相关推荐
Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)
Apache FTPServer是一款开源的FTP服务器软件,它是Apache MINA项目的一部分,用于构建高性能、可扩展的网络应用。这篇笔记主要围绕Apache FTPServer的使用、配置和相关开发进行讲解。 首先,Apache FTPServer提供了...
Apache Mina FTPServer是一个基于Apache Mina框架的轻量级FTP服务器实现,它为开发者提供了构建自定义FTP服务器的能力。这个框架非常适合初学者学习,因为它提供了清晰的结构和丰富的文档,帮助理解网络通信和FTP...
在这个"Apache MINA2学习笔记DEMO"中,我们很可能会看到如何使用MINA来创建一个自定义协议的示例。自定义协议通常是为了满足特定应用的需求,例如高效的数据传输、安全性或者特定的编码格式。MINA允许开发者定义自己...
2. **可扩展性**:Apache FTPServer基于Mina网络应用框架,具有高度可扩展性。用户可以编写自定义模块来扩展其功能,如认证、授权、日志记录等。 3. **模块化设计**:服务器由多个模块组成,每个模块负责特定的功能...
在学习Apache Mina时,首先要理解其核心组件和设计模式。Mina的核心组件包括Session、Filter、ProtocolCodec等。Session代表了客户端和服务器之间的连接,Filter则提供了数据处理链,ProtocolCodec则用于将应用层的...
深入理解Apache_Mina_(1)----_Mina的几个类 深入理解Apache_Mina_(2)----_与IoFilter相关的几个类 深入理解Apache_Mina_(3)----_与IoHandler相关的几个类 深入理解Apache_Mina_(4)----_IoFilter和IoHandler的区别和...
访问 Apache 官方网站 [http://mina.apache.org/ftpserver/downloads.html](http://mina.apache.org/ftpserver/downloads.html),选择适合的操作系统版本进行下载。例如,对于 Apache FTP Server 1.0.5 版本,可以...
对于希望提高网络应用性能或熟悉Java NIO编程的开发者来说,Apache Mina 2.0.4的源码分析是一次宝贵的学习机会。你可以通过阅读源码学习到如何有效地处理高并发场景,如何设计和实现高效的网络协议,以及如何利用...
Apache Mina Server 2.0 是一款高性能、...此外,下载的压缩包文件“minaTest”可能包含示例代码或测试项目,可以作为学习和实践Apache Mina的好材料。通过这些实践,你可以加深对Mina的理解,并将其应用到实际项目中。
首先,需要访问官方提供的下载页面 [http://mina.apache.org/ftpserver/downloads.html](http://mina.apache.org/ftpserver/downloads.html),选择合适的版本进行下载。例如,可以选择 "ApacheFtpServer1.0.5...
Apache FtpServer是一个100%纯Java的、基于现有开放式协议基础上、完整、小巧的FTP服务器。此外,FtpServer还可以作为Windows服务器、Unix / Linux后台程序或是被嵌入在Java应用程序而独立运行。有了MINA...
Apache Mina FTP Server 是一个基于 Java 的开源项目,它提供了构建高效、可扩展的网络应用程序的能力,特别是针对FTP(文件传输协议)服务器的实现。在本文中,我们将深入探讨如何使用 Apache Mina FTP Server 来...
1. 下载:首先,你需要从Apache官方网站(http://mina.apache.org/ftpserver/download.html)下载最新版本的Apache FtpServer。 2. 解压:下载后,将压缩包解压到任意目录。 3. 配置环境变量:为了方便运行,你可以...
Apache FTPServer是一个开源的FTP服务器项目,源自Apache MINA项目,提供了一种高效且可扩展的方式来实现FTP(文件传输协议)服务。这个"apache-ftpserver-1.0.6"版本是该软件的一个特定发布版,包含了在该版本中所...
Apache FtpServer使用MINA作为底层的I/O处理层。 3. **ftpserver-core.jar**:Apache FtpServer的核心库,包含了FTP服务器的主要逻辑和配置管理。 4. **spring相关的jar包**:如果你提到“可以整合spring”,那么...
Apache Mina作为一个活跃的开源项目,拥有强大的社区支持。开发者可以在社区中寻求帮助,分享经验,共同解决遇到的问题,推动项目的持续发展。 总的来说,Apache Mina是一个强大的工具,它简化了网络编程的复杂性,...
Apache Mina是一个开源项目,主要用于构建高性能、高可用性的网络通信应用。它是Java语言开发的,提供了一套简单而强大的API,使得开发者可以方便地创建网络服务器和客户端应用程序。Mina的目标是简化网络编程,使其...