File Delete (extras)
Extiende la funcionalidad de eliminación de archivos del núcleo de Drupal con salvaguardas adicionales y opciones para eliminación inmediata y anulación de verificación de uso.
file_delete
Install
composer require 'drupal/file_delete:^3.0'
composer require 'drupal/file_delete:^2.0'
Overview
El módulo File Delete mejora las capacidades de eliminación de archivos integradas en Drupal proporcionando una interfaz de eliminación de archivos más robusta y flexible. Mientras que Drupal core 10.1+ incluye funcionalidad básica de eliminación de archivos, este módulo intercepta la ruta del núcleo y proporciona su propio formulario con características adicionales.
El módulo cambia los archivos del estado 'Permanente' al estado 'Temporal' por defecto, permitiendo que el cron de Drupal los limpie según el período de retención de archivos temporales configurado. Además, proporciona opciones para eliminación inmediata y la capacidad de anular las verificaciones de uso con fines administrativos.
Una característica de seguridad clave es la protección integrada que impide la eliminación de archivos que están actualmente en uso por otras entidades, mostrando mensajes de error útiles con enlaces para ver los usos del archivo cuando la eliminación está bloqueada.
Features
- Salvaguarda integrada que impide la eliminación de archivos con uso activo por otras entidades
- Opción para eliminar archivos inmediatamente, omitiendo el proceso de limpieza de archivos por cron de Drupal
- Opción para forzar la eliminación de archivos anulando la verificación de acceso de uso integrada (para usuarios avanzados)
- Plugins de acción masiva para realizar eliminaciones masivas de archivos desde la vista de Archivos
- Integración perfecta con la vista de administración de Archivos del núcleo (/admin/content/files)
- Mensajes de error claros con enlaces a información de uso de archivos cuando la eliminación está bloqueada
- Limpieza automática de referencias de archivos del seguimiento de uso del módulo 'file'
Use Cases
Limpieza de archivos no utilizados después de una migración de contenido
Después de migrar contenido a un nuevo sitio Drupal, puede tener archivos huérfanos que ya no son referenciados por ningún contenido. Use la vista de Archivos (/admin/content/files) para identificar archivos con cero uso, seleccione múltiples archivos y use la acción masiva 'Marcar archivo para eliminación' para ponerlos en cola de forma segura para su eliminación durante la próxima ejecución del cron.
Eliminación inmediata de archivos sensibles
Si un archivo que contiene información sensible fue subido accidentalmente, los administradores con el permiso 'Eliminar archivos instantáneamente' pueden eliminarlo inmediatamente del servidor sin esperar al cron. Navegue al formulario de eliminación del archivo y habilite la opción '¿Desea eliminar el archivo inmediatamente?'.
Gestión de espacio en disco en sitios de alto tráfico
En sitios con carga pesada de archivos, los archivos temporales pueden acumularse. Use la acción masiva 'Eliminar inmediatamente (con verificaciones de uso)' para liberar espacio en disco instantáneamente mientras mantiene la verificación de seguridad que impide la eliminación de archivos en uso activo.
Resolución de problemas de referencias de archivos con entidades Media
Al trabajar con Drupal Media, los archivos son frecuentemente referenciados por entidades Media. Antes de eliminar un archivo, primero debe eliminar la entidad Media asociada. El módulo le mostrará qué módulos están usando el archivo y proporcionará un enlace para ver los usos, ayudándole a identificar y eliminar las referencias de Media antes de la eliminación del archivo.
Eliminación forzada de archivos durante el mantenimiento del sitio
Durante reestructuraciones importantes del sitio, los administradores con el permiso 'Anular uso para eliminar archivos' pueden forzar la eliminación de archivos incluso cuando el seguimiento de uso indica que están en uso. Esto es útil cuando sabe que el seguimiento de uso es incorrecto o cuando intencionalmente desea eliminar archivos independientemente de las consecuencias.
Tips
- Siempre verifique los usos del archivo antes de eliminar para evitar contenido roto - el módulo ayuda bloqueando la eliminación de archivos usados
- Use 'Marcar archivo para eliminación' para tareas de limpieza regulares, ya que sigue el ciclo de vida estándar de archivos de Drupal
- Reserve 'Eliminar inmediatamente' para situaciones urgentes o cuando necesite liberar espacio en disco rápidamente
- Al trabajar con entidades Media, recuerde eliminar primero la entidad Media, luego el archivo subyacente
- Otorgue el permiso 'Anular uso para eliminar archivos' con moderación, ya que puede causar medios y enlaces rotos si se usa incorrectamente
- Configure un período de retención de archivos temporales apropiado en la configuración del Sistema de archivos según las necesidades de su sitio
Technical Details
Admin Pages 1
/file/{file}/delete
Formulario de confirmación para eliminar un archivo específico. Muestra el nombre del archivo y URI, proporciona opciones para eliminación inmediata y eliminación forzada (si el usuario tiene los permisos apropiados), e impide la eliminación de archivos en uso a menos que la eliminación forzada esté habilitada.
Permissions 2
Hooks 2
hook_entity_type_build
Altera la definición del tipo de entidad file para reemplazar la clase de formulario de eliminación predeterminada con FileDeleteForm
hook_help
Proporciona texto de ayuda para la página de ayuda del módulo
Troubleshooting 4
Drupal mantiene los archivos temporales durante un período configurable (6 horas por defecto) antes de eliminarlos. Verifique la configuración de retención en Administración > Configuración > Medios > Sistema de archivos. Alternativamente, use la opción o acción 'Eliminar inmediatamente' para omitir este período de espera.
El módulo impide la eliminación de archivos con uso activo para evitar contenido roto. Haga clic en el enlace proporcionado para ver los usos del archivo, luego elimine las referencias de las entidades que lo usan (por ejemplo, elimine entidades Media o edite contenido) antes de intentar eliminar el archivo nuevamente. Los administradores también pueden habilitar 'forzar eliminación' para anular esta protección.
Después de instalar el módulo, necesita agregar manualmente el campo a su vista de Archivos. Vaya a Administración > Estructura > Views > Archivos > Editar, agregue un nuevo campo y busque 'Enlace para eliminar Archivo'.
Asegúrese de que la vista tenga un campo de operaciones masivas configurado. El módulo instala las configuraciones de acción automáticamente, pero la vista debe estar configurada para mostrar operaciones masivas. Verifique que existan las configuraciones system.action.mark_file_for_deletion y system.action.immediate_delete.
Security Notes 5
- Ambos permisos específicos del módulo están marcados con 'restrict access: true', indicando que solo deben otorgarse a administradores de confianza
- El permiso 'Anular uso para eliminar archivos' permite omitir las verificaciones de seguridad y puede resultar en contenido roto si se usa incorrectamente
- El permiso 'Eliminar archivos instantáneamente' omite la limpieza basada en cron de Drupal, sin proporcionar ventana de recuperación
- Se utiliza manipulación directa de base de datos en la acción ImmediateDeleteWithUsageChecks - asegúrese de mantener copias de seguridad adecuadas de la base de datos
- La eliminación de archivos es permanente y no se puede deshacer - considere implementar una estrategia de respaldo para archivos críticos