Les options « Média sécurisé » + « Activer les téléchargements S3 » semblent casser les logos de catégorie.
J’ai récemment découvert que des documents téléchargés pouvaient être consultés ou téléchargés via un lien URL direct par des utilisateurs qui n’avaient pas accès au message privé dans lequel le document avait été téléchargé. J’avais compris que les téléchargements S3 devaient d’abord être activés pour utiliser la fonctionnalité Média sécurisé, alors je les ai activés en premier et j’ai manuellement copié les fichiers téléchargés du serveur Discourse vers le bucket S3. J’ai ensuite suivi ce post pour activer le Média sécurisé :
Après avoir suivi cette procédure, j’ai dû effectuer un remappage Discourse pour remplacer /uploads/default/ par //nom-du-bucket-etc-etc/. Après le remappage, j’ai exécuté rake posts:rebake et tout semblait correct pour la plupart. Tous les autres fichiers téléchargés (documents et images dans les messages, images de branding du site, etc.) s’affichaient toujours et étaient correctement liés après l’activation du Média sécurisé et l’exécution des tâches rake et de remappage appropriées. J’ai dû réimporter les avatars des utilisateurs et les logos de groupes, mais une fois réimportés, ils s’affichaient correctement et avaient les nouvelles URL courtes et les URL de uploads-média-sécurisés comme prévu.
J’ai constaté que les images de logos de catégorie ne s’affichaient plus. En vérifiant avec le mode développeur de mon navigateur, j’ai remarqué que lors de la réimportation d’une image de logo de catégorie, la bonne URL de uploads-média-sécurisés était créée, affichant l’image correctement. Cependant, dès que je cliquais sur « Enregistrer la catégorie », la page de la catégorie se rafraîchissait et tentait incorrectement de mapper directement vers l’URL non signée AWS S3 de l’image, empêchant ainsi l’affichage de l’image :
Chaque page de Discourse affichant une image de logo de catégorie tente de mapper l’image directement vers l’URL non signée AWS S3 au lieu de l’URL de uploads-média-sécurisés.
Comme solution de contournement, j’ai dû visiter laborieusement chaque objet image de logo de catégorie dans AWS S3 et modifier les permissions en Lecture publique.
J’ai confirmé que ce comportement existe dans les navigateurs Chrome, Firefox et Microsoft Edge. J’ai essayé les tâches rake posts:rebake et uploads:secure_upload_analyse_and_update, mais elles ne semblent rien faire avec le logo de catégorie. Existe-t-il peut-être une autre tâche qui corrigera ces URL d’images de logos de catégorie mal mappées ? Ou est-ce en fait prévu par conception, nécessitant que tous les objets de téléchargement S3 soient en lecture publique, sauf ceux qui sont sécurisés (messages privés) ?
