作者:牛牛发的 | 来源:互联网 | 2023-07-10 10:30
项目需要写一个sftp的自动升级程序,查阅了下网上的一些资料,有libssh2+openssl和基于qssh等方法。之前考虑从filezilla源码中参考自己封装,考虑到时间关系就
项目需要写一个sftp的自动升级程序,查阅了下网上的一些资料,有libssh2+openssl和基于qssh等方法。之前考虑从filezilla源码中参考自己封装,考虑到时间关系就选择最快的方式了。基于qssh来封装。实现上传下载,文件列表,上传目录等基本功能,参考filezilla的功能。
sftp服务器搭建,在前一篇文章中已经写过。qssh 很简单,由于是公司项目,只是讲下一些实现细节。源码需要的可以联系。
网上有一些demo,是提取的老版本的源码,下载最新版的对比了下,改动不是太大。
qtcreator源码下载,https://blog.csdn.net/lsfreeing/article/details/73064954
1.SshConnection类用于建立与服务器之间的连接,在连接建立之后,创建QSsh::SftpChannel通道,这里需要注意的是SftpChannel对象和连接是一起的,不同连接不可复用。也就是说如果因为服务器等原因被动断开连接,再次连接需要重新创建对象并初始化。
2.上传或下载任务会返回一个SftpJobId,此id是唯一的,可以和具体文件名绑定,用于记录文件完成的个数。