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
'Development Tip' 카테고리의 다른 글
C ++ 11에서 메모리를 정렬하는 권장 방법은 무엇입니까? (0) | 2020.11.15 |
---|---|
스레드 안전성을위한 단위 테스트? (0) | 2020.11.15 |
가상 키보드가 활성화 된 경우 화면 스타일링 (0) | 2020.11.15 |
TypeScript 용 Eclipse 플러그인? (0) | 2020.11.15 |
matplotlib에서 플롯, 축 또는 그림을 사용하여 플롯을 그리는 것의 차이점은 무엇입니까? (0) | 2020.11.15 |