EvilPug/doctor-web-task

The task for the interview

★ 0Forks 0PythonGitHub ↗Compare

README

Тестовое задание для собеседования в компанию Doctor Web


Техническое задание

Реализовать HTTP API для загрузки, скачивания и удаления файлов с использованием хеширования.

Алгоритм - на выбор (был выбран md5).

Загрузка:

  • получив файл от клиента, сервер сохраняет его на диск в следующую структуру каталогов: store/ab/abcdef12345... где "abcdef12345..." - имя файла, совпадающее с его хэшем, "ab" - подкаталог, состоящий из первых двух символов хэша файла, затем сервер возвращает в отдельном поле http response хэш загруженного файла

Скачивание:

  • клиент передаёт параметр - хэш файла, затем сервер ищет файл в локальном хранилище и передает его на скачивание, если находит

Удаление:

  • клиент передаёт параметр - хэш файла, затем сервер ищет файл в локальном хранилище и удаляет файл и прилежащий каталог если таковые существуют

Как развернуть проект локально?

pip install -r requirements/base.txt
cd ./src/
python3 manage.py runserver

Запущенный сервер доступен по адресу 127.0.0.1:8000

Загрузка файла с любым расширением

upload

Скачивание файла по хэшу

download

Удаление файла по хэшу

delete

При вводе несуществующего хэша или не связанных с ним символов

error

Contributors

dependabot[bot]

Issues