Nouveau rebaking après changement CDN a manqué les anciens posts

L’administrateur de Discourse m’a récemment signalé que je devrais envisager d’utiliser un CDN plutôt que de servir directement depuis S3. J’y avais déjà pensé par le passé, mais le coût me semblait élevé et inutile pour notre petite communauté. Aujourd’hui, je constate que le coût est bien plus faible, alors je l’ai configuré. J’ai créé un point de distribution CloudFront sur le bucket existant, puis j’ai ajouté son URL dans Discourse. Ensuite, j’ai lancé un rebaking complet.

Le rebaking s’est exécuté et terminé sans problème. La création de nouveaux messages fonctionne parfaitement et utilise le CDN. Les messages postérieurs à 2018 environ (je n’ai pas vérifié la date exacte de coupure) ont été correctement mis à jour pour pointer vers le CDN. Cependant, les messages de 2017 et antérieurs ne semblent pas avoir été réellement rebaked. Ils contiennent toujours des URLs pointant directement vers le bucket S3. J’aimerais pouvoir faire rebaker correctement ces messages afin de pouvoir désactiver l’accès public au bucket S3 en toute confiance, sans risque de casser quoi que ce soit.

Je ne vois pas ce d’autre que je pourrais faire. Des idées ? Merci.

1 « J'aime »

Ah, attendez, un instant. Je pense que je connais peut-être le problème, je dois juste le confirmer.

Lorsque vous exécutez rake posts:rebake, cela rebake-t-il réellement tous les messages immédiatement ou empile-t-il simplement des tâches dans Sidekiq qui effectueront ensuite le rebaking réel ? J’ai remarqué que j’ai maintenant une énorme pile de Jobs::PullHotlinkedImages en file d’attente, ce qui a beaucoup de sens. S’il reste encore des messages à rebaker une fois la file d’attente vidée, alors je suppose que j’ai un problème. Sinon, tout va bien.

1 « J'aime »

Oui, c’est exact — il s’agit d’un processus en arrière-plan qui doit traiter les posts du plus récent au plus ancien, afin que les posts les plus récents soient traités en premier, avant la vaste file d’attente des posts plus anciens.

1 « J'aime »