Микросервис помогает работе основного сайта, сделанного на CMS и обслуживает запросы на скачивание архивов с файлами. Микросервис не умеет ничего, кроме упаковки файлов в архив. Закачиваются файлы на сервер через FTP или админку CMS.
Создание архива происходит на лету по запросу от пользователя. Архив не сохраняется на диске, вместо этого по мере упаковки он сразу отправляется пользователю на скачивание.
От неавторизованного доступа архив защищен хешом в адресе ссылки на скачивание, например: http://host.ru/archive/3bea29ccabbbf64bdebcc055319c5745/
. Хеш задается названием каталога с файлами, выглядит структура каталога так:
- photos
- 3bea29ccabbbf64bdebcc055319c5745
- 1.jpg
- 2.jpg
- 3.jpg
- af1ad8c76fda2e48ea9aed2937e972ea
- 1.jpg
- 2.jpg
Для работы микросервиса нужен Python версии не ниже 3.6.
pip install -r requirements.txt
python server.py
Сервер запустится на порту 8080, чтобы проверить его работу перейдите в браузере на страницу http://127.0.0.1:8080/.
python server.py
После этого перенаправить на микросервис запросы, начинающиеся с /arhive/
. Например:
GET http://host.ru/archive/3bea29ccabbbf64bdebcc055319c5745/
GET http://host.ru/archive/af1ad8c76fda2e48ea9aed2937e972ea/
docker-compose up
Сервер также запустится на порту 8080, проверить можно в браузере http://127.0.0.1:8080/.
При запуске вы можете указать следующие параметры: -l включение логирования; -d=0.1 установка задержки ответа в секундах; -p=test_photos путь к директории с фотографиями.
python server.py -l -p=test_photos -d=0.001
При использовании docker-compose отредактируйте файл docker-compose.yml
Альтернативной явдяется установка переменных окружения RESPONSE_DELAY и PHOTO_DIRECTORY_PATH
export RESPONSE_DELAY=0.1 && export PHOTO_DIRECTORY_PATH=test_photos
Директорию с фотографиями необходимо указать в любом случае!
Код написан в учебных целях — это урок в курсе по Python и веб-разработке на сайте Devman.