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
713 sites
21
drupal.org

Instalar

Drupal 11, 10, 9 v2.1.5
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
Configurar Media Library Importer /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.

Importar archivos a la Media Library /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
Configurar Media Library Importer

Permiso para configurar los ajustes de Media Library Importer incluyendo la carpeta de importación, tipos de medios y mapeo de campos.

Importar archivos a la Media Library

Permiso para acceder a la página de importación y ejecutar operaciones de importación de medios.

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 importación crea archivos duplicados en el directorio de almacenamiento de medios

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.

Se está importando la carpeta de estilos de imagen

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 procesamiento de la cola se agota en importaciones grandes

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.

Algunos archivos no se están importando

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.

Se crean las entidades Media pero el nombre del medio solo muestra el nombre del archivo

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.