Jak se připojit k FTP serveru pomocí standardní knihovny ftplib v Python.
import socket
from ftplib import FTP
# --- Definování proměnných ---
# Zde použijte konkrétní přihlašovací údaje a podrobnosti o serveru. Pokud si nejste jisti přihlašovacími údaji, kontaktujte zákaznickou podporu.
FTP_SERVER = 'ftp.kvikymart.com'
FTP_PORT = 21
FTP_USERNAME = 'vaše username'
FTP_PASSWORD = 'vaše password'
LOCAL_FILE_NAME = 'localfile.txt'
REMOTE_FILE_NAME = 'remotefile.txt'
# --- FTP připojení a přenos ---
# 1. Inicializujte objekt FTP
ftp = FTP()
ftp.set_debuglevel(2)
# 2. Připojte se k serveru
ftp.connect(FTP_SERVER, FTP_PORT)
# 3. Přihlaste se pomocí přihlašovacích údajů
ftp.login(user=FTP_USERNAME, passwd=FTP_PASSWORD)
ftp.af = socket.AF_INET6 # vynutit EPSV
ftp.set_pasv(True) # povolit passive mode
# 4. Přejděte do požadovaného vzdáleného adresáře.
ftp.cwd('/')
# 5. Otevřete místní soubor a nahrajte jej v binárním režimu.
with open(LOCAL_FILE_NAME, 'rb') as f:
ftp.storbinary(f'STOR {REMOTE_FILE_NAME}', f)
# 6. Ukončete připojení
ftp.quit()
Úspěšná odpověď bude vypadat takto:
*get* '220 FTP server ready.\n'
*resp* '220 FTP server ready.'
*cmd* 'USER vaše username'
*put* 'USER vaše username\r\n'
*get* '331 Password required for vaše username\n'
*resp* '331 Password required for vaše username'
*cmd* 'PASS ********************'
*put* 'PASS ********************\r\n'
*get* '230 User vaše username logged in\n'
*resp* '230 User vaše username logged in'
*cmd* 'CWD /'
*put* 'CWD /\r\n'
*get* '250 CWD command successful\n'
*resp* '250 CWD command successful'
*cmd* 'TYPE I'
*put* 'TYPE I\r\n'
*get* '200 Type set to I\n'
*resp* '200 Type set to I'
*cmd* 'EPSV'
*put* 'EPSV\r\n'
*get* '229 Extended Passive Mode Entered (|||data_port|)\n'
*resp* '229 Extended Passive Mode Entered (|||data_port|)'
*cmd* 'STOR remotefile.txt'
*put* 'STOR remotefile.txt\r\n'
*get* '150 Opening BINARY mode data connection for remotefile.txt\n'
*resp* '150 Opening BINARY mode data connection for remotefile.txt'
*get* '226 Transfer complete\n'
*resp* '226 Transfer complete'
*cmd* 'QUIT'
*put* 'QUIT\r\n'
*get* '221 Goodbye.\n'
*resp* '221 Goodbye.'