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().