Comment supprimer les fichiers téléchargés ?

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…

  1. 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.

  2. 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_id et 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
    
  3. Dans la base de données ou avec la console Rails pour Discourse, supprimez l’enregistrement concerné de la table uploads par son ID de téléchargement. Ici, j’utilise la console Rails :

    Upload.where(id: 16384).first.delete
    
  4. 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
    
1 « J'aime »