Skip to content

Архитектура ​

Bitrix Converter состоит из трёх основных компонентов и очереди сообщений.

Схема ​

Битрикс24 (transformer)
        │
        ▼ POST /convert
   ┌──────────┐
   │ Producer │  HTTP API (Go + chi)
   └────┬─────┘
        │ publish
        ▼
   ┌──────────┐
   │ RabbitMQ │
   └────┬─────┘
        │ consume
        ▼
   ┌──────────┐
   │ Consumer │  Worker (Go)
   └────┬─────┘
        │
        ├── Download файла с портала
        ├── Конвертация (LibreOffice / ffmpeg / ImageMagick)
        ├── Upload результата на back_url
        └── Complete callback

Producer ​

  • Принимает HTTP-запросы от модуля transformer
  • Валидирует задачу и публикует в RabbitMQ
  • Бинарь: cmd/producer

Consumer ​

  • 6 воркеров (3 × 2 очереди)
  • Скачивает исходный файл, конвертирует, загружает результат
  • Подтверждает сообщение (ack) после успеха
  • Бинарь: cmd/consumer

Поддерживаемые форматы ​

Документы (DocumentCommand) ​

ФорматИнструмент
pdf, jpg, txtLibreOffice
pngAllPagesLibreOffice → ImageMagick → ZIP
md5, sha1, crc32хеши

Видео (VideoCommand) ​

ФорматИнструмент
mp4ffmpeg (H.264 + AAC)
jpgffmpeg (кадр превью)

Site (отдельный деплой) ​

Лендинг и эта документация разворачиваются отдельно через docker-compose.site.yml — один экземпляр для Astrum, не часть клиентского стека.

Хранилище ​

Volume consumer монтируется в /app/upload — временные файлы конвертации. После обработки файлы удаляются через DeleteFiles().