java sftp 예제

연구에 따르면 Java용 많은 SSH 라이브러리를 종료합니다. 비교를 위해 라이브러리 수를 3개로 줄입니다. JSch, SSHJ 및 아파치의 커먼스 VFS를 선택하여 더 깊이 살펴보세요. 그들 모두는 SFTP를 지원합니다. JSch는 Java의 사실상 표준인 것으로 보입니다. SSHJ는 최신 라이브러리입니다. 그 목표는 SSH에 대한 명확한 자바 API를 가지고하는 것입니다. 후드 아래 는 아파치 SSHD를 사용합니다. 공용 VFS의 목표는 가상 파일 시스템에 대한 명확한 API를 가지는 것이며 SFTP는 지원되는 프로토콜 중 하나입니다.

후드 아래에는 SFTP 프로토콜에 JSch를 사용합니다. 라이브러리는 다음 요구 사항을 다루어야 합니다: 이러한 java SFTP 예제가 SFTP 작업에 도움이 되기를 바랍니다. 나는 때때로이 콘텐츠를 업데이트 계속합니다. 내 게시물을 좋아한다면, 아래의 월간 뉴스 레터를 구독하시기 바랍니다. 몇 주 전에 Java에 대한 일부 SSH 라이브러리를 평가했습니다. 주요 요구 사항은 원격 컴퓨터에서 파일 전송 및 파일 작업입니다. 따라서 SSH, SSH 파일 전송 프로토콜(또는 SFTP)에 기반한 네트워크 프로토콜이 존재한다. 그래서 SFTP를 지원하는 SSH 라이브러리가 필요했습니다. JSch에서는 서버 인증을 구성할 수 있는 두 가지 가능성이 있습니다. 한 가지 가능성은 OpenSSHConfig를 사용하는 것입니다(OpenSSHConfig의 JSch 예제 참조). 또 다른 가능성은 더 쉽습니다.

알려진_hosts 파일의 위치는 JSch 개체에서 직접 설정할 수 있습니다. 여기에 자바에서 중요한 SFTP 작업을 보여 줄 Java SFTP 예제를 나열했습니다. 자바 SDTP의 코드 예제로 뛰어 들기 전에 SFTP가 무엇인지 볼 수 있습니다. Ankit Shah는 익스피디아, 아메리칸 항공 과 같은 국제적으로 유명한 회사에서 근무한 전문 자바 컨설턴트입니다. Ankit은 또한 청구, 뱅킹 및 전자 상거래 도메인에도 능숙합니다. 그는 탁구 애호가, 여행자, 취미 사진 작가 및 훌륭한 수영 선수입니다. 이제 예제를 더 진행해 보겠습니다. 원격 리눅스 컴퓨터의 폴더 “/tmp/test”에 있는 모든 파일을 나열하려고 합니다. 그래서 우리는 그것을 할 ChannelSftp 개체를 사용합니다. 이 비교의 전체 소스 코드 예제는 Github에서 호스팅됩니다.

위의 모든 예에서 볼 수 있듯이 ChannelSftp, 세션 및 채널 개체를 분리했습니다. 또한 JSCH 라이브러리에서 throw하거나 catch해야 하는 예외를 처리합니다. JSch의 인증 구성은 공용 VFS와 유사합니다. 사용할 인증 의 종류에 따라 다릅니다. 공개 키 인증에 대한 개인 키는 JSch 개체에서 구성되어야 하며 암호 인증에 대한 암호는 세션 개체에 설정해야 합니다. 둘 다 JSch 개체가 Session 개체를 가져옵니다 때 사용자 이름이 설정됩니다. 이제 로컬 컴퓨터에 “C:/test/HelloWorld.txt”의 파일이 있습니다. 이 파일을 원격 Linux 컴퓨터에서 “/tmp/test”로 전송하려고 합니다. 아래 코드를 사용하면 하나 이상의 파일을 보낼 수 있습니다.

Jsch에서 ChannelExec은 SSH를 통해 셸 명령을 실행합니다. 처음에는 명령이 채널에 설정된 다음 채널을 시작해야 합니다. SSHJ보다 직관적이지 않습니다. JSch의 SFTP클라이언트 ChannelSFTP에는 파일 작업 방법도 있습니다. 대부분의 파일 작업은 이 채널에서 지원됩니다.

This entry was posted by in Uncategorized.