Python 中可以使用 ftplib
库来实现 FTP 客户端功能,但是默认情况下 FTP 传输是不加密的。为了加密传输,可以使用 SSL/TLS 协议对 FTP 进行封装,从而实现加密传输。
具体实现步骤如下:
- 导入
ftplib
和ssl
模块。
import ftplib import ssl
- 创建一个 FTP 客户端对象,并使用 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 连接。
ftp.quit()
以上代码中,ftp.sock = ssl.wrap_socket(ftp.sock, server_hostname='ftp.example.com')
这行代码将 FTP 客户端的套接字加密,从而实现加密传输。需要注意的是,在连接 FTP 服务器时需要提供服务器的 SSL 证书,否则会出现 SSL 错误。如果服务器没有 SSL 证书,可以考虑使用 ftplib.FTP
类并手动实现 SSL 加密。