`
tmj_159
  • 浏览: 707520 次
  • 性别: Icon_minigender_1
  • 来自: 永州
社区版块
存档分类
最新评论

apache mina 学习笔记三(子项目FtpServer)

 
阅读更多

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项目

分享到:
评论
1 楼 白天看黑夜 2017-10-20  
Apache Mina Server 2.0 中文参考手册(带目录),有需要的自己下载吧
http://www.itmayun.com/it/files/226631678709806/resource/484719910403706/1.html

相关推荐

    Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)

    Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)

    apache ftpserver笔记

    Apache FTPServer是一款开源的FTP服务器软件,它是Apache MINA项目的一部分,用于构建高性能、可扩展的网络应用。这篇笔记主要围绕Apache FTPServer的使用、配置和相关开发进行讲解。 首先,Apache FTPServer提供了...

    ftpserver mina框架,适合学习

    Apache Mina FTPServer是一个基于Apache Mina框架的轻量级FTP服务器实现,它为开发者提供了构建自定义FTP服务器的能力。这个框架非常适合初学者学习,因为它提供了清晰的结构和丰富的文档,帮助理解网络通信和FTP...

    Apache mina2学习笔记DEMO

    在这个"Apache MINA2学习笔记DEMO"中,我们很可能会看到如何使用MINA来创建一个自定义协议的示例。自定义协议通常是为了满足特定应用的需求,例如高效的数据传输、安全性或者特定的编码格式。MINA允许开发者定义自己...

    apache FTPserver 安装包

    2. **可扩展性**:Apache FTPServer基于Mina网络应用框架,具有高度可扩展性。用户可以编写自定义模块来扩展其功能,如认证、授权、日志记录等。 3. **模块化设计**:服务器由多个模块组成,每个模块负责特定的功能...

    apache Mina的完整学习资料

    在学习Apache Mina时,首先要理解其核心组件和设计模式。Mina的核心组件包括Session、Filter、ProtocolCodec等。Session代表了客户端和服务器之间的连接,Filter则提供了数据处理链,ProtocolCodec则用于将应用层的...

    关于apache Mina Server

    深入理解Apache_Mina_(1)----_Mina的几个类 深入理解Apache_Mina_(2)----_与IoFilter相关的几个类 深入理解Apache_Mina_(3)----_与IoHandler相关的几个类 深入理解Apache_Mina_(4)----_IoFilter和IoHandler的区别和...

    apache ftpserver讲解

    访问 Apache 官方网站 [http://mina.apache.org/ftpserver/downloads.html](http://mina.apache.org/ftpserver/downloads.html),选择适合的操作系统版本进行下载。例如,对于 Apache FTP Server 1.0.5 版本,可以...

    apache-mina-2.0.4.rar_apache mina_mina

    对于希望提高网络应用性能或熟悉Java NIO编程的开发者来说,Apache Mina 2.0.4的源码分析是一次宝贵的学习机会。你可以通过阅读源码学习到如何有效地处理高并发场景,如何设计和实现高效的网络协议,以及如何利用...

    Apache Mina Server 2.0 抢鲜体验

    Apache Mina Server 2.0 是一款高性能、...此外,下载的压缩包文件“minaTest”可能包含示例代码或测试项目,可以作为学习和实践Apache Mina的好材料。通过这些实践,你可以加深对Mina的理解,并将其应用到实际项目中。

    apache ftpserver使用讲解

    首先,需要访问官方提供的下载页面 [http://mina.apache.org/ftpserver/downloads.html](http://mina.apache.org/ftpserver/downloads.html),选择合适的版本进行下载。例如,可以选择 "ApacheFtpServer1.0.5...

    Apache FtpServer 1.0.6

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

    Apache_Mina-FtpServer_use:使用 Apache_Mina_FTP 服务器

    Apache Mina FTP Server 是一个基于 Java 的开源项目,它提供了构建高效、可扩展的网络应用程序的能力,特别是针对FTP(文件传输协议)服务器的实现。在本文中,我们将深入探讨如何使用 Apache Mina FTP Server 来...

    Apache Ftp Server使用说明

    1. 下载:首先,你需要从Apache官方网站(http://mina.apache.org/ftpserver/download.html)下载最新版本的Apache FtpServer。 2. 解压:下载后,将压缩包解压到任意目录。 3. 配置环境变量:为了方便运行,你可以...

    apache-ftpserver-1.0.6

    Apache FTPServer是一个开源的FTP服务器项目,源自Apache MINA项目,提供了一种高效且可扩展的方式来实现FTP(文件传输协议)服务。这个"apache-ftpserver-1.0.6"版本是该软件的一个特定发布版,包含了在该版本中所...

    apache ftpserver jar包

    Apache FtpServer使用MINA作为底层的I/O处理层。 3. **ftpserver-core.jar**:Apache FtpServer的核心库,包含了FTP服务器的主要逻辑和配置管理。 4. **spring相关的jar包**:如果你提到“可以整合spring”,那么...

    Apache Mina帮助文档

    Apache Mina作为一个活跃的开源项目,拥有强大的社区支持。开发者可以在社区中寻求帮助,分享经验,共同解决遇到的问题,推动项目的持续发展。 总的来说,Apache Mina是一个强大的工具,它简化了网络编程的复杂性,...

    Apache Mina 入门Demo

    Apache Mina是一个开源项目,主要用于构建高性能、高可用性的网络通信应用。它是Java语言开发的,提供了一套简单而强大的API,使得开发者可以方便地创建网络服务器和客户端应用程序。Mina的目标是简化网络编程,使其...

Global site tag (gtag.js) - Google Analytics