Olá a todos,
Recentemente, escrevi um componente de tema do Discourse (GitHub - Beholder-Vision/discourse-insert-model-3d: A Discourse theme component for adding 3D models to topics) que permite aos administradores do Discourse habilitar o upload e a exibição de modelos 3D em seus fóruns.
As coisas pareceram funcionar bem no início até que recebi um relato de que alguns modelos enviados haviam desaparecido, e então, ao verificar meu próprio fórum, vi que os ativos enviados (modelos 3D e imagens de pôster) também haviam sido expurgados Insert Model 3D - #2 by patrickemin.
Lendo a documentação (Understanding Uploads, Images, and Attachments), presumi que os ativos enviados estariam bem porque eram referenciados por uma postagem, mas depois de investigar um pouco, encontrei este código, discourse/app/models/post.rb at 03bb43f7468d3aa6e73bba0805193ae50c7ec2d5 · discourse/discourse · GitHub que parece estar fazendo o trabalho de identificar uploads no servidor. Pelo que consigo entender, um arquivo enviado só é contado como referenciado por uma postagem se for referenciado por uma das tags HTML limitadas. Portanto, um upload vinculado será reconhecido se referenciado pelo atributo href de um elemento , mas não se for referenciado pelo atributo src de um elemento (que é o que meu novo componente de tema adiciona).
Alguém familiarizado com esse código pode confirmar se meu entendimento está correto ou não? Se estiver correto, acho que as pessoas que criam componentes de tema podem marcar os ativos como uploads gerando um link oculto que referencia o ativo, mas seria muito útil se a documentação (Understanding Uploads, Images, and Attachments) pudesse ser atualizada para destacar essa armadilha.
Muito obrigado
Alan