Skip to content

Instantly share code, notes, and snippets.

@denisshevchenko
Created March 3, 2018 13:36
Show Gist options
  • Save denisshevchenko/4580c4e55d9f8571d01bbbe88d523cd8 to your computer and use it in GitHub Desktop.
Save denisshevchenko/4580c4e55d9f8571d01bbbe88d523cd8 to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*-
# Модуль загрузки XML-файла с удалённого сервера.
# Библиотека для использования протокола SFTP.
import pysftp
class Downloader:
def __init__(self, ipv4, port, login, password, pathToKnownHosts, pathToRemoteXML, saveXmlTo):
self._ipv4 = ipv4
self._port = port
self._login = login
self._password = password
self._pathToKnownHosts = pathToKnownHosts
self._pathToRemoteXML = pathToRemoteXML
self._saveXmlTo = saveXmlTo
def download(self):
# Создаем функцию копирования файлов с сервера по sftp запросу
cnopts = pysftp.CnOpts()
try:
# Проверка ключ хоста. Так как сервера находятся в одной локальной сети, то и проверка ключа = None.
cnopts.hostkeys.load(self._pathToKnownHosts)
# Создание подключения к серверу
with pysftp.Connection(host = self._ipv4,
username = self._login,
password = self._password,
cnopts = cnopts) as sftp:
#Копирование файлов.
sftp.get_d(self._pathToRemoteXML,
self._saveXmlTo,
preserve_mtime = True) # Проверка соединения по времени.
# Закрытие SFTP-сессии.
sftp.close()
except Exception:
print('Unable to download XML-file from remote server.')
raise SystemExit
print('Downloader: done!')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment