Python 中可以使用 ftplib
库来实现 FTP 客户端功能,但是默认情况下 FTP 传输是不加密的。为了加密传输,可以使用 SSL/TLS 协议对 FTP 进行封装,从而实现加密传输。
具体实现步骤如下:
ftplib
和 ssl
模块。import ftplib
import ssl
ftp = ftplib.FTP_TLS()
ftp.set_pasv(True) # 被动模式
ftp.login(user='username', passwd='password') # 登录 FTP 服务器
ftp.set_debuglevel(2) # 显示调试信息
ftp.sock = ssl.wrap_socket(ftp.sock, server_hostname='ftp.example.com') # 加密连接
ftp
对象进行文件传输。# 上传文件
with open('local_file.txt', 'rb') as f:
ftp.storbinary('STOR remote_file.txt', f)
# 下载文件
with open('remote_file.txt', 'wb') as f:
ftp.retrbinary('RETR remote_file.txt', f.write)
ftp.quit()
以上代码中,ftp.sock = ssl.wrap_socket(ftp.sock, server_hostname='ftp.example.com')
这行代码将 FTP 客户端的套接字加密,从而实现加密传输。需要注意的是,在连接 FTP 服务器时需要提供服务器的 SSL 证书,否则会出现 SSL 错误。如果服务器没有 SSL 证书,可以考虑使用 ftplib.FTP
类并手动实现 SSL 加密。