Skip to content

HlodricIB/Pet_project

Repository files navigation

Pet_project: HTTP сервис для выдачи файлов по запросу . Список, находящихся в доступе файлов, автоматически поддерживаемый в актуальном состоянии, хранится в БД. Осуществляется логирование http запросов, логирование запросов к БД и логирование изменения состояния файлохранилища.

Содержит:

  • Client_HTTP - многопоточный HTTP клиент на Boost.Asio и Boost.Beast c применением stackful coroutines (главная цель написания - тестирование сервера Server_HTTP)
  • DB_module - модуль для работы с БД, содержит пул потоков, пул коннектов, класс, осуществляющий взаимодействие с БД (используется PostgreSql), класс, хранящий результаты запроса и методы раюоты с этим результатом.
  • Download - директория для загруженных через Client_HTTP файлов.
  • Handler - содержит классы обработчиков запросов, получаемых http сервером (Server_HTTP), и обработчиков событий, фиксируемых модулем отслеживания состояния папки с предоставляемыми файлами (Inotify_module).
  • Inotify_module - модуль для отслеживания изменений в директории с файлами для выдачи, на основе подсистемы Inotify ядра Linux.
  • Logger - содержит классы для осуществления логирования событий.
  • Server_HTTP - многопоточный HTTP сервер на Boost.Asio и Boost.Beast c применением stackless coroutines, приём и обработка запросов на выдачу списка доступных файлов, таблицы логов, самих файлов.
  • ini_and_parser - содержит файл для конфигурации всех комопонентов сервиса и классы для парсинга конфигурационного файла.
  • ini_and_parser/Tests - Unit-тесты (применяется GoogleTest framework) парсера конфигурационного файла.
  • DB_module/Tests - Unit-тесты (применяется GoogleTest framework) модуля для работы с БД (DB_module).
  • logs_folder - директория для хранения файлов с логами.
  • scripts_for_DB - bash скрипты для создания БД и таблиц для сервиса.
  • songs_folder - директория для хранения доступных файлов.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published