[java] Apache Commons Net과의 파일 업로드

이번에는 Apache Commons Net 라이브러리를 사용하여 Java 언어로 파일을 FTP 서버에 업로드하는 방법에 대해 알아보겠습니다.

Apache Commons Net 라이브러리

Apache Commons Net 라이브러리는 Java 언어로 구현된 네트워크 프로토콜 클라이언트를 개발하는 데 유용한 일련의 클래스와 메서드를 제공합니다. FTP, SMTP, POP3, IMAP 등 다양한 프로토콜을 지원하여 네트워크 통신 관련 작업을 간편하게 수행할 수 있습니다.

Maven을 통한 라이브러리 의존성 추가

먼저 Maven 프로젝트의 pom.xml 파일에 Apache Commons Net 라이브러리의 의존성을 추가해야 합니다. 아래는 의존성을 추가하는 예시입니다.

<dependency>
    <groupId>commons-net</groupId>
    <artifactId>commons-net</artifactId>
    <version>3.6</version>
</dependency>

의존성을 추가한 후 Maven을 이용해 프로젝트를 업데이트해주세요.

파일 업로드 구현

이제 파일 업로드를 구현해보겠습니다. 아래는 Apache Commons Net을 사용하여 FTP 서버에 파일을 업로드하는 Java 코드의 예시입니다.

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class FTPFileUploader {
    public static void main(String[] args) {
        String server = "ftp.example.com";
        int port = 21;
        String user = "username";
        String pass = "password";

        FTPClient ftpClient = new FTPClient();
        try {
            ftpClient.connect(server, port);
            ftpClient.login(user, pass);
            ftpClient.enterLocalPassiveMode();

            File localFile = new File("localfile.txt");
            String remoteFile = "remotefile.txt";
            FileInputStream inputStream = new FileInputStream(localFile);

            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
            boolean uploaded = ftpClient.storeFile(remoteFile, inputStream);
            inputStream.close();

            if (uploaded) {
                System.out.println("파일 업로드 성공!");
            } else {
                System.out.println("파일 업로드 실패!");
            }

            ftpClient.logout();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (ftpClient.isConnected()) {
                    ftpClient.disconnect();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
}

위 코드에서 주요한 부분은 FTPClient 클래스를 사용하여 FTP 서버에 연결하고 파일을 업로드하는 부분입니다.

마치며

Apache Commons Net 라이브러리를 사용하여 Java로 FTP 서버에 파일을 업로드하는 방법에 대해 알아보았습니다. 이를 활용하여 네트워크 프로토콜을 이용한 다양한 작업을 개발할 수 있을 것입니다.

참고 자료