Digamos que você precise enviar um log de depuração do Android a alguém. Esses logs contêm informações privadas. Você não deve publicar essa URL publicamente e, se a enviar por mensagem, a URL ou o anexo deve ser excluído logo em seguida.
Até mesmo administradores ou moderadores não devem conseguir recuperar essa URL ou anexo.
Se não for possível excluí-la, ela permanecerá visível para sempre para o remetente e para todos os administradores e moderadores. Esses logs se acumulam ao longo do tempo, resultando em uma grande quantidade de informações sensíveis permanecendo indefinidamente.
Como podemos não apenas ocultar essa URL ou anexo, mas realmente excluí-lo?
Olá, parece que o recurso mesclado não é semelhante ao que o título contém. Com o explorador de dados, descobri que algumas versões de um determinado tópico da wiki tinham um anexo grande que eu gostaria de destruir.
Apenas quero dizer como excluir um anexo de uma versão da postagem em instâncias auto-hospedadas. Infelizmente, o método de Search attachments by storage name não pode ser aplicado neste caso (impossível obter sha1 do nome do arquivo).
Primeiro, encontre o sha1 usando SQL:
sudo /var/discourse/launcher enter app
su - discourse
psql
SELECT filesize, original_filename, sha1 FROM uploads WHERE filesize > 3000000 order BY filesize desc;
então você obtém o sha1. Em seguida, feche a conexão com o banco de dados, saia do usuário para root e abra a linha de comando do rails:
ctrl+d
ctrl+d
rails c
pry(main)> Upload.find_by(sha1: '<sha1>')
Finalmente, você obtém o URL do anexo apontando para o local do sistema de arquivos. A questão do tópico ainda está aberta.