Сервер хранения PDF файлов. Написан на Python 3. Разработка велась на Ubuntu 16.04 (32bit)
- Поставьте python3, pip и virtualenv
- Настройка виртуальной среды. Выполните
virtualenv -p python3 <virtualenv_dir> - Перейдите в виртуальную среду.
source <virtualenv_dir>/bin/activate - Убедитесь, что в системе установлена утилита convert. Для Ubuntu это пакет imagemagick.
- Создайте БД. Выполните
python init_db.py <dbpath> - Добавьте пользователей в БД. Выполните
python add_user_to_db.py <dbpath> <login> <password>
Выполните python run.py <port> <dbpath>
Использование утилиты convert для конвертации pdf в png является лютым костылем. Используется именно этот
метод в отличии от использования классов Image из пакетов PIL и wand, т.к. работа вышеупомянутыми средствами
приводит к segmentation fault из-за двойного освобождения памяти где-то в своих глубинах. Решить проблему
за адекватное время не удалось - поэтому примен сей "костыль".
- Сделать нормальные куки, чтобы хранился в cookies не user_id, а UUID сессии, Сделать cookie более длительными, несессионными
- Сделать Download и upload файла блоками
- Сделать разбиение на страницы в таблице pdf файлов
- Улучшить работу с сессиями в файле db.py, запихнув их в декоратор
- Обернуть запуск в docker
- Добавить тесты
- Добавить механизм регистрации пользователей через web
- Нанять дизайнера и хорошего фронтэндщика чтобы сделать нормальную "морду" для сервиса
- Убрать костыль с использованием утилиты
convert - Сделать сервис параллельным либо асинхронным, в зависимости от того в какую сторону будет развиваться требования бизнеса
- Изменить механизм хранения файлов хранить их как сейчас(и PDF, и PNG храняться в sqlite)