Я создал скрипт Python Flask, который перемещает один файл с FTP-сервера на другой при возникновении определенных условий. (оба FTP-сервера находятся в двух разных Docker) На моей локальной машине скрипт работает нормально, но когда я пытаюсь поместить его в Docker, он загружается, но когда приходит запрос, я получаю две ошибки:
ftplib.error_perm: 500 Illegal PORT command.
ftplib.error_perm: 550 Illegal PORT command. Probably the file is no longer avaible on the FTP server?
Так как это с моей локальной машины работает хорошо, я думал, что это может быть проблема с docker.
Это код, который запускает копию:
for filename, n in n_request:
print(self.color + "File name: " + filename + " Count: " + str(n) + RESET, flush=True)
if n >= int(self.count):
print(self.color + "Mooving file: " + filename + " from server: " + str(self.server) + RESET, flush=True)
start = time.time()
check = move_file(filename, self.server, self.client)
end = time.time()
И это функция move_file
:
def move_file(filename, server, client):
from_ftp = FTP_handler(server[0], server[1], DEFAULT_USER, DEFAULT_PSW)
to_ftp = FTP_handler(client[1], client[2], DEFAULT_USER, DEFAULT_PSW)
return transfer_file(from_ftp, to_ftp, filename)
Соединение установлено в пассивном режиме.