- 概述
浪潮信息KOS是浪潮信息基于Linux Kernel、OpenAnolis等开源技术自主研发的一款服务器操作系统,支持x86、ARM等主流架构处理器,性能和稳定性居于行业领先地位,具备成熟的 CentOS 迁移和替换能力,可满足云计算、大数据、分布式存储、人工智能、边缘计算等应用场景需求。详细介绍见官网链接https://www.ieisystem.com/kos/product-kos-xq.thtml?id=12126。
qftp(QFtp)是Qt框架中用于实现FTP(文件传输协议)客户端功能的一个类,尽管在Qt5及以后版本中,QFtp类被官方废弃,但它仍然在社区中维护,并且对于需要特定FTP功能的开发者来说,QFtp仍然是一个有用的工具。以下是QFtp的主要功能介绍,
FTP客户端功能
连接与登录:QFtp类允许用户连接到FTP服务器,并使用提供的用户名和密码进行登录。
目录操作:用户可以使用QFtp来切换FTP服务器上的工作目录,列出目录中的文件和文件夹,以及创建新的文件夹(mkdir)和删除文件夹(rmdir)。
文件操作:QFtp支持文件的上传(put)和下载(get),以及删除文件(remove)和重命名文件(rename)。
异步工作模式
QFtp是异步工作的,这意味着它不会阻塞主线程的执行。当执行FTP操作时,如连接、登录、文件传输等,QFtp会立即返回,并将操作调度到事件循环中以供后续执行。
操作的结果通过信号和槽机制进行报告。例如,当文件传输开始时,会发出commandStarted()信号;当文件传输完成时,会发出commandFinished()信号,并带有表示操作是否成功的状态信息。
丰富的API和命令
QFtp提供了一系列用于FTP操作的API,如connectToHost()、login()、close()、list()、cd()、get()、put()、remove()、mkdir()、rmdir()、rename()等。
这些命令都会返回一个唯一的标识符,允许开发者跟踪当前正在执行的命令。
错误处理
如果在执行FTP操作过程中发生错误,QFtp会通过相应的信号报告错误信息。开发者可以使用error()和errorString()函数来获取有关错误的详细信息。
传输模式
QFtp支持主动和被动两种文件传输模式。默认情况下,QFtp使用被动模式进行文件传输。开发者可以通过调用setTransferMode()函数来设置所需的传输模式。
代理服务器支持
QFtp还允许用户通过FTP代理服务器进行连接。这可以通过调用setProxy()函数来实现。
兼容性
需要注意的是,虽然QFtp在功能上相对完善,但它可能不完全支持非Unix FTP服务器。此外,由于QFtp在Qt5及以后版本中已被废弃,因此在新开发的应用程序中,建议使用QNetworkAccessManager和QNetworkReply等更现代、更强大的网络类来替代QFtp。
总的来说,QFtp是一个功能丰富的FTP客户端实现,它提供了广泛的FTP操作支持,并通过异步工作模式和信号槽机制简化了与FTP服务器的交互。然而,对于需要开发新应用程序的开发者来说,可能需要考虑使用Qt框架中提供的更现代的网络类。
详情见GitHub主页:https://github.com/zhoutk/qtDemo。 - 安装准备
- 操作系统环境
版本信息:KeyarchOS 5.8sp2
硬件平台:X86
- 操作系统环境
-
- qftp版本
版本号:qftp-4.0-4
GitHub主页:https://github.com/zhoutk/qtDemo
阿里镜像源地址:https://developer.aliyun.com/packageSearch?word=qftp - vsftpd版本
版本号:vsftpd-3.0.3
来源:KOS软件包源
- qftp版本
- 安装
- 搭建ftp服务器
安装软件包
yum install vsftpd
- 搭建ftp服务器
启动vsftpd服务
systemctl start vsftpd
systemctl status vsftpd
查看FTP服务监听的端口
netstat -antup | grep ftp
设置开机启动
systemctl enable vsftpd
防火墙开放ftp服务
firewall-cmd --permanent --add-service=ftp
重启防火墙
firewall-cmd –reload
设置ftpd_full_access为on
setsebool -P ftpd_full_access=on
修改vsftpd配置
vim /etc/vsftpd/vsftpd.conf
取消注释
anonymous_enable=YES
local_enable=YES
listen=YES
添加注释
#listen_ipv6=YES
在文件末尾添加
#设置本地用户登录后所在目录。
local_root=/var/ftp/test
#全部用户被限制在主目录。
chroot_local_user=YES
#启用例外用户名单。
chroot_list_enable=YES
#指定例外用户列表文件,列表中用户不被锁定在主目录。
chroot_list_file=/etc/vsftpd/chroot_list
#开启被动模式。
pasv_enable=NO
allow_writeable_chroot=YES
#pasv_address=IP
#设置被动模式下,建立数据传输可使用的端口范围的最小值
pasv_min_port=50000
#设置被动模式下,建立数据传输可使用的端口范围的最大值
pasv_max_port=50010
重启服务
systemctl restart vsftpd
systemctl status vsftpd
为FTP服务创建一个Linux用户
useradd ftpuserpasswd ftpuser
创建必要的文件夹和文件
mkdir /etc/vsftpd/chroot_list/
mkdir /var/ftp/test/
使用ftp登录
ftp ip
-
- 安装qftp-4.0-4
阿里镜像源下载软件包
下载地址:https://developer.aliyun.com/packageSearch?word=qftp
- 安装qftp-4.0-4
上传至操作系统
安装rpm包
yum install qftp-4.0-4.el7.x86_64.rpm
-
- 验证qftp-4.0-4
qftp命令详解
usage: qftp <cmd> <host> cmd = send | get | dir | list | rm [ -l user [ -p pass ] ] defaults to anonymous/user@hostname [ [ -v level ] debug level [ -r rootpath ] chdir path [ -m umask ] umask for created files [ -a | -i ] ] ascii/image transfer file [ -w ] toggle wildcard mode [ -s cmd ] issue a SITE command [ -b ] toggles stripping of path from filename on send [ file ] file spec for directory or file to transfer ]...用法:qftp <命令> <主机>
命令 = send | get | dir | list | rm
[ -l 用户名 [ -p 密码 ] ] 默认为anonymous/用户名@主机名
[
[ -v 级别 ] 调试级别
[ -r 根路径 ] 更改目录路径
[ -m umask ] 为新创建文件设置的umask值
[ -a | -i ] 选择ASCII/二进制传输文件
[ -w ] 切换通配符模式
[ -s 命令 ] 发送SITE命令
[ -b ] 在发送时切换从文件名中剥离路径
[ 文件 ] 要传输的目录或文件规范
]...
使用qftp获取ftp服务器的目录列表
qftp dir ip
qftp list ip