Skip to content

chyvak357/Admission-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание

Тестовое задание по передаче файлов на FTP сервер согласно конфигурационным файлам с использованием многопроцессности и ООП подхода на языке Python.

Автор: Мясников Роман

Email: chyvak357@gmail.com

Использование

Что бы использовать программу, необходимо в рабочей папке вместе с файлом "main.py" создать папки: "files", "checked". Программа ожидает появление конфигурационных файлов формата json в папке "files" и после чтения переносит их в папку "checked".

Что бы запустить тест на передачу 10 файлов раскомментируйте две строчки в начале исполнения кода и измените параметры в шаблоне для вашего FTP сервера.

Максимальное количество единовременных покдючений ограничивается глобальной переменной MAX_CONNECTIONS

Структура конфигурационного файла

[{
    "server": {
        "host": "192.168.0.104",
        "port": "2121",
        "login": "admin",
        "password": "1234"
    },
    "file": {
        "local_path": "D:/Exemple/of/path/file.dwg",
        "server_path": "LocalPath/subfolder1"
    }
}, {

... 

}]

Как это работает

В начале исполнения программы создаётся основной поток класса JsonChecker для проверки наличия конфиг файлов в папке "files" и вызове нового потока для обработки файла и передачи соответствующего файла.

При поступлении конфиг файла запускается поток класса FileTransfer который читает данные из конфиг файла, устанавливает соединение с сервером, загружает нужный файл на сервер, создаёт необходимые директории.

Недостатки и проблемы

  • Множественные тесты не привели к решению обработки ошибок возникающих при неожиданном разрыве соединения с ftp сервером. При этом основной поток продолжит работу в ожидании конфиг файлов.

  • Не была реализована проверка целостности передачи файлов. При разрыве или неожиданном закрытии программы, файлы находящиеся в процессе передачи не будут переданы полностью.

  • Допущения: считается, что все поля конфиг файла заполнены корректно, но необязательно приведут к подключению.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages