Media Library Importer
Un módulo para importar archivos multimedia desde el directorio público a la Media Library de Drupal con procesamiento por lotes basado en colas.
media_library_importer
Instalar
composer require 'drupal/media_library_importer:^2.1'
Overview
Media Library Importer proporciona una solución optimizada para la importación masiva de archivos multimedia existentes desde el sistema de archivos de tu servidor a la Media Library de Drupal. Escanea directorios específicos en busca de archivos multimedia y crea las entidades Media correspondientes para cada archivo, manteniendo la relación adecuada entre archivos y tipos de medios.
El módulo utiliza un enfoque basado en colas con procesamiento por lotes para manejar importaciones grandes de manera eficiente sin que se agote el tiempo de espera. Los archivos se asocian a tipos de medios según sus extensiones, y el módulo previene inteligentemente las importaciones duplicadas verificando si ya existe una entidad Media con el mismo archivo de origen.
Las operaciones de importación pueden iniciarse a través de la interfaz de administración, mediante comandos Drush o programáticamente a través de trabajos cron, proporcionando flexibilidad para diversos flujos de trabajo.
Features
- Importación masiva de archivos multimedia desde cualquier directorio dentro del sistema de archivos públicos a la Media Library
- Procesamiento por lotes basado en colas utilizando Queue UI para manejar importaciones grandes sin tiempos de espera
- Detección automática del tipo de medio basada en las extensiones de archivo configuradas en cada tipo de medio
- Prevención de duplicados: las entidades Media no se recrean si ya existen con el mismo archivo de origen
- Opción de copiar los archivos importados a la ubicación de almacenamiento designada del tipo de medio o mantenerlos en su lugar
- Exclusión configurable de la carpeta de estilos de imagen para evitar importar imágenes derivadas
- Soporte para múltiples tipos de medios incluyendo Image, Document, Audio, Video y cualquier tipo de medio personalizado
- Integración con comandos Drush para importaciones desde línea de comandos (drush media-library:import o drush mli)
- Importaciones programables basadas en cron para importaciones automatizadas programadas
- Hook para agregar valores de campos adicionales a las entidades Media durante la importación
Use Cases
Migrar desde archivos no gestionados a Media Library
Al actualizar un sitio que anteriormente usaba archivos no gestionados o entidades File al sistema Media Library, Media Library Importer puede importar masivamente todos los archivos existentes. Configura la carpeta de importación para que apunte a tu directorio de archivos, selecciona los tipos de medios apropiados y ejecuta la importación para crear entidades Media para todos los archivos existentes.
Carga masiva de medios vía FTP o transferencia de archivos
Para sitios que reciben grandes lotes de archivos multimedia vía FTP o transferencia de archivos, Media Library Importer proporciona un flujo de trabajo para agregar estos archivos a la Media Library. Sube los archivos a una carpeta de importación designada, luego usa la interfaz de administración o el comando Drush para importarlos todos de una vez.
Importaciones automáticas programadas vía cron
Configura importaciones automatizadas implementando hook_cron() en un módulo personalizado. Llama a $media_library_importer_service->generateImportQueue() seguido de processImportQueue() para importar automáticamente los nuevos archivos agregados a la carpeta de importación en cada ejecución de cron.
Importar bibliotecas de imágenes con metadatos EXIF
Al importar colecciones de fotografías o imágenes, habilita el submódulo Media Image EXIF Importer para extraer y almacenar automáticamente los metadatos de la cámara, incluyendo modelo, ISO, apertura, tiempo de exposición y distancia focal de cada imagen importada.
Integración con migración de contenido
Usa el hook hook_alter_media_library_importer_media_extra_fields para poblar campos adicionales de medios durante la importación. Esto es útil al migrar contenido donde los metadatos de medios deben poblarse desde fuentes externas o nombres de archivo.
Tips
- Ejecuta las importaciones vía Drush (drush mli) para lotes grandes ya que maneja mejor los procesos de larga duración que la interfaz web.
- Usa la opción 'Excluir carpeta de estilos' para evitar importar derivados de imágenes como entidades Media separadas.
- El módulo verifica los medios existentes por nombre de archivo y bundle, por lo que los archivos pueden agregarse a la carpeta de importación y la importación puede ejecutarse múltiples veces sin crear duplicados.
- Para importaciones incrementales, coloca los nuevos archivos en la carpeta de importación y ejecuta la importación nuevamente: solo se procesarán los archivos nuevos.
- Habilita el submódulo Media Image EXIF Importer antes de importar imágenes para capturar los metadatos de la cámara durante la importación inicial.
- Configura correctamente los mapeos de campos de tipos de medios: el módulo necesita saber qué campo almacena el archivo multimedia para cada tipo de medio.
Technical Details
Admin Pages 2
/admin/config/media/media-library-importer
Configurar los ajustes de Media Library Importer incluyendo la carpeta de origen de importación, los tipos de medios a importar y las opciones de manejo de archivos.
/admin/config/media/media-library-importer/import
Ejecutar la operación de importación de medios. Muestra un árbol de carpetas dentro del directorio de importación configurado con recuentos de archivos multimedia importables. Seleccionar las carpetas a incluir en la importación y ejecutar el proceso por lotes.
Permisos 2
Hooks 1
hook_alter_media_library_importer_media_extra_fields
Permite a los módulos agregar valores de campos adicionales a las entidades Media durante la importación. Se invoca durante la generación de la cola para cada archivo que se está importando.
Drush Commands 1
drush media-library:import
Importar entidades Media según los ajustes configurados de Media Library Importer. Escanea la carpeta de importación configurada y crea entidades Media para todos los archivos coincidentes que aún no existen en la Media Library.
Troubleshooting 5
La opción 'Importar archivos a la ubicación configurada en el medio' copia los archivos al directorio configurado del tipo de medio. Si deseas mantener los archivos en su ubicación original sin copiarlos, desmarca esta opción en el formulario de configuración.
Asegúrate de que la casilla 'Excluir carpeta de estilos de imagen multimedia' esté marcada en la configuración. Esto evita que el directorio /styles (que contiene los derivados de imágenes) sea escaneado durante la importación.
El módulo usa Queue UI para el procesamiento por lotes que maneja importaciones grandes. Si aún experimentas problemas, aumenta los límites de tiempo de ejecución de PHP o ejecuta las importaciones mediante el comando Drush que puede manejar tiempos de procesamiento más largos.
Verifica que la extensión del archivo esté permitida en los ajustes del campo de origen del tipo de medio configurado. El módulo asocia los archivos a los tipos de medios según sus extensiones. También verifica que la ruta de la carpeta de importación sea correcta y accesible.
Este es el comportamiento esperado. El módulo usa el nombre del archivo como nombre de la entidad Media. Usa el hook hook_alter_media_library_importer_media_extra_fields para personalizar el nombre del medio u otros campos durante la importación.