Continuando la discusión desde ¿Cómo muevo mi bucket de carga de S3 de un proveedor a otro?:
Estoy intentando migrar desde un bucket de GCP a un bucket de AWS S3. El sistema antiguo no utilizaba un CDN de S3 (al parecer, la persona que lo configuró no sabía realmente lo que hacía).
Usé s3cmd para sincronizar el bucket antiguo de GCP con un sistema de archivos local y luego lo usé nuevamente para enviar los recursos al nuevo bucket de S3. El sistema ahora está correctamente configurado con S3 y CDNs del sitio, tal como se describe en Uso de almacenamiento de objetos para cargas (S3 y clones).
El tema vinculado anteriormente sugería usar rake posts:remap para actualizar las publicaciones (supongo que también debería volver a hornear todas las publicaciones, ¿o al menos las que coincidan con el bucket antiguo?).
Cuando ejecuté posts:remap, solo se volvió a mapear una publicación.
Upload.order(Arel.sql('RANDOM()')).limit(10).pluck(:id, :url)
muestra que todas ellas tienen el bucket antiguo… Ah, ese es el problema. No necesitamos un rake posts:remap, sino un discourse remap, tal como se describe en Change the domain name or rename your Discourse.
Sí, creo que sí.
Voy a ver cómo hacerlo muy pronto. @Falco, en términos generales, es algo como:
- Crear un nuevo bucket y su CDN, reconstruir el contenedor para usar el nuevo bucket/CDN y asegurarse de que funcione.
- Configurar
s3cmdpara el bucket antiguo y sincronizar los datos localmente. - Configurar
s3cmdpara el nuevo bucket y sincronizar los datos hacia arriba al nuevo bucket. - Ejecutar
discourse remap NOMBRE-DE-DOMINIO-DEL-BUCKET-ANTIGUO NOMBRE-DE-DOMINIO-DEL-BUCKET-NUOVO. - Volver a hornear.
¿Parece correcto?
Si usas el mismo CDN para el bucket antiguo y el nuevo, podrías evitar tener que volver a hornear, pero lograr ese timing exactamente parece un poco complicado (no se puede cambiar el origen del CDN hasta que los datos estén en el nuevo bucket, pero necesitarías asegurarte de que nada se cargara en el bucket antiguo durante el proceso de sincronización). Quizás simplemente digamos que es posible.