티스토리 뷰
SFTP를 이용한 파일전송에 대해서 알아보도록 하겠습니다. 간단한 전송 소스 예제를 소개 해드립니다.
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; 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; /** * 서버와 연결하여 파일을 업로드하고, 다운로드한다. * */ public class SFTPClient{ private Session session = null; private Channel channel = null; private ChannelSftp channelSftp = null; /** * 서버와 연결에 필요한 값들을 가져와 초기화 시킴 * * @param host * 서버 주소 * @param userName * 접속에 사용될 아이디 * @param password * 비밀번호 * @param port * 포트번호 */ public void init(String host, String userName, String password, int port) throws JSchException,Exception { JSch jsch = new JSch(); try { session = jsch.getSession(userName, host, port); session.setPassword(password); java.util.Properties config = new java.util.Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); session.connect(); channel = session.openChannel("sftp"); channel.connect(); } catch (JSchException e) { e.printStackTrace(); } channelSftp = (ChannelSftp) channel; } /** * 하나의 파일을 업로드 한다. * * @param dir * 저장시킬 주소(서버) * @param file * 저장할 파일 */ public boolean upload(String dir, File file) throws SftpException,FileNotFoundException,Exception{ FileInputStream in = null; try { in = new FileInputStream(file); channelSftp.cd(dir); channelSftp.put(in, file.getName()); return true; } catch (SftpException e) { e.printStackTrace(); return false; } catch (FileNotFoundException e) { e.printStackTrace(); return false; } catch (Exception e) { // TODO: handle exception return false; } finally { if (channelSftp.isConnected()) { channelSftp.disconnect(); } try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * 하나의 파일을 다운로드 한다. * * @param dir * 저장할 경로(서버) * @param downloadFileName * 다운로드할 파일 * @param path * 저장될 공간 */ public void download(String dir, String downloadFileName, String path) { InputStream in = null; FileOutputStream out = null; try { channelSftp.cd(dir); in = channelSftp.get(downloadFileName); } catch (SftpException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { out = new FileOutputStream(new File(path)); int i; while ((i = in.read()) != -1) { out.write(i); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { out.close(); in.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * 서버와의 연결을 끊는다. */ public void disconnection() { channelSftp.quit(); } } | cs |
'IT > JAVA' 카테고리의 다른 글
[JAVA]MD5 사용하기 (0) | 2016.11.18 |
---|---|
[JAVA] BASE64 인코딩,디코딩 사용하기 (0) | 2016.11.16 |
[JAVA]FTP 파일 업로드 하기 (0) | 2016.11.10 |
[JAVA]split()을 이용한 문자열 자르기 (0) | 2016.11.03 |
[JAVA]Collections.sort를 이용한 List 정렬 방법 (0) | 2016.10.30 |
댓글
TAG
- 다렉
- 투표소
- 사제 쿨러
- 초대장
- 테일즈 오브 베르세리아
- 1800TI
- 단면폭
- ONLINE JSON
- 래디어 구조
- unbound prefix
- 라이젠
- Looper.prepare()
- 한글 패치
- 배달 지연
- GPU 출시
- 티스토리 초대장
- 한글패치
- 림의 외경
- 19대 선거
- 포아너
- 블로그 개설
- GPU 출시가격
- JSON PASER
- 예약메일 전송
- 하이엔드 그래픽카드
- 민주당 대선 후보
- 국기 다는 시간
- 7700K
- 1800X
- 오픈베타
최근에 올라온 글
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
공지사항
반응형