Подробный разбор принципов и методов сжатия файлов.
SmartSlim Enterprise
Корпоративная платформа распределённого сжатия файлов · микросервисная архитектура, 80 форматов в 11 категориях, развёртывание в Docker и Kubernetes, соответствие требованиям 152-ФЗ
О платформе
Многопользовательская платформа распределённого сжатия для компаний и государственных организаций
SmartSlim Enterprise — распределённая платформа сжатия, созданная для корпоративных нагрузок. В её основе — микросервисная архитектура на асинхронном фреймворке FastAPI и очереди задач Celery, а сжатие выполняет собственный движок на Rust, подключаемый через C ABI. Платформа обрабатывает 11 категорий и 80 форматов файлов и закрывает полный цикл задач: управление пользователями, учёт и биллинг, показ прогресса в реальном времени, мониторинг и оповещения. Поддерживаются оба варианта развёртывания — Docker Compose и Kubernetes, с учётом требований российского законодательства о персональных данных (152-ФЗ).
Пятиярусная архитектура
Чёткое разделение ответственности: у каждого слоя своя задача
Клиентский слой (фронтенд)
Nginx отдаёт статику пользовательского портала (/user) и административной панели (/admin) и обеспечивает веб-интерфейс и консоль управления задачами
Слой API-шлюза
FastAPI + Uvicorn — асинхронный HTTP-сервис: единая аутентификация (JWT), ограничение частоты запросов (100 запросов за 60 секунд, скользящее окно), валидация параметров и маршрутизация
Слой бизнес-логики
Celery 5.3.4 — асинхронные задачи двух очередей (compression / maintenance), управление пользователями, учёт и биллинг, передача прогресса по WebSocket
Слой ядра сжатия
Собственный движок сжатия на Rust SDK вызывается из Python через C ABI и обрабатывает 11 категорий и 80 форматов файлов
Слой хранения данных
MySQL 8.0 (бизнес-данные, асинхронный aiomysql) · Redis 7 (кэш и брокер сообщений) · MinIO (S3-совместимое хранилище исходных и сжатых файлов)
Ключевые возможности
Все функции реализованы и проверены в коде платформы
Прогресс в реальном времени
WebSocket-соединение держится постоянно: бэкенд публикует ход сжатия через Redis Pub/Sub, и статус моментально появляется в браузере пользователя — без опроса сервера.
Аутентификация по JWT-токенам
Доступ к платформе — по JWT-токенам, а пароли хранятся только в виде стойких криптографических хешей: надёжный баланс между безопасностью и производительностью.
Мониторинг Prometheus + Grafana
Эндпоинт /metrics отдаёт количество запросов, задержки, объём задач и другие метрики; всё это наглядно визуализируется в Grafana.
Ограничение частоты запросов
По умолчанию — 100 запросов за 60 секунд (RATE_LIMIT_MAX: 100 / RATE_LIMIT_WINDOW: 60), для входа — 10 за 60 секунд, для регистрации — 5 в час; механизм реализован на Redis.
Полная поддержка форматов
Через Rust SDK платформа работает с 11 категориями и 80 форматами: изображения, PDF, видео, аудио, Word, Excel, PPT, OFD/XPS, текст (26 типов), EPUB/EML и промышленные и научные данные (DICOM и др.).
Учёт и биллинг
Встроенная служба учёта (metering_service) ведёт статистику по дневному трафику (по умолчанию 10 ГБ в день) и количеству операций сжатия, поддерживает управление тарифными пакетами.
Варианты развёртывания
От одного сервера до кластера Kubernetes
proxy-body-size: 10g для загрузки больших файлов.
Соответствие 152-ФЗ и отраслевым стандартам
Поддержка ключевых российских нормативных требований
| Категория | Нормативные требования |
|---|---|
| Защита персональных данных | 152-ФЗ, ГОСТ Р 50922 |
| Информационная безопасность | ФСТЭК, ГОСТ Р ИСО/МЭК 27001 |
| Управление документами | ГОСТ Р 7.0.8, PDF/A (ISO 19005) |
| Кибербезопасность | 149-ФЗ, приказы ФСТЭК |
Запросите корпоративное решение
Обсудим развёртывание в Docker или Kubernetes и выполнение требований 152-ФЗ под ваши процессы
Адрес демо: http://155.103.158.229:8000/static/index.html
Статьи по теме
Как сжать отсканированный PDF со 80 МБ до 8 МБ: пошаговое руководство.
В чём принципиальная разница: наглядные схемы и примеры кода.