Novo plugin: Bauhaus File Cleanup for Tainacan - apaga de vez os arquivos dos itens deletados

Olá, comunidade Tainacan! :waving_hand:

Quem administra repositórios maiores talvez já tenha esbarrado neste detalhe: quando você exclui um item permanentemente, o Tainacan nem sempre remove os arquivos correspondentes do disco. Eles ficam lá, “órfãos”, ocupando espaço na pasta de uploads e crescendo com o tempo, especialmente os arquivos de itens privados, que ficam guardados nas pastas com prefixo _x_<item_id>.

Pensando nisso, desenvolvemos um pequeno add-on para resolver exatamente esse ponto:

:backhand_index_pointing_right: Bauhaus File Cleanup for Tainacan – WordPress plugin | WordPress.org (in English here)

O que ele faz:

O plugin permite habilitar e desabilitar a deleção de anexos de itens quando estes são removidos permanentemente de uma coleção. Ou seja, ao excluir um item permanentemente, o plugin garante a remoção dos arquivos daquele item como documentos, anexos, thumbnails, as versões derivadas de imagem geradas pelo WordPress e também as pastas privadas _x_. Ele funciona via o hook before_delete_post, então cobre todos os caminhos de exclusão: a lixeira do admin do Tainacan, o processo de edição em massa, o “Esvaziar lixeira” do WordPress, o WP-CLI, etc. De quebra, quando uma coleção inteira é apagada, a pasta dela, e seus itens, também vai junto.

A origem

O plugin nasceu de uma necessidade real que tivemos aqui na Bauhaus Tech trabalhando com acervos no Tainacan, e resolvemos abrir pra comunidade porque imaginamos que outros times enfrentam o mesmo problema. Movemos milhares de itens de uma coleção pra outra e, na hora de remover os itens da coleção antiga, os arquivos ficaram órfãos no disco ocupando espaço.

Este post foi onde tudo começou por aqui e tem bastante detalhes.

Alguns pontos importantes (com carinho, leiam! :sweat_smile:):

  • A limpeza é destrutiva e irreversível! Os arquivos são deletados do disco. É justamente o propósito do plugin.
  • Só age na exclusão permanente. Mandar pra lixeira do Tainacan não apaga nada.
  • Dá pra ligar/desligar o comportamento em Configurações → Bauhaus File Cleanup for Tainacan (vem ativado por padrão).
  • É um add-on independente, não é afiliado nem endossado pelo projeto Tainacan.

Qualquer dúvida, estou à disposição :slight_smile:

É gratuito e open source (GPL). Feedback, issues e sugestões são super bem-vindos! :blue_heart:

Se testarem, contem aqui e no link abaixo como foi. Um abraço a todos que fazem o Tainacan acontecer! :rocket:

4 curtidas

Existe uma limitação, que não é bem do plugin, mas da maneira com que o Tainacan faz a remoção de Coleções.

Quando uma coleção é removida, o Tainacan não remove os itens da coleção, deixando eles “órfãos”. O nosso plugin remove os arquivos e anexos desses itens no disco, liberando o espaço ocupado, mas eles ficam dentro do banco de dados ainda.

Isso é esperado pelo Tainacan e existe a ferramenta de linha de comando (WP CLI) que serve para limpar justamente esses itens.

wp tainacan garbage-collector --run

Isso irá remover qualquer item que esteja órfão, isto é, sem coleção, do banco de dados.

Como nosso plugin tem como foco apenas a remoção dos arquivos em disco, preferi não fazer essa limpeza por ele.

Essas duas funcionalidades (remover arquivos e remover os registros do banco de dados) certamente cabem dentro do Tainacan e vamos discutir isso com a equipe para uma versão futura :slight_smile: