Audit Files

Permite comparar y corregir archivos y referencias de archivos en el directorio de archivos, en la base de datos y en el contenido.

auditfiles
4,265 sites
61
drupal.org

Install

Drupal 11, 10 v4.2.4
composer require 'drupal/auditfiles:^4.2'

Overview

El módulo Audit Files ayuda a mantener sincronizados los archivos en tu servidor con los utilizados por tu sitio Drupal. Proporciona siete informes completos que comparan los archivos en el sistema de archivos del servidor, las entradas en la tabla de base de datos file_managed, la tabla file_usage y las referencias de campos de archivo en entidades de contenido.

El módulo evita intencionalmente el uso de la API de archivos de Drupal al trabajar con archivos y sus referencias para prevenir la creación de problemas adicionales mientras intenta corregir los existentes. Utiliza la API de lotes de Drupal para realizar operaciones de manera eficiente, reduciendo la carga del servidor y previniendo tiempos de espera agotados en sistemas de archivos grandes.

Para cada discrepancia encontrada, los administradores pueden tomar acciones correctivas como agregar archivos a la base de datos, eliminar archivos huérfanos del servidor, eliminar entradas obsoletas de la base de datos o fusionar referencias de archivos duplicados en una única entidad de archivo.

Features

  • Siete informes de auditoría que comparan archivos a través del sistema de archivos, tabla file_managed, tabla file_usage y referencias de contenido
  • Informe de archivos no en base de datos: Lista los archivos en el servidor que no están registrados en la tabla de base de datos file_managed, con opciones para agregarlos a la base de datos o eliminarlos del servidor
  • Informe de archivos no en servidor: Lista los archivos registrados en la base de datos pero ausentes del sistema de archivos, con la capacidad de eliminar entradas de la base de datos
  • Informe de gestionados no usados: Muestra archivos en file_managed que no tienen entradas correspondientes en la tabla file_usage
  • Informe de usados no gestionados: Lista entradas de uso de archivos donde la entidad de archivo correspondiente ya no existe en file_managed
  • Informe de usados no referenciados: Muestra archivos en file_usage que ya no son referenciados por ningún campo de contenido
  • Informe de referenciados no usados: Muestra referencias de archivos en campos de contenido que carecen de entradas correspondientes en file_usage, con opciones para agregar registros de uso o eliminar las referencias
  • Informe de fusión de referencias de archivos: Identifica nombres de archivo duplicados en file_managed y permite fusionar múltiples entidades de archivo en un único archivo canónico
  • Procesamiento por lotes para todas las operaciones para prevenir tiempos de espera agotados en conjuntos de datos grandes
  • Filtros de exclusión configurables para archivos, extensiones y rutas
  • Límites de registros y paginación configurables para optimización del rendimiento
  • Arquitectura basada en eventos que permite la personalización de operaciones de archivos a través de suscriptores de eventos

Use Cases

Limpieza después de migración de contenido

Después de migrar contenido desde otro CMS o versión de Drupal, usa el informe 'No en base de datos' para identificar y registrar archivos que fueron copiados al servidor pero no registrados por Drupal. Agrégalos a la base de datos para hacerlos disponibles para uso en contenido.

Eliminar archivos huérfanos para liberar espacio en disco

Con el tiempo, los archivos pueden acumularse en el servidor desde contenido eliminado o subidas fallidas. Usa el informe 'No en base de datos' para encontrar estos archivos huérfanos y eliminarlos para recuperar espacio en disco.

Arreglar imágenes rotas y descargas

Cuando el contenido muestra imágenes rotas o las descargas fallan, usa el informe 'No en servidor' para identificar archivos registrados en la base de datos pero faltantes del sistema de archivos. Restaura los archivos o limpia las entradas de la base de datos.

Limpieza de base de datos después de desinstalación de módulo

Cuando los módulos se desinstalan sin limpieza adecuada, pueden dejar entradas huérfanas en file_usage. Usa 'Usados no gestionados' para encontrar y eliminar estos registros de uso obsoletos.

Consolidar subidas de archivos duplicados

Cuando los usuarios suben el mismo archivo múltiples veces creando duplicados, usa el informe 'Fusionar referencias de archivos' para identificar archivos con el mismo nombre y fusionarlos en una única entidad, actualizando todas las referencias automáticamente.

Verificar integridad de archivos después de migración de servidor

Después de mover un sitio a un nuevo servidor, ejecuta todos los informes para verificar que el sistema de archivos y la base de datos están sincronizados. Esto ayuda a identificar cualquier archivo que no fue copiado correctamente durante la migración.

Auditar consistencia de la tabla file_usage

Usa los informes 'Usados no referenciados' y 'Referenciados no usados' para asegurar que la tabla file_usage refleja con precisión las referencias de contenido reales. Corrige las discrepancias para mantener la integridad de la base de datos.

Tips

  • Siempre haz una copia de seguridad de tu base de datos y directorio de archivos antes de realizar operaciones de eliminación o fusión
  • Comienza con lotes pequeños al eliminar archivos para verificar que los elementos correctos están seleccionados
  • Usa los ajustes de exclusión para omitir directorios generados por el sistema como css, js y derivados de estilos de imagen
  • Para sitios grandes, establece un límite razonable de máximo de registros (250-500) para prevenir tiempos de espera agotados durante la carga inicial de la página
  • El botón de procesamiento por lotes aparece cuando se alcanza el límite máximo de registros, permitiendo acceso completo al conjunto de datos sin tiempos de espera agotados
  • Revisa el informe 'Gestionados no usados' cuidadosamente - algunos archivos sin usar pueden ser intencionales (por ejemplo, imágenes de marcador de posición, subidas temporales)

Technical Details

Admin Pages 9
Audit Files /admin/config/system/auditfiles

Configura los ajustes globales para todos los informes de Audit Files incluyendo rutas del sistema de archivos, reglas de exclusión, manejo de dominios y opciones de visualización de informes.

Audit Files /admin/reports/auditfiles

Página principal de destino para todos los informes de Audit Files. Proporciona enlaces a siete informes de auditoría especializados para analizar y corregir discrepancias de archivos.

No en base de datos /admin/reports/auditfiles/notindatabase

Lista los archivos que existen en el sistema de archivos del servidor pero no están registrados en la tabla de base de datos file_managed. Estos pueden ser archivos huérfanos cuyo contenido padre fue eliminado, archivos de módulos que no limpiaron correctamente, o archivos subidos fuera de Drupal (por ejemplo, vía FTP). El informe muestra la ruta del archivo, tipo MIME, tamaño y fecha de última modificación.

No en servidor /admin/reports/auditfiles/notonserver

Lista los archivos que tienen entradas en la tabla de base de datos file_managed pero no existen en el sistema de archivos del servidor. Estos archivos faltantes pueden causar imágenes rotas, descargas fallidas u otros problemas de visualización en el contenido.

Gestionados no usados /admin/reports/auditfiles/managednotused

Lista los archivos que existen en la tabla de base de datos file_managed pero no tienen entradas en la tabla file_usage. Esto es a menudo normal para archivos temporales o archivos esperando recolección de basura. Revisa para verificar el comportamiento esperado.

Usados no gestionados /admin/reports/auditfiles/usednotmanaged

Lista las entradas en la tabla file_usage donde la entidad de archivo correspondiente no existe en file_managed. Estos son registros de uso huérfanos que referencian archivos inexistentes.

Usados no referenciados /admin/reports/auditfiles/usednotreferenced

Lista los archivos que tienen entradas en la tabla file_usage pero ya no son referenciados en el contenido que supuestamente los usa. El campo de archivo en la entidad de contenido ya no contiene una referencia al archivo.

Referenciados no usados /admin/reports/auditfiles/referencednotused

Lista las referencias de archivos encontradas en campos de archivo adjuntos a entidades de contenido que no tienen entradas correspondientes en la tabla file_usage. Estas referencias normalmente deberían estar registradas en file_usage.

Fusionar referencias de archivos /admin/reports/auditfiles/mergefilereferences

Lista todos los archivos en file_managed agrupados por nombre de archivo, mostrando posibles duplicados. Permite fusionar múltiples entidades de archivo que tienen el mismo nombre de archivo en un único archivo canónico, consolidando registros de uso y ahorrando espacio en disco.

Permissions 2
Configurar el módulo Audit Files

Permite a los usuarios configurar los ajustes del módulo Audit Files como rutas del sistema de archivos, exclusiones y opciones de informes. Este permiso está marcado como restringido.

Acceder a los informes de Audit Files

Permite a los usuarios acceder a los informes de Audit Files y realizar acciones de auditoría como agregar, eliminar y fusionar archivos.

Troubleshooting 4
Warning: POST Content-Length exceeds limit / Cannot modify header information

Establece un valor más bajo de 'Máximo de registros' en la página de configuración de Audit Files, luego usa el botón 'Cargar todos los registros' en la página del informe para procesar los datos por lotes.

Fatal error: Maximum execution time exceeded

Establece un valor más bajo de 'Máximo de registros' para limitar la consulta inicial. La función de procesamiento por lotes cargará los registros restantes sin alcanzar los límites de tiempo de espera de PHP.

Los informes son lentos o agotan el tiempo de espera

Configura rutas de exclusión apropiadas para directorios con muchos archivos que no necesitan auditoría (por ejemplo, css, js, styles). Reduce los ajustes de elementos por página y máximo de registros.

Archivos eliminados pero aún aparecen en los informes

Limpia la caché de Drupal después de hacer cambios. El módulo consulta la base de datos directamente, pero los datos en caché pueden causar visualizaciones obsoletas.

Security Notes 4
  • El permiso 'configure audit files reports' está marcado como acceso restringido debido al impacto potencial de una configuración incorrecta
  • Las operaciones de eliminación son permanentes y no se pueden deshacer - verifica las selecciones cuidadosamente antes de confirmar
  • La fusión de archivos actualiza las referencias en todo el contenido - asegúrate de que la elección del archivo canónico sea correcta
  • Considera restringir el acceso a estos informes solo a administradores de confianza, ya que proporcionan información detallada sobre el sistema de archivos