¿Qué es el Almacenamiento de Archivos?

El Almacenamiento de Archivos es un nuevo componente del conjunto de software Kickidler, diseñado para almacenar datos binarios (vídeo y audio) recopilados por los agentes, fuera de la base de datos central. Funciona en disco local y mejora significativamente la estabilidad y el rendimiento del sistema.

El almacenamiento de archivos proporciona:

  • almacenamiento de todos los archivos de vídeo y audio grabados por un agente Kickidler,
  • descarga de datos binarios voluminosos desde PostgreSQL,
  • mayor escalabilidad al trabajar con un gran número de agentes.

Tipos de datos almacenados:

  • screen/ — grabaciones de pantalla,
  • audio/ — grabaciones de micrófono.

Estructura de almacenamiento

Los datos se almacenan según la siguiente estructura:

año/mes/día/tipo/

Este enfoque proporciona flexibilidad y simplifica la administración.

Eliminación de datos

El sistema elimina automáticamente los datos obsoletos:

  • realiza comprobaciones cada 10 minutos,
  • la eliminación se realiza a diario (por carpetas),
  • el periodo de retención puede configurarse desde la interfaz del nodo central.

Qué ocurre durante la instalación y actualización

En instalación nueva:

  • el usuario indica la ruta del almacenamiento,

En actualización:

  • los datos existentes en la base de datos permanecen,
  • los nuevos vídeos y audios se guardan en el almacenamiento externo,
  • se garantiza la compatibilidad: el sistema continúa leyendo datos antiguos desde la base de datos.

Características y limitaciones

  • soporta más de 1000 agentes simultáneamente,
  • sin límite de tamaño para .blob (hasta 9 GB),
  • retransmisión de datos en caso de pérdida de conexión,
  • claves únicas evitan duplicación,
  • la seguridad se garantiza mediante permisos del SO (los archivos no están cifrados).

Ubicación predeterminada del almacenamiento

Windows:

C:\ProgramData\ki-data

Linux:

/var/opt/ki

Importante: Las carpetas se crean automáticamente tras la instalación del servidor.

Cambiar la ruta de almacenamiento

La ruta puede modificarse mediante el archivo node.ini.

Instrucciones para cambiar la ruta:

  1. Detenga el servicio KickidlerNode (nns):

    En Windows, desde "Servicios" (services.msc) o línea de comandos:

    net stop nns
    On Linux:
    systemctl stop kickidlernode
  2. Abra el archivo de configuración:

    Windows: C:\Program Files\KickidlerNode\config\

    Linux: /opt/KickidlerNode/

    Abra node.ini con un editor de texto (Notepad, Vim, Nano, etc.).

  3. Establezca la nueva ruta:

    Busque la línea

    fileStoragePath=

    Si existe: cambie el valor después del = por la ruta absoluta del nuevo directorio.

    Si no existe: añada al final del archivo:

    fileStoragePath=<New_Path>

    Formato de la ruta:

    Use barras diagonales / (estilo Unix), incluso en Windows.

    Ejemplo Windows:

    fileStoragePath=D:/KickidlerData/ o E:/Monitoring/Records/

    Ejemplo Linux:

    fileStoragePath=/mnt/storage/kickidler_data/

    Asegúrese de que la ruta finalice con /.

  4. Guarde node.ini y reinicie el servicio:

  5. Windows

    net start nns

    Linux

    systemctl start kickidlernode
  6. Migración de datos existentes

    Si necesita registros que estén en la carpeta antigua (C:\ProgramData\ki-data o /var/opt/ki), copie o mueva manualmente todo el contenido a la nueva ruta especificada en fileStoragePath= tras reiniciar el servicio con la nueva configuración.

    Asegúrese de que la estructura dentro de la nueva carpeta coincida con la anterior: año/mes/día/screen/, año/mes/día/audio/

    Advertencias clave al cambiar la ruta:

    Permisos de acceso: Asegúrese de que la cuenta bajo la cual se ejecuta el servicio nns (KickidlerNode) tenga permisos completos (lectura/escritura/modificación) en la nueva carpeta objetivo y sus subcarpetas.

    Espacio en disco suficiente: El nuevo disco debe tener espacio libre suficiente para almacenar las grabaciones.

    Parada del servicio requerida: El cambio de configuración requiere detener el servicio. No se admite cambiar en caliente y podría generar errores.

Estructura del almacenamiento de datos

Los datos se organizan jerárquicamente por fecha:

Año (YYYY)/

       Mes (MM)/

           Día (DD)/

               screen/ (carpeta con archivos de vídeo)

               audio/ (carpeta con archivos de audio)

Formatos de archivo (dentro de screen/ y audio/):

  • <Numero>.lock
  • <Numero>.blob
  • <Numero>.key

Importante: Estos archivos no son formatos estándar de vídeo o audio (.mp4, .wav, etc.). No se pueden abrir directamente con reproductores de terceros. Se utilizan exclusivamente por el reproductor interno de Kickidler Viewer. Eliminar estos archivos hará que las grabaciones correspondientes no estén disponibles en el Viewer.

Gestión del periodo de retención y eliminación de datos

Eliminación automática: Desde mayo de 2025, se ha añadido la funcionalidad de eliminar automáticamente vídeos (y audios relacionados) al expirar el periodo de retención.

Cómo configurar el periodo de retención:

  1. Abra la interfaz web del Administrador Kickidler.
  2. Vaya a Configuration → Components & Coordination → Server.
  3. Busque el parámetro Video Retention Period.
  4. Establezca el número de días deseado (p. ej., 7, 14, 30).
  5. Guarde los cambios.

Cómo funciona:

Al expirar el “Video Retention Period” (contado desde la fecha de grabación):

  1. Las grabaciones se eliminan de la base de datos del servidor central.
  2. Los archivos correspondientes (.lock, .blob, .key) en el almacenamiento local del Node se eliminan automáticamente.

No es necesario ni recomendable eliminar manualmente, ya que hacerlo antes del plazo provocará que esas grabaciones no estén disponibles, y aquellos archivos que sobrevivan tras el plazo serán eliminados automáticamente.

Eliminación manual de datos

No se recomienda para uso rutinario, ya que la eliminación automática cubre esta tarea.

Úselo solo si:

  • Necesita liberar espacio en disco de inmediato.
  • Debe eliminar datos de un periodo específico aún dentro del “Video Retention Period”.

Cómo eliminar manualmente:

  1. Detenga el servicio KickidlerNode (nns).
  2. Acceda a la carpeta de almacenamiento local.
  3. Elimine las subcarpetas correspondientes (Año/Mes/Día) de los datos que desea borrar.
  4. Reinicie el servicio.

Eliminar carpetas/archivos manualmente impedirá que las grabaciones correspondientes estén disponibles en Kickidler Viewer. Los datos en la base de datos del servidor no se eliminan automáticamente y pueden quedar con referencias rotas a archivos ausentes.

Resumen para el administrador:

  1. Ruta de almacenamiento:

    Configurada en node.ini → fileStoragePath (estilo Unix), después de detener el servicio. Verifique permisos!

  2. Estructura:

    Año/Mes/Día/screen|audio/ con archivos .lock, .blob, .key. No modifique manualmente salvo sea necesario.

  3. Limpieza:

    Configure el Video Retention Period desde la interfaz web (Configuration → Components & Coordination → Server). La eliminación automática de archivos y registros en la base de datos ya está activa. La limpieza manual debe ser la última opción.