Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 제이쿼리
- Eclipse
- html
- 주식
- 맥
- linux
- codeigniter
- 오라클
- 7월 공모주 청약 일정
- 6월 공모주 청약 일정
- JavaScript
- Stock ipo
- 리눅스
- Oracle
- IPO
- 공모주
- 공모주 청약 일정
- SQL
- 자바
- 공모주 청약
- MYSQL
- jquery
- 자바스크립트
- 주식 청약 일정
- java
- php
- css
- 코드이그나이터
- 주식 청약
- Stock
Archives
- Today
- Total
개발자의 끄적끄적
[java] SFTP 파일업로드/다운로드 [펌] 본문
728x90
반응형
[java] SFTP 파일업로드/다운로드 [펌]
프로젝트 진행중 sftp를 통한 파일 업로드를 해야되는 부분이 있어서
참고하고자 퍼왔습니다!
유용하게 참고하겠습니다.
다른분들도 개발에 도움들 되시길 바래요!
출처는 아래 명시했습니다!!
SFTP 파일업로드/다운로드
SFTP 서버에 연결하여 파일다운로드/업로드하는 소스입니다.
SFTP는 기존의 FTP 에서 보안(secure)을 강화한것으로 기본포트가 FTP는 21번이지만 SFTP는 22번입니다.
아래 사이트에서 jar를 받아서 사용하시면 됩니다.
1) SFTP 서버 접속
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
import cres.com.context.ApplicationContextProvider;
public class FTPUtil{
private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
private Session session = null;
private Channel channel = null;
private ChannelSftp channelSftp = null;
// SFTP 서버연결
public void init(){
String url = "...";
String user = "...";
String password = "...";
System.out.println(url);
//JSch 객체 생성
JSch jsch = new JSch();
try {
//세션객체 생성 ( user , host, port )
session = jsch.getSession(user, url);
//password 설정
session.setPassword(password);
//세션관련 설정정보 설정
java.util.Properties config = new java.util.Properties();
//호스트 정보 검사하지 않는다.
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
//접속
session.connect();
//sftp 채널 접속
channel = session.openChannel("sftp");
channel.connect();
} catch (JSchException e) {
e.printStackTrace();
}
channelSftp = (ChannelSftp) channel;
}
// 단일 파일 업로드
public void upload( String dir , File file){
FileInputStream in = null;
try{ //파일을 가져와서 inputStream에 넣고 저장경로를 찾아 put
in = new FileInputStream(file);
channelSftp.cd(dir);
channelSftp.put(in,file.getName());
}catch(SftpException se){
se.printStackTrace();
}catch(FileNotFoundException fe){
fe.printStackTrace();
}finally{
try{
in.close();
} catch(IOException ioe){
ioe.printStackTrace();
}
}
}
// 단일 파일 다운로드
public InputStream download(String dir, String fileNm){
InputStream in = null;
String path = "...";
try{ //경로탐색후 inputStream에 데이터를 넣음
channelSftp.cd(path+dir);
in = channelSftp.get(fileNm);
}catch(SftpException se){
se.printStackTrace();
}
return in;
}
// 파일서버와 세션 종료
public void disconnect(){
channelSftp.quit();
session.disconnect();
}
출처: https://javacpro.tistory.com/22 [버물리의 IT공부]
반응형
'개발 > java & jsp' 카테고리의 다른 글
[JAVA] 자바 MYSQL 삽입,삭제,수정,검색 [펌] (0) | 2020.01.11 |
---|---|
[java] SFTP 파일 업로드, 다운로드 구현 소스 [펌] (0) | 2020.01.11 |
[java] 이클립스에 JAR 파일 추가하기 [펌] (0) | 2020.01.10 |
[JAVA] 자바 FTP 파일 전송 [펌] (0) | 2020.01.09 |
[Java] 문자열 붙이기(Concat, StringBuffer(Append)) 사용법 & 예제 (0) | 2020.01.04 |
Comments