Bonjour. Nous venons de migrer de Discourse EC2 vers Discourse ECS (service de conteneurs). Lorsque nous étions sur EC2, les uploads S3 n’étaient pas encore configurés. Avant la migration, nous avons copié toutes les images depuis EC2 vers le bucket S3 (avec accès public). Cependant, après avoir effectué la migration avec les uploads S3 activés (pas encore de CDN), nous avons constaté que les images (et les avatars) ne se chargeaient pas du tout.
Je me demandais si cela doit être exécuté uniquement sur EC2. Existe-t-il une autre méthode pour migrer les uploads ou mettre à jour les URL des images ? Actuellement, l’instance EC2 est arrêtée et la configuration ECS actuelle utilise déjà le domaine ainsi que la base de données et le cache. Je ne suis donc pas certain que nous puissions réorienter le domaine, la base de données et le cache vers l’ancienne instance EC2 (puis reconstruire) sans interruption de service. Merci.
Vous voudrez exécuter la commande dans une instance ayant accès aux images. Oh, mais si vous les avez déplacées manuellement vers S3, vous devrez peut-être effectuer des modifications sur la table uploads.
Je travaille sur un tutoriel avec des instructions pour passer d’un bucket à un autre, que vous pourriez utiliser pour résoudre votre problème, bien que vous devrez adapter ces instructions pour tenir compte de vos changements locaux vers bucket plutôt que de bucket à bucket.
Si je devais vous facturer un taux forfaitaire pour ce travail, je demanderais probablement 4 heures, bien que si vous payiez à l’heure, cela pourrait n’être qu’une heure.
Oh ! Désolé. Je viens de remarquer cela. Si l’EC2 utilise la même base de données, vous pourriez être en mesure de le redémarrer (en laissant l’ECS en place) et d’exécuter la tâche migrate-to-s3 là-bas ; vous devrez d’abord placer tous les éléments S3 dans des variables d’environnement comme décrit dans Utiliser le stockage d’objets pour les uploads (S3 & Clones). C’est probablement la solution la plus simple. Je recommande de faire une sauvegarde uniquement de la base de données avant de commencer.