Spring Boot集成FTP文件上传服务
源码地址:https://github.com/AlanLee97/code-demos/tree/master/spring-boot-vsftpd
文件服务器使用的是vsftpd
一、Docker搭建vsftpd文件服务器
- 创建用户组
groupadd ftpgroups
- 创建用户
useradd -d /home/ftp/ftptest -g ftpgroups ftptest
- 设置用户密码
passwd ftptest
123456
- 设置不允许登录
usermod -s /sbin/nologin ftptest
- 创建file文件夹存放文件
mkdir -p /home/ftp/ftptest/file
- 修改文件夹权限(否则文件上传不上来)
chmod 777 /home/ftp/ftptest/file
- 下载镜像并运行容器
docker run -d \
-v /home/ftp:/home/vsftpd \
-p 20:20 \
-p 21:21 \
-p 21100-21110:21100-21110 \
-e FTP_USER=ftptest \
-e FTP_PASS=123456 \
--name vsftpd fauria/vsftpd
二、搭建Spring Boot项目
- 添加依赖
<!-- ======BEGIN 文件上传 ====== -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.6</version>
</dependency>
<!-- ======END 文件上传 ====== -->
- 编写代码
目录结构如下
VsftpdApplication.java
package top.alanlee.template;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class VsftpdApplication {
public static void main(String[] args) {
SpringApplication.run(VsftpdApplication.class, args);
}
}
application.yml
server:
port: 8080
spring:
#配置文件上传器
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
#ftp相关配置
ftp:
address: 192.168.3.100
port: 21
username: ftptest
<