python自带库ftplib对ftp的连接提供了支持。下面是其基本的语法
1 | ftp = ftplib.FTP(timeout=300) # 连接基本的FTP |
Troubleshooting
ftplib出现ssl.SSLError: [SSL] internal error (_ssl.c:1123): 我的情况是服务器的ssl版本太高了(ubuntu20.04),并且目标FTPS服务器的ssl版本太低了,看论坛好像确实是有这么一个bug,在python方面没有找到解决方案,最终找到几个命令行工具来完成需求:
上传使用的是ftp-uploader
,直接用apt
命令安装的;下载则是用的lftp
,但是参数比较多: `1
2/usr/bin/lftp -c 'set ftp:ssl-allow true ; set ssl:priority NORMAL:+VERS-TLS1.1:+VERS-TLS1.2;
set ssl:verify-certificate no; open -u 用户名,密码 -e "cd 目录; mget 文件名; quit" 目标服务器