Configuration form
Import Form

A module to import media files from public directory into media library.

There are a lot of tutorials on how to import file entities into media galleries using migration tools.
But they are neither practical nor easy. This simple module imports your previously uploaded images into media library.

This module can also import unmanaged files. If you simply upload a folder containing images (and subfolders containing other image files) all the image files in the uploaded folders will be converted to media entities.

LATEST NEWS:

  • Now non-image files (pdf,docx,xlsx,pptx amd mp4 files) can also be imported.
  • Since release 2.1.1 this module also embeds the Media Image Exif Importer (media_image_exif_importer) submodule, as Drupal 11 enhancement / upgraded fork of its original Media Entity Image EXIF module which looks declared abandoned by its maintainers and frozen within its compatibility with Drupal 10.

How it works

  1. The module scans the configured source folder, matching files to media types by their extension.
  2. For each matched file, a File entity is loaded (if already managed) or created.
  3. Items are dispatched to a queue as bundle / file / extra fields triples.
  4. The queue worker creates a Media entity for each item, attaching the file to the correct source field. If a matching Media entity already exists for that file, the item is skipped — guaranteeing no duplicates across runs.
  5. If Immediately process queue on submit is enabled (the default), the queue is drained as a batch process right after the import form is submitted. Otherwise, items remain in the queue for cron or manual processing via the Queue UI.

Requirements

The module requires the Drupal core Media and Media Library modules.

Since 2.0 it requires additional Queue Ui
contrib module to properly process queue with batch imports.

Instructions

  • Require the module with composer, or unpack the code base in the *modules* folder, currently in the root of your Drupal installation.
  • Enable the module in '/admin/modules', or using the following drush command: drush en media-library;
  • Then, visit '/admin/config/media/media-library-importer-configuration' to configure the module;
  • Last, visit '/admin/config/media/media-library-importer/import' for the actual import operation;
  • It is possible to import Media (according to Media Library Import settings) using the following drush command drush media-library:import or drush mli (alias);
  • It is possible to implement a hook_cron job and run automatic Media Library Imports (incrementally uploading new files in the same source folders locations). More info on this in the Readme.md file;

For developers

You can attach additional field values to media entities at import time by implementing
hook_alter_media_library_importer_media_extra_fields() in your custom module.
See media_library_importer.api.php for the full signature and usage example.

Note

You can run import as many times as you like without occurring into duplications. Once created, Media entities will not be re-created if already existing with the same source file.

Project information

Releases