Docker一键启动ftp服务器,Java代码实现上传文件,请收藏

需要脚本源码的同学,

私信“HelloDocker”获取Docker脚本下载地址,

私信“HelloJava”获取Java调用Ftp服务示例代码下载地址。

Docker是一个开源的应用容器引擎,将应用以及依赖打包到一个可移植的镜像中,部署到服务器并运行在Container容器实例中。

vsftpd是一个免费开源的ftp服务器,小巧轻快,支持虚拟用户、带宽限制等功能,搭建FTP服务时经常使用。

在docker-compose.yml中配置启动参数,省去繁琐配置,一键启动。

Docker一键启动ftp服务器,Java代码实现上传文件,请收藏

1,配置docker-compose.yml

指定登录用户密码test/test,配置文件保存路径,启动时自动配置。

version: '3'

services:

ftp:

image: fauria/vsftpd:latest

restart: always

privileged: true

ports:

- "20:20"

- "21:21"

- "21100-21110:21100-21110"

volumes:

- ./files:/home/vsftpd

environment:

- FTP_USER=test

- FTP_PASS=test

- PASV_ADDRESS=127.0.0.1

- PASV_MIN_PORT=21100

- PASV_MAX_PORT=21110

2,启动服务

运行脚本up.sh或者docker-compose up -d

Docker一键启动ftp服务器,Java代码实现上传文件,请收藏

3,浏览器打开页面:ftp://127.0.01/ 账号密码: test/test

Docker一键启动ftp服务器,Java代码实现上传文件,请收藏

Docker一键启动ftp服务器,Java代码实现上传文件,请收藏

4,Java调用FTPClient实现文件上传功能

pom.xml引用依赖

<code><dependency>

    <groupid>commons-net/<groupid>

    <artifactid>commons-net/<artifactid>

    <version>3.6/<version>

/<dependency>/<code>


封装FtpUtil

Docker一键启动ftp服务器,Java代码实现上传文件,请收藏

5,增加单元测试

<code>@Test

public void testUpload() throws IOException {

    String filePath = "readme.md";

    InputStream fileStream = new FileInputStream(new File(filePath));


    boolean ret = FtpUtil.upload("unit-testing", String.format("%d_%s", new Date().getHours(), filePath), fileStream);

    fileStream.close();

    FtpUtil.close();


    Assert.assertTrue(ret);

}/<code>


运行代码,上传文件。


分享到:


相關文章: