Suite à la discussion de Comment déplacer mon bucket d’upload S3 d’un fournisseur à un autre ? :
Je tente de migrer d’un bucket GCP vers un bucket AWS S3. L’ancien système n’utilisait pas de CDN S3 (celui qui l’a configuré ne semblait pas vraiment savoir ce qu’il faisait, apparemment).
J’ai utilisé s3cmd pour synchroniser l’ancien bucket GCP vers un système de fichiers local, puis à nouveau pour envoyer les assets vers le nouveau bucket S3. Le système est désormais correctement configuré avec S3 et les CDN du site, comme décrit dans Utiliser un stockage objet pour les uploads (S3 et clones).
Le sujet lié ci-dessus suggérait d’utiliser rake posts:remap pour mettre à jour les publications (je suppose que je devrais aussi rebaker toutes les publications ? Ou du moins celles correspondant à l’ancien bucket ?).
Lorsque j’ai exécuté posts:remap, une seule publication a été remappée.
Upload.order(Arel.sql('RANDOM()')).limit(10).pluck(:id, :url)
montre que toutes ces publications pointent vers l’ancien bucket… Ah, c’est le problème. Nous n’avons pas besoin de rake posts:remap mais de discourse remap comme décrit à l’adresse Change the domain name or rename your Discourse.
Oui, je pense.
Je vais voir pour le faire très prochainement. @Falco, de manière générale, voici les étapes :
- créer un nouveau bucket et un CDN pour celui-ci, reconstruire le conteneur pour utiliser le nouveau bucket/CDN et s’assurer que cela fonctionne
- configurer
s3cmdpour l’ancien bucket et synchroniser les données vers le local - configurer
s3cmdpour le nouveau bucket et synchroniser les données vers le nouveau bucket - exécuter
discourse remap NOM-DE-DOMAINE-ANCIEN-BUCKET NOM-DE-DOMAINE-NOUVEAU-BUCKET - rebaker
Est-ce que cela vous semble correct ?
Si vous utilisez le même CDN pour l’ancien et le nouveau bucket, vous pourriez éviter de devoir rebaker, mais bien synchroniser le timing semble un peu délicat (on ne peut pas changer l’origine du CDN tant que les données ne sont pas dans le nouveau bucket, mais il faudrait s’assurer qu’aucune donnée n’est uploadée vers l’ancien bucket pendant le processus de synchronisation) — peut-être se contenter de dire que c’est possible.