Хранение медиа
Где лежат фото и файлы из переписки, сколько они хранятся, как перенести их в S3, освободить место и сжать картинки.
Всё это — в разделе «Настройки → Проект и доступ → Хранение медиа». Менять настройки и запускать перенос, чистку и сжатие могут владелец и администраторы проекта.
Где хранятся файлы
- Локальное хранилище — диск сервера SupportHub. Настраивать ничего не нужно.
- Хранилище S3 — ваш бакет в AWS S3 или любом S3-совместимом хранилище (Hetzner Object Storage, Cloudflare R2, MinIO и другие). Нужны endpoint, bucket, region, access key и secret key. Secret key хранится зашифрованным и обратно не показывается; чтобы сменить остальные поля, вводить его заново не нужно.
Выбранный тип хранилища действует для новых файлов. Файлы, загруженные раньше, остаются там, куда попали, пока вы их не перенесёте (см. ниже). Кнопка «Проверить подключение» записывает в бакет небольшой тестовый файл, читает его и удаляет — так видно, что доступ и права в порядке.
Если после переключения на локальное хранилище в бакете ещё остались файлы, доступ к S3 сохраняется: файлы продолжают открываться, и их можно перенести обратно. Смена бакета старые файлы не переносит — перенесите их до смены.
Срок хранения
«Срок хранения (дней)» — через сколько дней после загрузки файл удаляется из локального хранилища (по умолчанию 90, 0 — хранить всегда). Дата удаления назначается файлу при загрузке, поэтому новый срок действует для файлов, загруженных после сохранения. Очистка идёт каждую ночь в 03:00 UTC (см. «Фоновые задачи»). На файлы в S3 срок не действует.
Никогда не удаляются по сроку вложения статей базы знаний и шаблонов. Если один файл используется в нескольких местах (например, картинку шаблона отправляли много раз), он удаляется только когда истёк срок у всех.
Сбросить отсчёт
Кнопка «Сбросить отсчёт» начинает срок хранения заново с сегодняшнего дня для всех файлов в локальном хранилище: при сроке 90 дней ни один из них не удалится раньше, чем через 90 дней. Даты загрузки не меняются, и ни один файл не получит дату удаления раньше прежней. Если срок — 0, у файлов снимаются даты удаления. Рядом видно, когда отсчёт сбрасывали в последний раз и когда по сроку удалится ближайший файл.
Перенос файлов
Раздел «Перенос файлов» показывает, сколько файлов и мегабайт лежит в каждом хранилище, и переносит их в то, что выбрано сейчас.
- Выберите «Хранилище S3», укажите доступ, проверьте подключение и сохраните. С этого момента новые файлы идут в S3.
- Нажмите «Перенести в S3». В окне подтверждения видно, сколько файлов и мегабайт переедет.
- Перенос идёт в фоне: на странице видно прогресс, его можно остановить. Страницу можно закрыть.
Перед запуском SupportHub проверяет оба хранилища: записывает, читает и удаляет тестовый файл. Если бакет недоступен, перенос не начнётся, а на странице будет причина.
Что происходит с каждым файлом
- Файл загружается в бакет и сверяется: размер и контрольная сумма MD5 должны совпасть.
- Только после этого запись о файле переключается на S3, а локальная копия удаляется. Если файл ещё использует другой проект, копия на диске остаётся.
- Ссылки не меняются: файлы в переписке, статьях базы знаний, шаблонах и письмах открываются как раньше, в Telegram, VK, WhatsApp, почту и BILLmanager они уходят из S3.
- Срок хранения на перенесённые в S3 файлы не действует.
Файл, который не удалось перенести (его нет на диске, копия не совпала, ошибка связи), остаётся на месте, а в итогах видна причина. Остальные файлы переносятся дальше. Если бакет перестал отвечать совсем, перенос останавливается. Запустите его снова — уже перенесённые файлы пропускаются, продолжится с оставшихся. Если сервер перезапустился посреди переноса, он продолжится сам через несколько минут.
Обратно в локальное хранилище — так же: выберите «Локальное хранилище», сохраните и нажмите «Перенести в локальное хранилище». Файл удаляется из бакета только после проверенной копии. На перенесённые файлы начинает действовать срок хранения, считая от дня переноса (вложения статей и шаблонов по-прежнему не удаляются).
На что уходит место
Разбивка файлов проекта по типу (картинки, видео, аудио и голосовые, документы), по источнику (Telegram, VK, WhatsApp, виджет, email, BILLmanager, API, база знаний и шаблоны, аватары клиентов, не прикреплённые) и по месяцам за последний год, а также 20 самых больших файлов со ссылкой на обращение, где они пришли. Файл, который используется в нескольких местах, считается один раз. Имена файлов скрываются в режиме стримера.
Чистка файлов
Удаляет файлы сразу, не дожидаясь срока хранения, в обоих хранилищах. Сначала нажмите «Показать, что удалится»: будет видно, сколько файлов и мегабайт уйдёт, и несколько самых больших из них. Удаление запускается после подтверждения и идёт в фоне.
- Старше заданного срока — файлы, загруженные больше N дней назад.
- Неиспользуемые — файлы, которые не прикреплены ни к сообщению, ни к статье, ни к шаблону, не служат аватаром клиента и на которые нет ссылок в текстах. Файлы моложе суток не трогаются: их могли только что загрузить, чтобы отправить.
Сжатие картинок
Если включить «Сжимать новые картинки», большие фото при загрузке уменьшаются так, чтобы длинная сторона была не больше выбранной (1280, 1920 или 2560 px, либо «Без уменьшения»), и пересохраняются в JPEG с качеством 82 — этот формат открывают все каналы и почтовые клиенты. Картинки с прозрачностью остаются PNG. Маленькие картинки не увеличиваются.
- Поворот по EXIF применяется к самой картинке, а данные EXIF, включая геолокацию, удаляются.
- Не трогаются GIF и другие анимации, стикеры, файлы меньше 100 КБ, картинки, отправленные в Telegram как файл, и всё, что после сжатия не стало заметно меньше.
«Сжать уже загруженные» делает то же с картинками, загруженными раньше, по сохранённым настройкам, в обоих хранилищах. Оригиналы заменяются сжатыми, вернуть исходное качество нельзя. Уже сжатые картинки пропускаются; если позже выбрать размер меньше, они сожмутся ещё раз. В итогах видно, сколько места освободилось.

