Медиа

Медиатека хранит загруженные файлы — изображения, видео, аудио, документы. Файлы лежат в объектном хранилище (S3/MinIO); в CMS каждый файл — запись типа media со ссылкой на него.

Загрузка файлов

Откройте раздел «Медиа» в сайдбаре. Два способа:

  • Кнопка Загрузить файл — открывает выбор файла. Можно выбрать несколько.
  • Перетащите файлы в любое место окна — появится оверлей «Отпустите для загрузки».

Файлы загружаются по одному. После загрузки файл появляется в сетке миниатюр. Поддерживаемые типы: изображения, видео, аудио, документы (включая PDF).

Сетка медиатеки

Файлы показаны сеткой миниатюр: изображения — превью, видео — с автовоспроизведением при наведении, аудио и документы — иконками. Под каждым файлом — имя и размер.

Фильтр по типу — чипы Все / image / video / audio / document вверху.

Свойства медиа

Клик по файлу открывает панель Свойства медиа. В ней:

  • Превью (для видео — полный плеер с управлением, для PDF — предпросмотр).
  • Только чтение: тип, размер, MIME, размеры (когда есть), URL.
  • Редактируемые поля:
    • Имя — отображаемое имя файла.
    • Alt-текст — описание изображения для доступности. Поле локализованное: отдельное значение на язык.

url, mime_type, file_size и type заполняются при загрузке и не редактируются.

Удаление файлов

При удалении система показывает, где файл используется: находит каждую запись, которая на него ссылается (через поля Entity → Media), и выводит таблицу: тип, элемент, свойство.

  • Если ссылка стоит в обязательном поле — после удаления элемент нельзя сохранить, пока не прикрепите новый файл.
  • При подтверждении ссылки очищаются автоматически, файл удаляется безвозвратно.

Медиа в контенте

Медиа прикрепляется к записям через поля Entity → Media. Примеры:

  • HeroSectionbackground_image (фоновое изображение).
  • ImageBlockimage (обязательное).
  • Galleryimages (массив, обязательное).
  • Authorphoto.
  • PageSEOog_image.

В форме редактирования медиа-поле показывает превью и две кнопки: Выбрать из медиатеки (поиск + сетка существующих файлов) и Загрузить файл (загрузить новый). Тот же интерфейс появляется везде, где есть медиа-поле.

Хранилище и URL

Файлы загружаются в S3-совместимое хранилище как есть — без сжатия, ресайза и генерации миниатюр. URL файла абсолютный и указывает прямо на хранилище: браузер забирает файл напрямую, без проксирования через CMS.

Объекты в публичном бакете читаются анонимно — подписанные URL не используются.

Лимиты хранилища

В SaaS-режиме у каждого проекта квота хранилища по тарифу. Лимит проверяется при загрузке — при превышении загрузка отклоняется.

Что дальше

  • SEOog_image для превью в соцсетях.
  • GraphQL-запросы — как запрашивать медиа.