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 加密。