728x90
반응형
SMALL
728x90
반응형
LIST
728x90
반응형
SMALL

■ C#에서 WinSCP를 이용하여 sFTP를 접속하는 방법

1. 인터넷에서 WinSCP를 다운로드한다. (https://winscp.net/eng/download.php)

 

2. 접속하면 아래 이미지와 같이 나오는데 사각형 부분을 눌러 설치한다.

 

3. 설치된 경로에 가서 WinSCP.exe, WinSCPnet.dll를 복사한다. 그리고 C#으로 만든 프로그램 실행파일 위치로 옮겨준다.

    실행하는 데 있어, 따로 dll을 모아놓은 곳이 있으면 그쪽으로 옮겨준다. (사용자들이 프로그램 만든 구조에 따라 위치가 다름)

 

4. 아래와 같은 코드를 작성한다.

// 서버 접속

Session session = new Session();

SessionOptions session_options = new SessionOptions();

 

session.ExecutablePath = @"D:\WinSCP.exe";               // WinSCP.exe 가 있는 경로

 

session_options.Protocol = Protocol.Sftp;

session_options.HostName = Host;                                  // 서버의 Host 넣기

session_options.PortNumber = Port;                                // 서버의 Port 넣기

session_options.UserName = UserName;                         // 서버의 UserName 넣기

session_options.Password = Password;                            // 서버의 Password 넣기

session_options.SshHostKeyFingerprint = FingerPrint;    // 서버의 FingerPrint 넣기

 

session.Open(session_options);                                        // 접속 완료

 

session.GetFiles(서버파일경로, 로컬파일경로, false).Check();    // Download

session.PutFiles(로컬파일경로, 서버파일경로, false).Check();    // Upload

 

// Download 하지 않고, 이미지 바로 가져오는 방법

using (Stream remoteStream = session.GetFile(RemoteFullPath))    // RemoteFullPath : 이미지 파일이 있는 경로

using (MemoryStream ms = new MemoryStream())

{

    remoteStream.CopyTo(ms);

    ms.Position = 0;

 

    Image imgReturn = Image.FromStream(ms);

}

728x90
반응형
LIST

+ Recent posts