Created
March 3, 2018 13:36
-
-
Save denisshevchenko/4580c4e55d9f8571d01bbbe88d523cd8 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- 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