Skip to main content
Клиенты присылают в Telegram что угодно: фото, документы, видео, голосовые, гифки и стикеры. Всё это видно в переписке тикета. Оператор в ответ может отправить файл со своей стороны. Ниже описано, как это устроено и где лежат байты.

Что видно в тикете

Картинки открываются прямо в пузыре сообщения, гифки проигрываются сами, стикеры помечены подписью «Стикер». Видео и аудио подгружаются по клику, чтобы не тянуть тяжёлые файлы зря. Документы отображаются карточкой с именем, размером и кнопкой скачивания. Входящие файлы не выкачиваются заранее: при приёме сохраняется только ссылка на файл в Telegram, а байты подтягиваются в момент, когда оператор открывает вложение. Потолок на скачивание одного файла: 20 МБ. На канале-аккаунте (MTProto) входящие файлы не скачиваются вовсе, фиксируется только факт вложения.

Отправка файлов оператором

К одному ответу прикрепляется один файл, текст сообщения уходит подписью к нему. Так доставка остаётся одним атомарным вызовом и безопасно повторяется при сбое. Отправка файлов работает на канале-боте. Канал-аккаунт отправку файлов клиенту не поддерживает: модуль откажет с понятной ошибкой, входящие файлы при этом видны как обычно.

Где лежат байты

Файлы, загруженные операторами, модуль хранит сам. Способ выбирается в карточке «Хранение данных»: Для S3 задаются endpoint, bucket, регион, префикс пути и пара ключей доступа. Ключи сохраняются в защищённое хранилище и обратно не показываются: пустые поля при повторном сохранении означают «не менять». Кнопка «Проверить подключение» записывает в бакет пробный объект и удаляет его, ошибка возвращается с ответом провайдера. Переключение способа не переносит старые файлы: каждый файл читается оттуда, куда был загружен. Можно спокойно перейти на S3 и вернуться назад, ничего не потеряв.

Лимиты и квота

Поле «Вложение, МБ» ограничивает размер файла, который загружает оператор. Пустое значение снимает лимит. Тумблер «Хранить вложения» управляет самим сохранением файлов. «Квота вложений, ГБ» ограничивает суммарный объём хранимых файлов. При заполненной квоте новые загрузки операторов отклоняются, пока место не освободится. Учитывается только то, что модуль реально хранит: ленивые ссылки на Telegram-медиа места не занимают.

Сигналы о нехватке места

Индикатор в карточке «Хранение данных» показывает занятый объём, квоту и свободное место на диске. Модуль различает два уровня тревоги: предупреждение (заполнен порог из поля «Порог предупреждения, %» либо свободного места меньше двойного минимума) и критический (квота исчерпана либо свободного места меньше «Мин. свободно на диске, ГБ»). Сигнал приходит двумя путями: в Health Center на вкладку инцидентов и в Telegram-уведомления, категория «Хранилище вложений». Оповещение срабатывает на смене уровня, а не молотит каждые полминуты, и присылает отбой при возврате к норме. Проверка свободного диска действует только для хранения в базе панели: байты в S3 лежат не на хосте панели. Подробнее про инциденты здоровья на странице обзора системы здоровья.