SFTP에 접속하여 파일을 업로드하고 다운로드하는 간단한 예제 코드
2023. 5. 26. 06:59ㆍJAVA
728x90
반응형
[1]
먼저, Maven 또는 Gradle과 같은 의존성 관리 도구를 사용하여 JSch를 프로젝트에 추가해야 합니다.
[2]
Maven을 사용하는 경우 pom.xml 파일에 다음 종속성을 추가합니다.
<dependencies>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
</dependencies>
Gradle을 사용하는 경우 build.gradle 파일에 다음 종속성을 추가합니다.
dependencies {
implementation 'com.jcraft:jsch:0.1.55'
}
[3]
이제 다음과 같이 Java 코드를 작성할 수 있습니다.
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class SftpExample {
private static final String HOST = "sftp.example.com";
private static final int PORT = 22;
private static final String USERNAME = "your_username";
private static final String PASSWORD = "your_password";
public static void main(String[] args) {
JSch jsch = new JSch();
Session session = null;
ChannelSftp channel = null;
try {
// SFTP 세션 열기
session = jsch.getSession(USERNAME, HOST, PORT);
session.setPassword(PASSWORD);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
// SFTP 채널 열기
channel = (ChannelSftp) session.openChannel("sftp");
channel.connect();
// 로컬 파일 업로드
String localFilePath = "/path/to/local/file.txt";
String remoteDirectory = "/path/to/remote/";
channel.put(localFilePath, remoteDirectory + "file.txt");
// 로컬 파일 다운로드
String remoteFilePath = "/path/to/remote/file.txt";
String localDirectory = "/path/to/local/";
channel.get(remoteFilePath, localDirectory + "file.txt");
} catch (Exception e) {
e.printStackTrace();
} finally {
// 리소스 정리
if (channel != null && channel.isConnected()) {
channel.disconnect();
}
if (session != null && session.isConnected()) {
session.disconnect();
}
}
}
}
[4]
위의 코드에서 HOST, PORT, USERNAME, PASSWORD 변수를 사용자의 SFTP 서버 정보에 맞게 수정해야 합니다.
또한 업로드할 로컬 파일의 경로(localFilePath)와 SFTP 서버의 원격 디렉토리 경로(remoteDirectory)를 수정해야 합니다.
이 코드는 로컬 파일을 SFTP 서버로 업로드한 다음, SFTP 서버의 파일을 로컬로 다운로드하는 예제입니다.
업로드 및 다운로드할 파일의 경로를 알맞게 수정하십시오.
[5]
JSch는 Java에서 SSH 관련 작업을 수행하는 라이브러리이므로 SFTP 이외의 SSH 작업도 수행할 수 있습니다.
자세한 내용은 JSch의 문서를 참조하시기 바랍니다.
728x90
반응형
'JAVA' 카테고리의 다른 글
Java(자바)에서 동적 변수 처리하는 방법 (1) | 2024.07.14 |
---|---|
자바로 엑셀 읽고 쓰는 프로그램 예제 코드 (0) | 2023.05.28 |
자바 프로그램 실행 가능한 jar 파일 만들어서 실행시키는 방법 (0) | 2023.05.27 |
Java(자바) 에서 동적 변수 처리하는 다른 방법들 (0) | 2023.04.15 |
Java(자바) 에서 동적 변수 처리 해 보자. (0) | 2020.05.27 |