НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
76 of 182 menu

Таблица file_managed

Таблица file_managed служит основным хранилищем метаданных для всех файлов, управляемых Drupal. Каждая запись в этой таблице представляет собой файл, загруженный через систему Drupal, и содержит такую информацию, как URI файла, размер, MIME-тип и статус его использования.

Поля

Поле Тип данных Описание
fid serial Уникальный идентификатор файла (File ID). Первичный ключ таблицы.
uuid char(128) Универсальный уникальный идентификатор файла. Используется для ссылки на файл в конфигурации и экспорте.
langcode varchar(12) Код языка, связанного с этим файлом. Определяет, для какого языкового варианта контента предназначен файл.
uid int Идентификатор пользователя (User ID), который загрузил файл. Внешний ключ для таблицы users.
filename varchar(255) Оригинальное имя файла в момент его загрузки на сервер.
uri varchar(255) URI (Uniform Resource Identifier) файла в схеме Drupal. Указывает на местоположение файла относительно корня сайта (например, public://images/photo.jpg).
filemime varchar(255) MIME-тип файла (например, image/jpeg, application/pdf). Определяется при загрузке.
filesize int Размер файла в байтах.
status int Статус файла: 0 - временный (temporary), 1 - постоянный (permanent). Временные файлы удаляются cron'ом.
created int Временная метка (Unix timestamp) создания записи о файле.
changed int Временная метка (Unix timestamp) последнего изменения метаданных файла.

Как это работает

Когда пользователь загружает файл через интерфейс Drupal (например, в поле типа "Файл" или "Изображение"), система сначала сохраняет файл в соответствующую файловую систему (public://, private://), а затем создает запись в таблице file_managed. Эта запись содержит всю необходимую метаинформацию, но не сами файловые данные.

Поле status играет ключевую роль в управлении жизненным циклом файла. Файлы, которые были загружены, но еще не прикреплены к какому-либо постоянному контенту (ноде, комментарию, пользователю), помечаются как временные (0). Периодическая задача Drupal Cron проверяет такие файлы и удаляет те из них, которые оставались временными дольше заданного интервала, освобождая место на диске.

Как только файл прикрепляется к постоянному контенту, его статус меняется на постоянный (1), что защищает его от удаления Cron'ом. Связь между файлом и контентом устанавливается через таблицу file_usage.

Система Drupal File API предоставляет функции для работы с этой таблицей, такие как file_save() для создания/обновления записей и file_load() для их загрузки по fid.

Пример SQL-запроса

Найти все постоянные изображения JPEG, загруженные конкретным пользователем:

SELECT fm.fid, fm.filename, fm.uri, fm.filesize, u.name as username FROM file_managed fm INNER JOIN users u ON fm.uid = u.uid WHERE fm.status = 1 AND fm.filemime = 'image/jpeg' AND fm.uid = 5;

Смотрите также

  • таблицу file_usage,
    которая отслеживает использование файлов
  • таблицу users,
    которая хранит данные пользователей
  • таблицу node,
    которая хранит материалы сайта
  • таблицу node_field_data,
    которая хранит данные полей материалов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить