Qt 4.6中的FTPS(FTP-SSL)

Qt 4.6中的FTPS(FTP-SSL),qt,ssl,qt4,ftp,openssl,Qt,Ssl,Qt4,Ftp,Openssl,我试图让FTP-SSL与Qt4.6.3一起工作。我已经使用OpenSSL支持编译了Qt。关于Qt的FTPS有什么好的资源吗?QFtp似乎不提供SSL支持。我真的不想创建自己的FTPS实现 //编辑: 我发现了QNetworkAccessManager(ty@frank),但我找不到任何有用的文档或SSL示例。这就是我正在尝试的: QUrl url = QUrl("ftp://localhost/filex.txt"); url.setUserName("root&q

我试图让FTP-SSL与Qt4.6.3一起工作。我已经使用OpenSSL支持编译了Qt。关于Qt的FTPS有什么好的资源吗?QFtp似乎不提供SSL支持。我真的不想创建自己的FTPS实现

//编辑: 我发现了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);
但菲利兹拉不让我联系。FZ控制台显示:

(000035)21.12.2010 17:31:46-(未登录)(127.0.0.1)>用户根目录

(000035)21.12.2010 17:31:46-(未登录)(127.0.0.1)>需要530 SSL

FileZilla配置:

  • 已启用FTP over SSL/TLS支持
  • 已启用TLS上的显式FTP
  • 不允许普通未加密的FTP
  • 为根用户登录强制SSL
我至少希望出现某种类型的
sslErrors
信号,因为用户/pw正常,SSL失败,但我只得到
authenticationRequired
信号


谢谢你的帮助

不幸的是,Qt中没有现成的FTP解决方案

  • QFtp
    实现许多ftp命令 但不支持加密
  • QNetworkAccessManager
    仅支持 基本ftp功能(文件 下载/上传),不支持 ftp情况下的加密。它是 值得一提的是,它确实支持 HTTP加密,这是 它主要是为协议设计的
  • QSslSocket
    实现SSL,但没有 特定协议,如FTP或HTTP
考虑到以上信息,我想到了一个想法,将
QFtp
qsslssocket
混合使用,以获得加密的FTP。问题是
QFtp
类没有允许
QFtp
使用用户提供的套接字的方法。相比之下,
QHttp
有这样一种方法-


底线;根据Thiago Macieira(QNetworkAccessManager的设计师)的说法,方法是使用
QSslSocket

实现FTP协议。你检查过QNetworkAccessManager吗?@frank非常感谢你的提示frank,查看我更新的问题FileZilla中的SSL/TLS配置是什么?@piotr更新了我的答案您最好告诉thiago在Qt 4.8中实现这一点;)非常感谢你!你的回答完全证实了我目前所发现的情况。我不太喜欢重新实现FTP的想法,所以我们会让QFtp或QNetworkAccessManager SSL就绪,或者购买chilkats FTP2库。有人应该提到Qt手册中的FTPS问题—QNetworkAccessManager FTP—和SSL支持意味着FTPS支持。