Я пытаюсь установить соединение FTPS (или FTP) с FTP-сервером. Это делается на Python 3.8.5 32 бит через Visual Studio Code.
Вот код:
import ftplib
session = ftplib.FTP_TLS('server address')
#session.connect ('server address', 991)
session.login(user='username',passwd='password')
#session.prot_p()
session.set_pasv(True)
session.cwd("files")
print(session.pwd())
filename = "ftpTest.txt"
my_file = open('filepath\\ftpTest.txt', 'wb') # Open a local file to store the downloaded file
session.retrbinary('RETR ' + filename, my_file.write, 1024)
session.quit()
Я могу получить session.pwd (который отображает / files), но тайм-аут соединения в строке 11 (session.retrbinary) примерно через 22 секунды c со следующей ошибкой:
Exception has occurred: TimeoutError
[WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
Я попытался установить session.set_pasv как True, так и False после Python таймаут ftplib . Значение True вызывает ошибку TimeoutError, а значение False вызывает следующую ошибку в строке 11:
Exception has occurred: error_perm
500 Illegal PORT command
, а также пытается установить другой порт (991) после Python Тайм-аут SSL FTP-соединения и возникла ошибка тайм-аута в строке 3.
Использование FTP без TLS вызвало следующую ошибку в строке 4 (session.login):
Exception has occurred: error_perm
530 Non-anonymous sessions must use encryption.
Отключение брандмауэра McAfee LiveSafe тоже не помогло. Кстати, передача файлов работает с Filezilla, можно было свободно передавать.