So the suggestion is:
Ability to input an image url in the discourse moderator panel (any variation, original, optimised etc.) for removal. Then remove the image from all cases it’s being used in (posts, profile images like avatar, background etc.) and purge it (all variations) from the image storage (local or S3). Potentially could ban the hash of the image to prevent it being uploaded again in the future also.
Discourse handles images in a really nice way, so that identical images being used in several different places (different posts from different accounts for example) won’t store duplicate images.
The downside though, is it can be very tedious to remove a specific image and not possible for this to be handled by a moderator using the web panel. It needs to be done via command line on the server, which means it cannot be handled by non-technical people and also more dangerous for human error.
For example, if you are starting with an cdn image url that you would like to remove and it has been used in several different posts/replies etc. If you don’t know the topic/post etc. it was used in (often the case with DMCAs - just an image url without any additional info, often by automated DMCA bots using reverse image search) it can be very tedious to handle the removal.
If you delete a post on web that contains an image that should be removed for example, there is still a significant wait time until the image will be purged from S3/local automatically. The lowest this can be set to is 1 day via purge_images_from_deleted_posts_days
which is not really ideal either. Especially because CDN purge time needs to be factored in, unless it is purged manually as well as the amount of delay before someone can handle the request. So generally the upload needs to be deleted manually via command line, even if you have the context (topic/post, avatar etc.) for it immediately available.
With user generated content, being able to efficiently handle DMCAs, data removal requests etc. is inseparable and essential. Especially because they are time critical (if not handled within ~48hrs - normal practice for CDNs and hosting providers is to suspend services). Receive it on a holiday: too bad, weekend: too bad, you’re in hospital?: too bad, want to do a 10 day Vipassana silent meditation?: too bad.