flush_single_image
Utility module to flush a single image from any image styles it may have generated for it.
This module provides a simple form to which you can provide a source image path (e.g. public://assets/foo/bar/image.jpg) and it will flush any styled image(s) that have been generated.
Background
This module was originally developed to solve an issue where daily imports from a closed third party system would replace image content on occasion but keep the filenames the same resulting in out of date images in the image style cache.
Service Class
See example below on how to use the service class included.
$path = 'public://assets/foo/bar/image.jpg';
$paths = \Drupal::service('flush_single_image')->flush($path);
foreach ($paths as $flushed_path) {
\Drupal::messenger->addMessage(t('Flushed @path', ['@path' => $flushed_path]));
}
Drush Command
Image styles can also be flushed on a single image via Drush command. See code example below for usage.
drush flush_single_image public://assets/foo/bar/image.jpg --check-styles
Migrate Plugin
Migrate plugin included in module as well. See below for an example of how to use.
process:
path_to_file:
-
plugin: file_copy
source:
- /path/to/file.png
- public://new/path/to/file.png
-
plugin: flush_single_image
action: 'regenerate'