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
24,519 sites
57
drupal.org

Install

Drupal 11, 10 v3.0.0
composer require 'drupal/file_delete:^3.0'
Drupal 9, 8 v2.0.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
Eliminar archivo /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
Anular uso para eliminar archivos

Permite a los usuarios eliminar archivos del sistema de archivos incluso si están actualmente en uso por otras entidades. Advertencia: Esto puede causar enlaces rotos y contenido de medios faltante. Este permiso está marcado como 'acceso restringido' y solo debe otorgarse a administradores de confianza.

Eliminar archivos instantáneamente

Permite a los usuarios eliminar archivos del sistema de archivos inmediatamente, omitiendo el proceso de limpieza de archivos temporales de Drupal (que normalmente se ejecuta durante el cron). Este permiso está marcado como 'acceso restringido' y solo debe otorgarse a usuarios de confianza.

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
El archivo está configurado como 'Temporal' pero no se elimina después de ejecutar el cron

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.

No se puede eliminar un archivo porque muestra que está 'en uso'

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.

El campo 'Enlace para eliminar Archivo' no aparece en Views

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'.

Las acciones masivas no aparecen en el menú desplegable de la vista de Archivos

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