2010-12-21 5 views
5

Qt 4.6.3에서 FTP-SSL을 작동 시키려고합니다. 나는 이미 OpenSSL을 지원하는 Qt를 컴파일했다. Qt에서 FTPS에 관한 좋은 자료가 있습니까? QFTP가 SSL 지원을 제공하지 않는 것 같습니다. 나는 정말로 내 자신의 FTPS 구현을 만들고 싶지 않다.Qt 4.6의 FTPS (FTP-SSL)

// 편집 : QNetworkAccessManager (ty @ frank)를 발견했지만 유용한 문서 또는 SSL 관련 예제를 찾을 수 없습니다. 그게 내가 무엇을 하려는지 :

QUrl url = QUrl("ftp://localhost/filex.txt"); 
url.setUserName("root"); 
url.setPassword("root"); 
QNetworkRequest request(url); 
QSslConfiguration SslConfiguration(QSslConfiguration::defaultConfiguration()); 
request.setSslConfiguration(SslConfiguration); 
manager->get(request); 

그러나 FileZilla는 연결시키지 않을 것이다. FZ 콘솔은 말한다 :

(000035) 2010년 12월 21일 17시 31분 46초 - 2010년 12월 21일 17시 31분 (127.0.0.1)> 사용자 루트

(000035) (로그인하지) : 46 - (로그인하지 않은) 530 SSL은

FileZilla의 구성 요구 (127.0.0.1)> : SSL 위에

  • FTP를/TLS 지원 TLS 위에
  • 명시 FTP를 사용할
  • 일반 암호화되지 않은 FTP 뿌리에 대한 강제
  • SSL 사용자/PW 괜찮 및 SSL 실패 이후 적어도 sslErrors 신호의 일종을 기대

로그인 허용 가능하지만, 난 단지 authenticationRequired 신호를 받고 있어요 .

도움 주셔서 감사합니다.

+0

QNetworkAccessManager를 확인하셨습니까? –

+0

@frank 솔직히 힌트를 주셔서 감사합니다. 업데이트 된 질문 – atamanroman

+0

FileZilla의 SSL/TLS 구성은 무엇입니까? –

답변

4

불행히도 Qt에는 FTPS를위한 솔루션이 없습니다.

  • QFtp 많은 FTP를 명령 만 암호화를 지원하지 않습니다 구현합니다.
  • QNetworkAccessManager은 기본 ftp 기능 ( 다운로드/업로드 파일) 만 지원하며 ftp의 경우에는 암호화를 지원하지 않습니다. 그것은 그것이 주로를 위해 설계 년대 프로토콜 HTTP에 대한 암호화를 지원하지 않습니다 언급 가치가있다.
  • QSslSocket 아이디어가 암호화 된 FTP를 얻을 수 QSslSocketQFtp을 혼합 떠오르는 SSL하지만, FTP와 같은 어떤 특정 프로토콜이나 고려에 정보 위의 촬영 HTTP

을 구현합니다. 문제는 QFtp 클래스에 QFtp 사용자가 제공하는 소켓을 사용할 수있는 방법이 없다는 것입니다. 을 비교 한 QHttp으로 이러한 방법 갖는다 - int QHttp::setSocket(QTcpSocket * socket)

순익; Thiago Macieira (디자이너 QNetworkAccessManager)에 따르면 이동 방법은 QSslSocket을 사용하여 FTP 프로토콜을 구현하는 것입니다.

+0

당신은 QT 4.8에 대해 이것을 구현하기 위해 thiago에 더 잘 알려야합니다;) – ismail

+0

대단히 감사합니다! 당신의 대답은 내가 지금까지 발견 한 것을 절대적으로 확인합니다. FTP를 다시 구현한다는 생각이 맘에 들지 않아서 QFtp 또는 QNetworkAccessManager를 SSL-Ready로 만들거나 chilkats FTP2 라이브러리를 구입할 것입니다. Qt 설명서에서 FTPS 문제 - QNetworkAccessManagers FTP 및 SSL 지원은 FTPS 지원을 의미합니다. – atamanroman