Жизненный цикл файлов в хранилище

Описание актуально для SuiteCRM версий 8.9.0+

В этом разделе описывается жизненный файлов, загружаемых в хранилище.

1. Этапы жизненного цикла

1.1. Загрузка файла на сервер хранилища

  1. Когда пользователь выбирает файл, он немедленно загружается на сервер хранилища.

  2. После загрузки в соответствующей таблице хранилища (например, private-documents, public-documents) создаётся новая запись.

  3. Загруженный файл помечается как временный.

1.2. Связывание с родительской записью

  1. При сохранении родительской записи (например, заметки) загруженный файл связывается с родительской записью с помощью полей parentModule, parentId и parentField. После этого с файла снимается пометка временного.

  2. Если пользователь отменяет сохранение записи или не использует загруженный файл (если родительская запись помечена на удаление), временный файл остаётся в системе до тех пор, пока не будет удалён.

1.3. Удаление временных файлов

Для удаление временных файлов ежеминутно запускается соответствующее Задание планировщика (интервал запуска Задания может быть настроен). Удаляются файлы, созданные более 3 дней назад (интервал также может быть настроен с помощью параметра max_temp_file_lifetime). Удаление выполняется пакетами по 50 файлов (количество одномоментно удаляемых файлов также может быть настроено с помощью параметра max_temp_file_batch_per_table). Такая схема гарантирует, что неиспользуемые временные файлы не будут накапливаться в системе.

1.4. Удаление родительской записи

При удалении родительской записи все связанные с ней файлы помечаются как удалённые.

1.5. Замена файлов

При замене файла новым загруженным файлом прежний вариант немедленно удаляется, не помечаясь как удалённый.

1.6. Безвозвратное удаление

При выполнении Задания планировщика Очищать БД…​ происходит как удаление записей, помеченных на удаление (deleted = 1), так и удаление из хранилища всех файлов, связанных с удаляемыми записями.

2. Примечания

  • Файлы, помеченные как временные, автоматически удаляются Планировщиком.

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

  • Все параметры конфигурации (см. ниже) можно настраивать.

3. Параметры

3.1. Частота удаленияи временных файлов

Назначение

Частота выполнения задания по удалению временных файлов. По умолчанию — каждую минуту.

Настройка

В панели администратора откройте подраздел Планировщик и отредактируйте задание Удаление временных файлов. Вы можете установить желаемую частоту (например, ежечасно, ежедневно, еженедельно).

По умолчанию: каждую минуту

3.2. max_temp_file_lifetime

Назначение

Максимальный срок хранения временных файлов (в днях) до их удаления планировщиком. По умолчанию — 3 дня.

Настройка

Укажите значение в формате ЧАСЫ/ДНИ/МИНУТЫ. В файле public/legacy/config.php или в файле public/legacy/config_override.php (предпочтительней) используйте ключ max_temp_file_lifetime.

По умолчанию: 72 ЧАСА

Пример:

config_override.php
$sugar_config['max_temp_file_lifetime'] = '24 ЧАСА';

3.3. max_temp_file_batch_per_table

Назначение

Количество временных файлов пакетного удаления в таблице. Значение по умолчанию — 50. При каждом запуске планировщик будет одномоментно обрабатывать до указанного количества записей в таблице.

Настройка

Укажите количество обрабатываемых записей. В файле public/legacy/config.php или в файле public/legacy/config_override.php (предпочтительней) используйте ключ max_temp_file_batch_per_table.

По умолчанию: 50

Пример:

config_override.php
$sugar_config['max_temp_file_batch_per_table'] = '10';

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.