Первый этап: установка python и flask.
1. Скачайте python3 с официального сайта и установите его.
2. Во время установки обязательно поставьте галочку "Add Python 3.x to PATH".
3. Когда установка закончится запустите консоль нажать комбинацию Win + R.
Второй этап: скачивание и запуск проекта.
1. Скачайте проект с github любым удобным для вас способом.
2. В консоли перейдите в папку.
3. Запустите проект.
Команды, необходимые для запуска через консоль:
git clone https://github.com/arncpp/KIS_task.git
pip install flask
pip install requests
cd
python client.py
Поднять тестовый сервер на localhost можно так:
FLASK_APP=server.py flask
У пользователей часто возникает потребность передать большие файлы. Важно, чтобы это не занимало больших ресурсов времени, а также при передаче файлы не повредились. К счастью, у нас есть высокие технологии, чтобы решить эту проблему.
При запуске программы пользователь вводит название файла, который хочет передать и количество потоков.
Сервер реализован с помощью микро-фреймворка Flask. Мы возлагаем на него всего две задачи:
- Не забывать, от кого он получает файл.
- Сохранять переданный файл и проверять его на целостность.
Первая проблема в решается довольно просто: мы храним IP-адреса пользователей и соответствующую им сессию UploadSession. Также у нас имеется все данные о пользователях, которые когда-либо передавали свои файлы. Как только пользователь передал файл, мы удаляем его сессию.
Для того чтобы решить вторую проблему, в клиенте мы разделяем файл на части и передаем побайтово потокам и серверу. Сервер в свою очередь сохраняет все эти файлы во временной папке temp, а после того как все части файла загружены, соеденяет их в один и удаляет временную папку.
Пользователь же может себе поменять адрес сервара (main_url в urls.py).
Пример работы:
Input:
file_name test.jpg
count_threads 5
transfer_file
exit
Output:
Your file has been uploaded successfully!
