В этой статье:

Настройка удаления файлов по расписанию в MinIO

Создание расписания

Удаление правила

Настройка удаления файлов по расписанию через терминал

Создание расписания

Удаление правила

Очистка файлового хранилища MinIO по расписанию

При использовании локального файлового хранилища MinIO настройте удаление файлов по расписанию для увеличения свободного объёма памяти. Например, при расширенном логировании событий со статусом «Дебаг» в MinIO сохраняются JSON-файлы с ответами, которые были получены при выполнении запросов к источникам данных, и хранятся в отдельном разделе debug-logs-storage по пути debug_logs/<наименование среды>/<наименование проекта>/<наименование ресурса>.

Используемые разделы MinIO в каталоге «Buckets»:

Настройка удаления файлов из хранилища MinIO по расписанию осуществляется в веб-интерфейсе MinIO или через терминал.

Настройка удаления файлов по расписанию в MinIO

Для настройки удаления файлов по расписанию откройте приложение MinIO по адресу:

http://<IP-адрес или DNS-имя сервера>:9001

После выполнения действия будет открыто приложение MinIO. Перейдите в раздел «Administrator > Buckets» на боковой панели:

В каталоге «Buckets» содержатся разделы MinIO: backups, debug-logs-storage, django-local-storage, media.

Создание расписания

Для создания расписания, по которому будут автоматически удаляться файлы из хранилища:

  1. Откройте раздел MinIO. Рассмотрим создание расписания на примере раздела debug-logs-storage:

  1. Создайте правило, определяющее сроки хранения файлов, с помощью кнопки «Add Lifecycle Rule» в подразделе «Lifecycle». После нажатия кнопки будет открыто окно «Add Lifecycle Rule»:

  1. Задайте срок хранения файлов в днях в параметре «After».

  2. Нажмите кнопку «Save».

  3. Повторите шаги для создания нескольких правил в разных разделах MinIO.

После выполнения действий будет создано расписание для удаления файлов из хранилища в соответствии с созданными правилами.

Удаление правила

Для удаления правила, определяющего срок хранения файлов, из расписания:

  1. Откройте раздел MinIO. Рассмотрим удаление правила на примере раздела debug-logs-storage:

  1. Нажмите кнопку «Remove», расположенную напротив существующего правила.

После выполнения действий будет удалено правило из расписания.

Настройка удаления файлов по расписанию через терминал

Создание расписания и удаление правил через терминал приведено для одиночной конфигурации продукта «Форсайт. Мобильная платформа».

Создание расписания

Для создания расписания, по которому будут автоматически удаляться файлы из хранилища:

  1. Убедитесь, что контейнеры мобильной платформы запущены и работают корректно, а также проверьте наименование контейнера MinIO - fmp_minio_1:

% docker ps

Примечание. Наименование контейнера MinIO может отличаться при работе с различными версиями «Форсайт. Мобильная платформа».

  1. Создайте правила, определяющие сроки хранения файлов:

% docker exec -ti <наименование контейнера MinIO> mc ilm rule add --expire-days <количество дней> <путь до раздела MinIO>

В подстановках:

Пример команды:

% docker exec -ti fmp_minio_1 mc ilm rule add --expire-days 1 local/debug-logs-storage

После выполнения команды будет создано правило, по которому будут удалены файлы в разделе debug-logs-storage через один день после их загрузки в хранилище.

При успешном создании правила выводится сообщение:

Lifecycle configuration rule added with ID `<идентификатор созданного правила>` to <путь до раздела MinIO>.

Например:

Lifecycle configuration rule added with ID `d13uj9nu7g4s6pmtdk30` to local/debug-logs-storage.

При необходимости создайте несколько правил для разных разделов MinIO.

  1. Получите список существующих правил и убедитесь, что новые правила созданы:

% docker exec -ti <наименование контейнера MinIO> mc ilm rule ls <путь до раздела MinIO>

Пример команды:

% docker exec -ti fmp_minio_1 mc ilm rule ls local/debug-logs-storage

После выполнения команды будет отображена таблица, в которой содержатся существующие правила для указанного раздела MinIO:

┌───────────────────────────────────────────────────────────────────────────────────────┐
│ Expiration for latest version (Expiration)                                            │
├──────────────────────┬─────────┬────────┬──────┬────────────────┬─────────────────────┤
│ ID                   │ STATUS  │ PREFIX │ TAGS │ DAYS TO EXPIRE │ EXPIRE DELETEMARKER │
├──────────────────────┼─────────┼────────┼──────┼────────────────┼─────────────────────┤
│ d13uj9nu7g4s6pmtdk30 │ Enabled │ -      │ -    │              1 │ false               │
└──────────────────────┴─────────┴────────┴──────┴────────────────┴─────────────────────┘

После выполнения действий будет создано расписание для удаления файлов из хранилища в соответствии с созданными правилами.

Удаление правила

Для удаления правила, определяющего срок хранения файлов, из расписания:

  1. Убедитесь, что контейнеры мобильной платформы запущены и работают корректно, а также проверьте наименование контейнера MinIO - fmp_minio_1:

% docker ps

Примечание. Наименование контейнера MinIO может отличаться при работе с различными версиями «Форсайт. Мобильная платформа».

  1. Определите идентификатор правила, которое необходимо удалить:

    1. Получите список существующих правил:

% docker exec -ti <наименование контейнера MinIO> mc ilm rule ls <путь до раздела MinIO>

В подстановках:

Пример команды:

% docker exec -ti fmp_minio_1 mc ilm rule ls local/debug-logs-storage

После выполнения команды будет отображена таблица, в которой содержатся существующие правила для указанного раздела MinIO:

┌───────────────────────────────────────────────────────────────────────────────────────┐
│ Expiration for latest version (Expiration)                                            │
├──────────────────────┬─────────┬────────┬──────┬────────────────┬─────────────────────┤
│ ID                   │ STATUS  │ PREFIX │ TAGS │ DAYS TO EXPIRE │ EXPIRE DELETEMARKER │
├──────────────────────┼─────────┼────────┼──────┼────────────────┼─────────────────────┤
│ d13uj9nu7g4s6pmtdk30 │ Enabled │ -      │ -    │              1 │ false               │
└──────────────────────┴─────────┴────────┴──────┴────────────────┴─────────────────────┘

    1. Скопируйте идентификатор правила, содержащийся в столбце «ID» полученной таблицы.

  1. Удалите правило по идентификатору:

% docker exec -ti <наименование контейнера MinIO> mc ilm rule rm --id "<идентификатор правила>" <путь до раздела MinIO>

Пример команды:

% docker exec -ti fmp_minio_1 mc ilm rule rm --id "d13uj9nu7g4s6pmtdk30" local/debug-logs-storage

При успешном удалении правила выводится сообщение:

Rule ID `<идентификатор правила>` from target <путь до раздела MinIO> removed.

Например:

Rule ID `d13uj9nu7g4s6pmtdk30` from target local/debug-logs-storage removed.

При необходимости удалите несколько правил для разных разделов MinIO.

  1. Получите список существующих правил аналогично шагу 2а и убедитесь, что правило удалено:

% docker exec -ti <наименование контейнера MinIO> mc ilm rule ls <путь до раздела MinIO>

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

mc: <ERROR> Unable to get lifecycle. The lifecycle configuration does not exist.

После выполнения действий будет удалено правило из расписания.

См. также:

База знаний