J’ai également dû supprimer un fichier téléchargé. Nous n’avons pas activé la tâche de nettoyage car certains fichiers proviennent d’une importation d’un autre logiciel de forum et ne sont pas encore correctement référencés dans les publications importées. J’ai donc eu besoin de trouver une méthode manuelle. Ce qui suit fonctionne, mais ce n’est pas idéal…
-
Assurez-vous que le téléchargement pertinent n’est plus présent dans la version actuelle d’aucune publication. De cette façon, Discourse le considérera comme orphelin et ne causera pas de problèmes lors de sa suppression.
-
Utilisez le plugin Data Explorer ou une autre méthode pour interroger la base de données Discourse afin de lister les téléchargements orphelins, de trouver celui qui vous intéresse et de noter son
upload_idet son nom de fichier. Requête pertinente :SELECT uploads.id, uploads.user_id, uploads.created_at, uploads.url, uploads.filesize FROM uploads LEFT OUTER JOIN post_uploads ON uploads.id = post_uploads.upload_id WHERE post_uploads.post_id IS NULL ORDER BY created_at DESC LIMIT 100 -
Dans la base de données ou avec la console Rails pour Discourse, supprimez l’enregistrement concerné de la table
uploadspar son ID de téléchargement. Ici, j’utilise la console Rails :Upload.where(id: 16384).first.delete -
Supprimez le fichier associé, y compris toutes les versions optimisées (le cas échéant, s’applique aux images) du système de fichiers via SSH. Notez le caractère générique ajouté avant l’extension du fichier pour également capturer les versions optimisées, qui ont un suffixe ici. Bien sûr,
cd /path/to/discourse/shared/public/ find . -name 43adade7a4cc64426adb8232a56cb2c3b49fb7c9*.pdf -type f -delete