Executando scripts ruby personalizados

Uma abordagem é fazer o upload do arquivo e, em seguida, armazenar a URL em uma configuração. Fazer o upload de um arquivo impedirá que ele seja excluído.

Você pode ter um job executado em um plugin. Existem muitos exemplos de jobs em plugins do Discourse e do Pavilion.