- Что такое файловое хранилище?
- Расположение хранилища (по умолчанию)
- Изменение пути к хранилищу 
- Структура хранения данных внутри хранилища
- Управление сроком хранения и удаление данных
- Ручное удаление данных 
- Резюме для администратора
Что такое файловое хранилище?
Файловое хранилище — это новый компонент программного комплекса Kickidler, предназначенный для хранения бинарных данных (видео и аудио), собранных агентами, вне центральной базы данных. Хранилище работает на локальном диске и позволяет существенно повысить стабильность и производительность системы.
Файловое хранилище обеспечивает:
- хранение всех видео- и аудиофайлов, записанных агентом Kickidler,
- разгрузку PostgreSQL от объёмных бинарных данных,
- повышение масштабируемости при работе с большим числом агентов.
Типы сохраняемых данных:
- screen/ — видеозаписи экрана,
- audio/ — аудиозаписи с микрофона.
Структура хранения
Данные записываются по следующей структуре:
<год>/<месяц>/<день>/<тип>/
Такой подход обеспечивает гибкость и упрощает администрирование.
Удаление данных
Система автоматически удаляет устаревшие данные:
- проверка проводится каждые 10 минут,
- удаление выполняется посуточно (папками),
- срок хранения настраивается через интерфейс центральной ноды.
Что происходит при установке и обновлении
При новой установке:
- пользователь указывает путь к хранилищу,
При обновлении:
- существующие данные в базе остаются,
- новые видео и аудио сохраняются во внешнее хранилище,
- обеспечивается обратная совместимость: система продолжает читать старые данные из БД.
Особенности и ограничения
- поддержка более 1000 агентов одновременно,
- нет ограничения на размер .blob (до 9 ГБ),
- повторная отправка данных при разрыве связи,
- уникальные ключи исключают дублирование,
- безопасность обеспечивается правами доступа ОС (файлы не шифруются).
Расположение хранилища (по умолчанию)
Windows:
C:\ProgramData\ki-data
Linux:
/var/opt/ki
Важно: Директории создаются автоматически после установки сервера.
Изменение пути к хранилищу
Путь к хранилищу можно изменить через конфигурационный файл node.ini.
Инструкция по изменению пути:
-
Остановите службу KickidlerNode (nns):
Через "Службы" Windows (services.msc) или командную строку/терминал:net stop nns
для Linuxsystemctl stop kickidlernode
-
Откройте конфигурационный файл:
Перейдите в папку: C:\Program Files\KickidlerNode\config\ (Windows) или /opt/KickidlerNode/
Откройте файл node.ini в текстовом редакторе (Блокнот, Notepad++, Vim, Nano и т.д.).
-
Задайте новый путь:
Найдите строку
fileStoragePath=
Если строка существует:
Измените значение после = на абсолютный путь к новой желаемой директории хранения.
Если строки нет:
Добавьте новую строку в конец файла:
fileStoragePath=<Новый_Путь>
Формат пути:
Используйте прямые слеши (`/`) (Unix-стиль), даже в Windows.
Пример для Windows: fileStoragePath=D:/KickidlerData/ или fileStoragePath=E:/Monitoring/Records/
Пример для Linux: fileStoragePath=/mnt/storage/kickidler_data/
Убедитесь, что путь заканчивается на /.
-
Сохраните файл `node.ini`.
-
Запустите службу KickidlerNode (nns):
Windowsnet start nns
Linuxsystemctl start kickidlernode
-
Перенос существующих данных:
Если вам нужны записи, уже находящиеся в старой папке (C:\ProgramData\ki-data или /var/opt/ki), вручную скопируйте или переместите все содержимое старой папки в новую папку, указанную в fileStoragePath=, после запуска службы с новыми настройками.
Убедитесь, что структура внутри новой папки соответствует старой (Год/Месяц/День/screen/, Год/Месяц/День/audio/).
Ключевые предупреждения при изменении пути:
Права доступа: Убедитесь, что учетная запись, под которой работает служба nns (windows) KickidlerNode ), имеет полные права (чтение/запись/изменение) на новую целевую директорию и все ее поддиректории.
Достаточное место: На новом диске должно быть достаточно свободного места для хранения записей.
Остановка службы: Изменение конфига требует обязательной остановки службы. Изменение "на лету" не поддерживается и может привести к ошибкам.
Структура хранения данных внутри хранилища
Данные организованы иерархически по дате:
Год (YYYY)/
Месяц (MM)/
День (DD)/
screen/ (Папка с видеофайлами)
audio/ (Папка с аудиофайлами)
Форматы файлов (Внутри `screen/` и `audio/`):
- <Число>.lock
- <Число>.blob
- <Число>.key
Важно: Эти файлы не являются стандартными видео/аудио файлами (.mp4, .wav и т.д.). Их нельзя открыть напрямую сторонними плеерами. Они используются исключительно плеером внутри Kickidler Viewer. Удаление этих файлов сделает соответствующие записи недоступными для просмотра в Viewer.
Управление сроком хранения и удаление данных
Автоматическое удаление: Начиная с мая 2025 года, добавлена функция автоматического удаления видео (и связанных с ними аудио) данных по истечении заданного срока.
Настройка срока хранения:
- Откройте веб-интерфейс Администратора Kickidler.
- Перейдите в раздел: `Конфигурация` -> `Компоненты и координация` -> `Сервер`.
- Найдите параметр `Период хранения видео`.
- Установите желаемое количество дней, в течение которых записи должны храниться на Node (например, 7, 14, 30).
- Сохраните изменения конфигурации сервера.
Как это работает:
По истечении установленного "Периода хранения видео" (считая от даты записи):
- Записи удаляются из центральной базы данных сервера.
- Соответствующие файлы (.lock, .blob, .key) в локальном хранилище на Node автоматически удаляются.
Ручное удаление файлов из папок хранилища больше не требуется и не рекомендуется, так как файлы, удаленные вручную до истечения срока, сделают записи недоступными в Viewer, а файлы, оставшиеся после истечения срока, будут удалены автоматически.
Ручное удаление данных
Не рекомендуется для повседневного управления, так как автоматическое удаление теперь покрывает эту задачу.
Используйте только если:
- Требуется немедленно освободить место на диске прямо сейчас.
- Нужно удалить данные за конкретный период, который еще не истек согласно настройке "Период хранения видео".
Как удалить вручную:
- Остановите службу KickidlerNode (nns) (см. п.3.1).
- Перейдите в папку локального хранилища (стандартную или измененную).
- Удалите соответствующие подпапки (Год/Месяц/День), данные из которых хотите стереть.
- Запустите службу KickidlerNode (nns).
Важное предупреждение: Удаление папок/файлов вручную напрямую приведет к невозможности просмотра соответствующих записей в Kickidler Viewer. Данные в БД сервера не удаляются автоматически при этом и могут стать "битыми" (ссылаться на отсутствующие файлы).
Резюме для администратора:
-
Путь хранилища:
Настраивается в node.ini -> fileStoragePath (в Unix-стиле) после остановки службы. Проверьте права!
-
Структура:
Год/Месяц/День/screen|audio/ с файлами .lock, .blob, .key. Не трогайте вручную без необходимости.
-
Очистка:
Настройте `Период хранения видео` в веб-интерфейсе (Конфигурация -> Компоненты и координация -> Сервер). Автоматическое удаление файлов и записей из БД теперь работает. Ручная чистка - крайняя мера.