package cn.iocoder.yudao.module.infra.framework.file.core.ftp; import cn.hutool.core.io.resource.ResourceUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.extra.ftp.FtpMode; import cn.iocoder.yudao.module.infra.framework.file.core.client.ftp.FtpFileClient; import cn.iocoder.yudao.module.infra.framework.file.core.client.ftp.FtpFileClientConfig; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** * {@link FtpFileClient} 集成测试 * * @author 芋道源码 */ public class FtpFileClientTest { // docker run -d \ // -p 2121:21 -p 30000-30009:30000-30009 \ // -e FTP_USER=foo \ // -e FTP_PASS=pass \ // -e PASV_ADDRESS=127.0.0.1 \ // -e PASV_MIN_PORT=30000 \ // -e PASV_MAX_PORT=30009 \ // -v $(pwd)/ftp-data:/home/vsftpd \ // fauria/vsftpd @Test @Disabled public void test() { // 创建客户端 FtpFileClientConfig config = new FtpFileClientConfig(); config.setDomain("http://127.0.0.1:48080"); config.setBasePath("/home/ftp"); config.setHost("127.0.0.1"); config.setPort(2121); config.setUsername("foo"); config.setPassword("pass"); config.setMode(FtpMode.Passive.name()); FtpFileClient client = new FtpFileClient(0L, config); client.init(); // 上传文件 String path = IdUtil.fastSimpleUUID() + ".jpg"; byte[] content = ResourceUtil.readBytes("file/erweima.jpg"); String fullPath = client.upload(content, path, "image/jpeg"); System.out.println("访问地址:" + fullPath); if (false) { byte[] bytes = client.getContent(path); System.out.println("文件内容:" + bytes); } if (false) { client.delete(path); } } }