Development Tip

C # (. NET)에서 SFTP 서버에 파일을 업로드하려면 어떻게해야합니까?

yourdevel 2020. 11. 15. 11:51
반응형

C # (. NET)에서 SFTP 서버에 파일을 업로드하려면 어떻게해야합니까?


업로드 문제에 대한 예외를 발생시키고 진행 상황을 모니터링 할 수있는 SFTP (SSH FTP) 서버에 파일을 업로드 할 수있는 무료 .NET 라이브러리가 있습니까?


아마도 winscp를 스크립트 / 제어 할 수 있습니까?

업데이트 : winscp에는 이제 SFTP, SCP 및 FTPS를 지원 하는 너겟 패키지 로 사용할 수 있는 .NET 라이브러리가 있습니다.


다음 코드는 Rebex SFTP 구성 요소를 사용하여 SFTP 서버에 파일을 업로드하는 방법을 보여줍니다 .

// create client, connect and log in 
Sftp client = new Sftp();
client.Connect(hostname);
client.Login(username, password);

// upload the 'test.zip' file to the current directory at the server 
client.PutFile(@"c:\data\test.zip", "test.zip");

client.Disconnect();

다음과 같이 LogWriter 속성을 사용하여 전체 통신 로그를 파일에 쓸 수 있습니다. 예제 출력 (FTP 구성 요소의 출력이지만 SFTP 출력은 유사 함)은 여기 에서 찾을 수 있습니다 .

client.LogWriter = new Rebex.FileLogWriter(
   @"c:\temp\log.txt", Rebex.LogLevel.Debug); 

또는 다음과 같은 이벤트를 사용하여 통신을 가로 챕니다.

Sftp client = new Sftp();
client.CommandSent += new SftpCommandSentEventHandler(client_CommandSent);
client.ResponseRead += new SftpResponseReadEventHandler(client_ResponseRead);
client.Connect("sftp.example.org");

//... 
private void client_CommandSent(object sender, SftpCommandSentEventArgs e)
{
    Console.WriteLine("Command: {0}", e.Command);
}

private void client_ResponseRead(object sender, SftpResponseReadEventArgs e)
{
    Console.WriteLine("Response: {0}", e.Response);
}

자세한 내용은 자습서를 참조 하거나 평가판을 다운로드 하고 샘플을 확인하십시오 .


.net 프레임 워크 내에서는 이에 대한 해결책이 없습니다.

http://www.eldos.com/sbb/sftpcompare.php 는 무료 옵션 목록을 설명합니다.

가장 좋은 방법은 Granados를 사용하여 SSH를 확장하는 것입니다. http://www.routrek.co.jp/en/product/varaterm/granados.html


불행히도 .NET Framework 자체에는 없습니다. 내 소원은 FileZilla와 통합 할 수있는 것이지만 인터페이스가 노출되지 않는다고 생각합니다. 그들은 내 생각에 스크립팅을 가지고 있지만 분명히 깨끗하지는 않을 것입니다.

SFTP를 수행하는 프로젝트에서 CuteFTP를 사용했습니다. .NET 래퍼를 만든 COM 구성 요소를 노출합니다. 발견 할 수있는 것은 권한입니다. CuteFTP를 설치 한 Windows 자격 증명으로 아름답게 실행되지만 다른 자격 증명으로 실행하려면 DCOM에서 권한을 설정해야합니다.


다른 un-free 옵션은 edtFTPnet / PRO를 시도 하십시오 . SFTP에 대한 포괄적 인 지원이 있으며 필요한 경우 FTPS (물론 FTP)도 지원합니다.

참고 URL : https://stackoverflow.com/questions/86458/how-do-i-upload-a-file-to-an-sftp-server-in-c-sharp-net

반응형