Salut à tous,
J’ai récemment créé un composant de thème Discourse (GitHub - Beholder-Vision/discourse-insert-model-3d: A Discourse theme component for adding 3D models to topics) qui permet aux administrateurs de Discourse d’activer le téléchargement et l’affichage de modèles 3D sur leurs forums.
Tout semblait bien fonctionner au début, jusqu’à ce que je reçoive un rapport indiquant que certains modèles téléchargés avaient disparu, puis en vérifiant mon propre forum, j’ai constaté que les ressources téléchargées (modèles 3D et images d’aperçu) avaient également été purgées Insert Model 3D - #2 by patrickemin.
En lisant la documentation (Understanding Uploads, Images, and Attachments), j’avais supposé que les ressources téléchargées seraient en sécurité car elles étaient référencées par un message, mais après quelques recherches, j’ai trouvé ce code, discourse/app/models/post.rb at 03bb43f7468d3aa6e73bba0805193ae50c7ec2d5 · discourse/discourse · GitHub qui semble être responsable de l’identification des téléchargements sur le serveur. D’après ce que j’ai compris, un fichier téléchargé n’est considéré comme référencé par un message que s’il est référencé par l’une des balises HTML d’un nombre limité. Ainsi, un téléchargement lié sera reconnu s’il est référencé par l’attribut href d’un élément <a> mais pas s’il est référencé par l’attribut src d’un élément <model-viewer> (ce que mon nouveau composant de thème ajoute).
Quelqu’un qui connaît bien ce code pourrait-il confirmer si ma compréhension est correcte ou non ? Si c’est le cas, je pense que les créateurs de composants de thème peuvent marquer les ressources comme téléchargements en générant un lien <a> caché qui référence la ressource, mais il serait très utile que la documentation (Understanding Uploads, Images, and Attachments) soit mise à jour pour souligner ce piège.
Merci beaucoup
Alan