File metadata manager

Categories

Component ID

2742891

Component name

File metadata manager

Component type

module

Maintenance status

Development status

Component security advisory coverage

covered

Downloads

18829

Component created

Component changed

Component body

A Drupal 8 module providing a file metadata manager service and API. Allows to
get, via an unified API, information stored in files like EXIF photo
information, TrueType font information, etc.

Metadata protocols are pluggable. Developers can implement a plugin and use the
service framework to get the metadata required.

The following plugins are provided by the module:

  • exif - Uses the PHP Exif Library to read/write EXIF information to image files, bypassing the limitations of the standard PHP Exif extensions which only provides read capabilities. Enable the File metadata - EXIF submodule to enable this plugin.
  • font - Uses the PHP Font Lib to read font information from TTF/OTF/WOFF font files. Enable the File metadata - Font submodule to enable this plugin.
  • getimagesize - Caches calls to the PHP getimagesize() function.

This module is inspired by discussions at #2630242: Provide methods to retrieve EXIF image information via the Image object.

Features:

  1. Load from, and save to, file embedded metadata directly from the files.
  2. Metadata for a file is statically cached during a request's lifetime. This avoids different modules all repeat I/O on the same file.
  3. Metadata can be cached in a Drupal cache bin to avoid repeating I/O on the files in successive requests.
  4. Metadata standards (EXIF, TTF, etc.) are implemented as plugins. The service loads the metadata plugin needed based on the calling code request.
  5. Manages copying to/from local temporary storage files stored in remote file systems, to allow PHP functions that do not support remote stream wrappers access the file locally.

Requirements:

  • The minimum PHP version is 5.6.0.

Installing:

The module requires using Composer to manage Drupal site dependencies.
Once you have setup building your code base using composer, require the module
via

$ composer require drupal/file_mdm

then enable the module as usual. Also enable the EXIF or font submodules if
needed.

Configuration:

- Go to Manage > Configuration > System > File Metadata Manager and specify
the cache retention requirements, in general and/or per each metadata plugin.

Usage examples: