Guest User

Untitled

a guest
Mar 13th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. # Модуль загрузки XML-файла с удалённого сервера.
  3.  
  4. # Библиотека для использования протокола SFTP.
  5. import pysftp
  6.  
  7. class Downloader:
  8. def __init__(self, ipv4, port, login, password, pathToKnownHosts, pathToRemoteXML, saveXmlTo):
  9. self._ipv4 = ipv4
  10. self._port = port
  11. self._login = login
  12. self._password = password
  13. self._pathToKnownHosts = pathToKnownHosts
  14. self._pathToRemoteXML = pathToRemoteXML
  15. self._saveXmlTo = saveXmlTo
  16.  
  17. def download(self):
  18. # Создаем функцию копирования файлов с сервера по sftp запросу
  19. cnopts = pysftp.CnOpts()
  20. try:
  21. # Проверка ключ хоста. Так как сервера находятся в одной локальной сети, то и проверка ключа = None.
  22. cnopts.hostkeys.load(self._pathToKnownHosts)
  23. # Создание подключения к серверу
  24. with pysftp.Connection(host = self._ipv4,
  25. username = self._login,
  26. password = self._password,
  27. cnopts = cnopts) as sftp:
  28. #Копирование файлов.
  29. sftp.get_d(self._pathToRemoteXML,
  30. self._saveXmlTo,
  31. preserve_mtime = True) # Проверка соединения по времени.
  32. # Закрытие SFTP-сессии.
  33. sftp.close()
  34. except Exception:
  35. print('Unable to download XML-file from remote server.')
  36. raise SystemExit
  37.  
  38. print('Downloader: done!')
Add Comment
Please, Sign In to add comment