사용자 도구

사이트 도구


java:ftp

Java FTP

apache commons net FTPClient

Passive Mode

  • FTP는 port 를 21번 명령전송 포트 22번 데이터 전송 포트 두개를 여는데, 이 중에 포트 한개만 열려있을 때 passive 모드로 변경한다.
FTPClient.enterLocalPassiveMode();

Binary File 전송

FTPClient.setFileType(FTP.BINARY_FILE_TYPE);

MockFtpServer

  • MockFtpServer FTP 서버를 mocking하여 테스트를 할 수 있다.
public class FtpClientIntegrationTest {
 
    private FakeFtpServer fakeFtpServer;
 
    private FtpClient ftpClient;
 
    @Before
    public void setup() throws IOException {
        fakeFtpServer = new FakeFtpServer();
        fakeFtpServer.addUserAccount(new UserAccount("user", "password", "/data"));
 
        FileSystem fileSystem = new UnixFakeFileSystem();
        fileSystem.add(new DirectoryEntry("/data"));
        fileSystem.add(new FileEntry("/data/foobar.txt", "abcdef 1234567890"));
        fakeFtpServer.setFileSystem(fileSystem);
        fakeFtpServer.setServerControlPort(0);
 
        fakeFtpServer.start();
 
        ftpClient = new FtpClient("localhost", fakeFtpServer.getServerControlPort(), "user", "password");
        ftpClient.open();
    }
 
    @After
    public void teardown() throws IOException {
        ftpClient.close();
        fakeFtpServer.stop();
    }
}

참조

java/ftp.txt · 마지막으로 수정됨: 2019/03/22 17:17 저자 kwon37xi