서로 다른 서버에 파일 업로드

2021. 12. 14. 18:04·개발중/Java
728x90
반응형

🖤 글이 도움이 되었다면 유튜브 클릭 해주세요 🖤

A1 개발 서버와 A2 의 운영 서버가 같이 구동 될 때,

각각의 서버에서 업로드 받은 파일을 B1 에 업로드 시킨 후 B1 에서 주기적으로 프로세스를 돌리려고 한다.

 

다영 선배가 알려준 참고 사이트 


sftp를 활용하기 위해서는 jsch 라이브러리가 필요.

🟡 maven 

 

<dependency>
	<groupId>com.jcraft</groupId>
	<artifactId>jsch</artifactId>
	<version>0.1.55</version>
</dependency>


 

🟡 프로세스 코드

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;


  // 다른서버 SSH 전송
@SuppressWarnings("finally")
public String sftpConnect(String fileName) {
    String rfileName = "";
    try {
    
      //파일을 이동시키고자 하는 위치
      String des = "/root/"; 
      
       //파일이 존재 하는 위치
      String src = "/home/tomcat/webapps/Anticall/upload/"; 
      
      
      JSch jsch = new JSch();
      
      //user, ip, port
      Session session = jsch.getSession("user", "192.168.xxx.xxx", 22);  
      session.setConfig("StrictHostKeyChecking", "no");
      
      //이동시킬 서버의 password
      session.setPassword("password");  

      session.connect();
      Channel channel = session.openChannel("sftp");
      channel.connect();
      ChannelSftp sftpChannel = (ChannelSftp) channel;
      sftpChannel.cd(des); 
      File file = new File(src+fileName);
      FileInputStream fis = new FileInputStream(file);
      sftpChannel.put(fis, file.getName());
      fis.close();

      sftpChannel.disconnect();
      channel.disconnect();
      session.disconnect();   

      rfileName = file.getName();
    } catch(Exception e) {
      logger.error("Exception:",e);
    } finally {
      return rfileName;
    }   
}

▶ StrictHostKeyChecking

 

StrictHostKeyChecking no를 추가하면 접속하는 모든 호스트에 대해 Key 확인을 하지 않습니다.


▶ 선배님 ! SMTP 는 25 니까 25번 포트 이용하면 되나요 ?

 

이메일용 포트가 smtp라고해서 tcp 25번쓰고 

실제로 putty랑 파일질라는 ssh방식이라서 22포트를 사용해 ㅎㅎ 

mysql 포트는 일반적으로 3306쓰고 ㅎㅎ


 

728x90
반응형
저작자표시 (새창열림)

'개발중 > Java' 카테고리의 다른 글

java 에서 현재 URL 가져오기  (0) 2022.01.12
JAVA 코드 저장시 컴파일 (compile) 처리 ❗❗❗  (2) 2021.12.30
MultipartFile 파일 경로 가져오기  (0) 2021.12.14
특정 List<vo> 의 seq 를 ',' 로 join  (0) 2021.09.14
JAVA MAP => JS MAP 사용  (0) 2021.08.24
'개발중/Java' 카테고리의 다른 글
  • java 에서 현재 URL 가져오기
  • JAVA 코드 저장시 컴파일 (compile) 처리 ❗❗❗
  • MultipartFile 파일 경로 가져오기
  • 특정 List<vo> 의 seq 를 ',' 로 join
Binsoo
Binsoo
내 트러블 슈팅
  • Binsoo
    정수빈 기술블로그임.
    Binsoo
  • 전체
    오늘
    어제
    • 빈수 개발자 개발 일기 (932) N
      • 개발중 (634) N
        • Spring Boot (95)
        • Spring Security (2)
        • Spring Batch (6)
        • Spring Boot & Redis (13)
        • Java Persistence API (JPA) (28)
        • Web (42)
        • Rest Api (7)
        • Spring Concurrency Control (3)
        • Redis (8)
        • Kubernetes (k8s) (4)
        • MYSQL (35)
        • AirFlow (15)
        • Docker (2)
        • Git (22)
        • Linux (9)
        • JSON Web Tokens (JWT) (4)
        • Troubleshooting (87)
        • Swagger (0)
        • Vue.js (52)
        • Java (74)
        • html (12)
        • C (5)
        • jQuery (15)
        • JavaServer Pages (JSP) (17)
        • Arduino (1)
        • JavaScript (35)
        • Amazon Web Services (AWS) (11)
        • Algorithm (9)
        • 참고 기능 (18) N
        • mongo (2)
      • PROJECT (27)
        • 스프링부트+JPA+몽고 API 개발 (3)
        • MINI (2)
        • 게시판 (3)
        • vue 프로젝트 (1)
        • JPA 사이드 프로젝트 기록 (17)
      • TEAM STUDY (156)
        • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (8)
        • 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (12)
        • NAVER DEVELOPER (4)
        • LINUX (23)
        • PYTHON (19)
        • SERVER (8)
        • 알고리즘 코딩 테스트 스터디 (31)
        • 쿠버네티스 (40)
        • 대세는 쿠버네티스 [초급~중급] (11)
      • BOOK (0)
      • 자격증 (61)
        • 리눅스 1급 - 필기 기록 (19)
        • 네트워크 관리사 (2)
        • 네트워크 관리사 2급 - 실기 기록 (21)
        • 네트워크 관리사 2급 - 필기 기록 (16)
        • 정보처리 (2)
      • 직장인 대학원 (17)
        • 기록 (1)
        • 캐글 스터디 (3)
        • R (12)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    REST API
    파이썬 알고리즘
    리눅스 마스터 1급 정리
    쿠버네티스 스터디
    리눅스 마스터 요약
    리눅스 마스터
    네트워크 관리사 요약
    jpa
    네트워크 관리사 실기
    docker
    Spring
    java
    파이썬
    스프링
    네트워크 관리사 2급
    네트워크 관리사 학점
    VUE
    redis
    네트워크 관리사
    BackendDevelopment
    git
    리눅스 마스터 1급 요약
    네트워크 관리사 자격증
    Git 저장소
    알고리즘
    쿠버네티스
    리눅스 1급 요약
    네트워크 관리사 2급 실기
    springboot
    리눅스 마스터 1급
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Binsoo
서로 다른 서버에 파일 업로드
상단으로

티스토리툴바