Подключите FTP-сервер с помощью pysftp - PullRequest
0 голосов
/ 08 марта 2020

У меня есть текущий код для загрузки с 4 разных FTP-серверов, он работает на моей локальной машине, но на сервере ftp4 не подключается. странно, что я могу без проблем подключиться к ftp 4 через Filezila на сервере. Вот код:


HOST_LIST = [["10.10.10.04", "user", "pasword"]] #ftp4

self.cnopts = pysftp.CnOpts()
self.cnopts.hostkeys = None

 def get_r_portable(self, sftp, remotedir, localdir, preserve_mtime=False):
    for entry in sftp.listdir(remotedir):
        remotepath = remotedir + "/" + entry
        localpath = os.path.join(localdir, entry)
        mode = sftp.stat(remotepath).st_mode
        if S_ISREG(mode):
            if self.PATHFILTER.strip() != "":
                 if str(remotepath).lower().find(self.PATHFILTER.lower()) > -1:
                    sftp.get(remotepath, localpath, preserve_mtime=preserve_mtime)


for host in self.HOST_LIST:
            with pysftp.Connection(host[0], username=host[1], password=host[2], cnopts=self.cnopts) as sftp:
                try:
                    for dirs in self.FOL_LIST:
                        currdir = REMOTEFOLDER + dirs + ""
                        try:
                            self.get_r_portable(sftp, currdir, self.LOCALFOLDER, True)
                        except Exception as e:
                            self.logger.error("Exception in dir exploration" + str(e))
                except Exception as e:
                    print('error')

ошибка, которую я получаю для ftp4:

[ 2020-03-08 15:05:03,574 ] [  ][ WARNING ] Please note that this utility does not use hostkeys to verify the hosts. If this is insecure for your setup, then kindly update the code or submit a feature request.
\pysftp-0.2.9-py3.7.egg\pysftp\__init__.py:61: UserWarning: Failed to load HostKeys from \.ssh\known_hosts.  
You will need to explicitly load HostKeys (cnopts.hostkeys.load(filename)) or disableHostKey checking (cnopts.hostkeys = None).
[ 2020-03-08 15:05:03,577 ] [ ][ INFO ] Attempting connection to 10.10.10.04

Трассировка (последний последний вызов):

Файл "main.py", строка 183, в файле downloader.run (), файл "main.py", строка 107, выполняется с помощью pysftp.Connection (host [0], username = host [1], password = host [2],> cnopts = self.cnopts) как sftp: File "pysftp-0.2.9-py3.7.egg \" pysftp__init__.py ", строка 140, в> init Файл" pysftp-0.2.9-py3.7.egg \ py enter code here sftp__init __. py ",> строка 176, в файле _start_transport" Python37- 32 \ lib \ site-packages \ paramiko \ transport.py ", строка 416,> в init " Невозможно подключиться к формату {}: {} ". (Имя хоста, причина) paramiko.ssh_exception.SSHException : Невозможно подключиться к 10.10.10.04: [WinError 10060] Попытка подключения не удалась, потому что подключенная> сторона не ответила должным образом через определенный промежуток времени, или установилось> подключение не удалось, потому что подключенному хосту не удалось ответить

- FTP-сервер на сервере:

- Статус: подключение к 10.10.10.04:21...
Статус: подключение установлено, ожидание приветственное сообщение ...
Статус: инициализация TLS ...
Статус: проверка сертификата ...
Статус: установлено соединение TLS.
Статус: зарегистрирован
Статус: получение списка каталогов. ..
Статус: Список каталогов "/" успешно

1 Ответ

0 голосов
/ 09 марта 2020

Вы подключаетесь к FTP-серверу в FileZilla.

pysftp - это библиотека SFTP.

FTP и SFTP - это совершенно разные протоколы.

Для подключения по FTP в Python используйте ftplib.

...