Per Nergård (MVP)
Sep 5, 2017
  5974
(6 votes)

Plugin for deleting unreferenced media

Sometimes you need to synch a dev-environment with production database and media and the blob-storage is huge with likely a lot of unreferenced media or perphaps want to clean up a test-environment.

To help in those two scenarios I threw togheter a small plugin that lets you delete all or just selected unreferenced media. Really nothing to say about the code than it can be found over at my Gist.

It looks like this:

Image cleaner.jpg

Sep 05, 2017

Comments

valdis
valdis Sep 6, 2017 08:44 AM

where you were couple weeks ago? when we had ~ 1TB of unreferenced media ?? :) great plugin

Per Nergård (MVP)
Per Nergård (MVP) Sep 6, 2017 09:13 AM

Valdis: Thanks. Actually did this before the vacations but haven't got around blogging for quite a while. Been thinking about doing a scheduled job version for a more hardcore approach to keeping the assets folder clean :)

Per Nergård (MVP)
Per Nergård (MVP) Sep 6, 2017 03:06 PM

Gosso: I googled before I made the plugin but not good enough. But my version has cherry picking of files. :)

Luc Gosso (MVP)
Luc Gosso (MVP) Sep 6, 2017 03:56 PM

Also check out the mega super awesome amazing DownloadIfMissingFileBlogProvider for dev and staging environment.

with that addon you can

  • ... delete all blobs - and it takes care of downloading the images/documents you need
  • ... use diskspace to other things... It only downloads the blobs you're using
  • ... go home earlier, since you'll never ever need to download the blob-directory anymore.

Try it =)

Per Nergård (MVP)
Per Nergård (MVP) Sep 6, 2017 04:16 PM

I agree that your DownloadIfMissingFileBlogProvider is the best thing since slice bread. :)

valdis
valdis Sep 7, 2017 05:59 PM

I guys will leave you there :D

Johan Book
Johan Book Feb 17, 2018 10:31 AM

I just wrote a quick script to remove blobs that have no entry in CMS, then I found this post :D

To Per's defence, his version does indeed go one extra step by checking what's actually referenced, and not only what exists in CMS. The DownloadIfMissing plugin looks awesome, but if you can't use it for some reason you'll need to do a combination of both approaches to slim it to the maxx. Thanks Per!

Per Nergård (MVP)
Per Nergård (MVP) Feb 26, 2018 11:44 PM

Glad you found it usefull.

Please login to comment.
Latest blogs
Jhoose Security Module V3.0.0 – Site-Level Security Configuration for Optimizely

Jhoose Security Module updated for Optimizely CMS 13, introducing separate packages for CMS 12 and 13 with ongoing support and enhancements.

Andrew Markham | Apr 6, 2026 |

Searchable settings page

In my current project which has been actively developed for quite some time we have a big classic settings page. Unfortunately the placement and...

Per Nergård (MVP) | Apr 6, 2026

Using Azure Devops Pipelines in Optimizely SAAS (Configured) Commerce

Introduction When working with SAAS Commerce build service v2 your currently need to use a github repo with configured branches to start deployment...

Mark Hall | Apr 4, 2026 |

Forcing Lowercase URLs in Optimizely CMS During Auto-Translation

Learn how to fix uppercase and punctuation issues in Optimizely CMS 12 URL segments caused by LanguageManager auto-translation using a custom...

Stuart | Apr 2, 2026 |