2010-12-21 14 views
5

में एफटीपीएस (एफ़टीपी-एसएसएल) मैं क्यूटी 4.6.3 के साथ काम करने के लिए एफ़टीपी-एसएसएल प्राप्त करने की कोशिश कर रहा हूं। मैंने ओपनएसएसएल समर्थन के साथ क्यूटी को संकलित कर लिया है। क्या क्यूटी के साथ एफटीपीएस के बारे में कोई अच्छा संसाधन है? ऐसा लगता है कि क्यूएफटीपी एसएसएल समर्थन प्रदान नहीं करता है। मैं वास्तव में अपना खुद का एफटीपीएस कार्यान्वयन नहीं बनाना चाहता हूं।क्यूटी 4.6

// संपादित करें: मैंने 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 अभ्यस्त मुझे संपर्क कर सकते हैं: मैं क्या कोशिश कर रहा हूँ thats। FZ कंसोल का कहना है:

(000035) 21.12.2010 17:31:46 - (लॉग इन नहीं) (127.0.0.1)> उपयोगकर्ता जड़

(000035) 21.12.2010 17:31: 46 - (लॉग इन नहीं) (127.0.0.1)> 530 एसएसएल आवश्यक

FileZilla विन्यास:

  • एफ़टीपी SSL पर/TLS समर्थन टीएलएस अधिक सक्षम
  • स्पष्ट एफ़टीपी
  • सादा एन्क्रिप्ट नहीं किए गए एफ़टीपी अनुमति नहीं
  • एसएसएल जड़ों के लिए मजबूर के लिए लॉग इन

मैं कम से कम sslErrors संकेतों के कुछ प्रकार उम्मीद करेंगे के बाद से उपयोगकर्ता/पीडब्लू ठीक है और एसएसएल विफल रहता है सक्षम है, लेकिन मैं केवल authenticationRequired संकेत मिल रहा है ।

आपकी मदद के लिए धन्यवाद!

+0

क्या आपने QNetworkAccessManager की जांच की है? –

+0

@ फ्रैंक आपके संकेत के लिए बहुत बहुत धन्यवाद, मेरा अद्यतन प्रश्न देखें – atamanroman

+0

FileZilla में आपका SSL/TLS कॉन्फ़िगरेशन क्या है? –

उत्तर

4

दुर्भाग्यवश क्यूटी में एफटीपीएस के लिए बॉक्स समाधान से बाहर नहीं है।

  • QFtp कई एफ़टीपी आदेश लेकिन एन्क्रिप्शन का समर्थन नहीं करता लागू करता है।
  • QNetworkAccessManager केवल बुनियादी एफ़टीपी कार्य (फ़ाइल डाउनलोड/अपलोड) का समर्थन करता है और एफ़टीपी के मामले में एन्क्रिप्शन का समर्थन नहीं करता है, या तो। यह उल्लेख करने योग्य है, यह HTTP के लिए एन्क्रिप्शन का समर्थन करता है, जो प्रोटोकॉल है जो इसे मुख्य रूप से डिज़ाइन किया गया है।
  • QSslSocket एसएसएल लेकिन एफ़टीपी की तरह कोई विशिष्ट प्रोटोकॉल या HTTP

को ध्यान में उपरोक्त जानकारी ले रहा है लागू करता है एक विचार QSslSocket साथ QFtp मिश्रण करने एन्क्रिप्टेड एफ़टीपी प्राप्त करने के लिए मन में आता है। समस्या QFtp कक्षा में कोई विधि नहीं है जो QFtp उपयोगकर्ता द्वारा प्रदान की गई सॉकेट का उपयोग करने की अनुमति देगी। तुलनात्मक रूप से QHttp में ऐसी विधि है - int QHttp::setSocket(QTcpSocket * socket)

नीचे पंक्ति; थियागो मासीइरा के अनुसार (के डिजाइनर) जाने का तरीका QSslSocket का उपयोग करके एफ़टीपी प्रोटोकॉल को लागू करना है।

+0

अपडेट किया है आप क्यूटी 4.8 के लिए इसे लागू करने के लिए बेहतर थियागो को बताएं;) – ismail

+0

बहुत बहुत धन्यवाद! आपका जवाब पूरी तरह से पुष्टि करता है कि मुझे अब तक क्या पता चला है। मुझे एफ़टीपी को बहुत अधिक कार्यान्वित करने के विचार को पसंद नहीं है, इसलिए हम QFtp या QNetworkAccessManager SSL-Ready बनायेंगे या chilkats FTP2 लाइब्रेरी खरीद लेंगे। किसी को यह उल्लेख करना चाहिए कि क्यूटी मैनुअल में एफटीपीएस मुद्दे - QNetworkAccessManagers एफ़टीपी- और एसएसएल-सपोर्ट एफटीपीएस समर्थन का तात्पर्य है। – atamanroman

संबंधित मुद्दे