Eu tenho um projeto de django no qual os administradores podem fazer upload de mídia. Como os itens são vendidos, eles são excluídos do site, removendo assim sua entrada no banco de dados MySQL. As imagens associadas ao item, no entanto, permanecem no sistema de arquivos. Isso não é necessariamente um mau comportamento - não me importo de manter os arquivos no caso de uma exclusão ser um acidente. O problema que vejo é daqui a dois anos, quando o espaço de armazenamento é limitado por causa de uma pasta de mídia inchada com imagens antigas de produtos.
Alguém sabe de uma maneira sistemática / programática de classificar TODAS as imagens e compará-las aos campos relevantes do MySQL, excluindo qualquer imagem que NÃO tenha uma correspondência do sistema de arquivos? No mundo perfeito, estou imaginando um botão no django-admin como "Clean-up unused media", que executa um script python capaz desse comportamento. Compartilharei o que quer que minha eventual solução esteja aqui, mas o que estou procurando agora é alguém que tenha ideias, conheça recursos ou tenha feito isso em algum momento.
Tags mysql python media django filesystems