Flush Single Image Styles
This module offers a utility to clear cached versions of a single image from all generated image styles. It provides a form, a Drush command, and a service class for flushing these cached images, which is useful for scenarios where source images are updated without changing filenames.
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'