简易FTP服务器 - SimpleFtpServer
# 简易FTP服务器 - SimpleFtpServer
简介
SimpleFtpServer
是 Hutool 基于 Apache FtpServer (opens new window) 封装的一个简易 FTP 服务端组件,主要用于在一些测试场景或小并发应用场景下快速搭建 FTP 服务。它提供了简单的 API,用于快速配置和启动一个 FTP 服务器,支持匿名访问和自定义用户。
# 依赖引入
在使用 SimpleFtpServer
之前,需要引入 Apache FtpServer 相关依赖:
<dependency>
<groupId>org.apache.ftpserver</groupId>
<artifactId>ftpserver-core</artifactId>
<version>1.1.1</version>
</dependency>
1
2
3
4
5
2
3
4
5
提示:请根据项目需求选择合适的版本,确保与 Hutool 的版本兼容。
# 1. 快速启动匿名 FTP 服务
SimpleFtpServer
提供了简单的链式 API,可以快速启动一个匿名 FTP 服务。匿名服务允许客户端无需用户名和密码即可访问指定目录。
# 示例:开启匿名 FTP 服务
import cn.hutool.extra.ftp.SimpleFtpServer;
public class FtpServerExample {
public static void main(String[] args) {
// 创建并启动一个匿名 FTP 服务器,指定根目录为 "d:/test/ftp/"
SimpleFtpServer.create()
.addAnonymous("d:/test/ftp/") // 配置匿名用户的根目录,注意该目录必须存在
.start(); // 启动 FTP 服务
System.out.println("FTP 服务器已启动,可通过 ftp://localhost 访问");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
代码解析:
SimpleFtpServer.create()
:创建一个SimpleFtpServer
实例。addAnonymous(String homeDirectory)
:添加匿名用户,并设置其根目录。homeDirectory
:匿名用户的根目录路径,要求该目录必须存在。
start()
:启动 FTP 服务。
适用场景:
- 适用于快速搭建一个匿名 FTP 服务器,用于测试文件上传、下载等操作。
访问方式: 在浏览器或资源管理器中输入以下地址即可访问:
ftp://localhost
1
# 2. 配置自定义用户
除了匿名用户外,SimpleFtpServer
还支持配置自定义用户。可以指定用户名、密码和用户的根目录,适用于更为复杂的 FTP 场景。
# 示例:配置自定义用户
import cn.hutool.extra.ftp.SimpleFtpServer;
import org.apache.ftpserver.usermanager.impl.BaseUser;
public class FtpServerExample {
public static void main(String[] args) {
// 创建一个自定义用户
BaseUser user = new BaseUser();
user.setName("username"); // 设置用户名
user.setPassword("123"); // 设置密码
user.setHomeDirectory("d:/test/user/"); // 设置用户的根目录,注意该目录必须存在
// 创建并启动 FTP 服务器
SimpleFtpServer.create()
.addUser(user) // 添加自定义用户
.start(); // 启动 FTP 服务
System.out.println("FTP 服务器已启动,可通过 ftp://localhost 以指定用户访问");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
代码解析:
BaseUser
是 Apache FtpServer 提供的用户类,用于定义 FTP 用户的基本信息。setName(String name)
:设置用户名。setPassword(String password)
:设置用户密码。setHomeDirectory(String homeDirectory)
:设置用户的根目录,要求该目录必须存在。addUser(BaseUser user)
:将自定义用户添加到 FTP 服务器中。
适用场景:
- 适用于需要配置多个用户、限制访问权限或设置不同根目录的场景。
# 3. 实际开发中的应用场景
- 本地测试环境:在开发过程中,需要快速搭建一个 FTP 服务器用于测试文件上传、下载功能,
SimpleFtpServer
提供了简便的启动方式。 - 小规模应用场景:对于低并发的应用场景,可以使用
SimpleFtpServer
作为轻量级 FTP 服务端,避免引入复杂的配置和部署。 - 教育和实验:在教学或实验中,可以通过
SimpleFtpServer
快速演示 FTP 的基本原理和操作。
编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08