Edición: Parece que tu error fue diferente al mío; suena como si algunas de tus imágenes no se hubieran trasladado a S3. Lo siento, lo leí mal. Quizás algo de la información a continuación siga siendo útil. ¿Configuraste las cargas a S3 siguiendo esta guía? Configure an S3 compatible object storage provider for uploads
@evenif - Lamento escuchar que tienes problemas con esto. Tenía previsto escribir una guía para quienes enfrentan los mismos problemas, ya que hubo que reunir bastante información de diferentes hilos. Pero estoy esperando para solucionar los avatares, ya que, como puedes ver arriba, todavía tengo problemas con eso.
Si ejecutas esto en Rails, ¿obienes true o false?
SiteSetting.migrate_to_new_scheme
Si es false, puedes intentar establecerlo en true así:
SiteSetting.migrate_to_new_scheme = true
Luego, puedes esperar un poco y volver más tarde (creo que se ejecuta cada 15 minutos, por lo que recuerdo), pero si deseas ejecutarlo inmediatamente:
Jobs::MigrateUploadScheme.new.execute(nil)
Después, verifica nuevamente más tarde si SiteSetting.migrate_to_new_scheme ahora es false (lo que significa que debería haberse completado).
Luego, ejecuta:
Upload.by_users.where("url NOT LIKE '//%' AND url NOT LIKE '/uploads/default/original/_X/%'").to_a
Esto debería encontrar las cargas que aún tienen problemas y no se pudieron migrar. En mi caso, todas estas cargas existían como registros en la base de datos, pero las imágenes reales no existían.
Dependiendo del tamaño de la lista, puedes copiar la página y luego usar encontrar y reemplazar para crear una lista de comandos que eliminen estos registros problemáticos mediante la lista de IDs de carga.
Upload.find(1).destroy
Upload.find(2).destroy
Upload.find(3).destroy
Sustituyendo 1, 2, 3, etc., por los IDs de carga correspondientes. Copia y pega toda la lista en Rails y presiona Enter. Eso debería eliminar estos registros problemáticos.
Luego, sal de Rails (escribe exit) y lo único que deberás hacer es ejecutar:
rake posts:rebake
o
rake posts:rebake_uncooked_posts
rebake_uncooked te permite reanudar el rebake si falla. Recomiendo usar el rebake normal a menos que tengas miles de cargas.
Luego, todo debería funcionar bien, espero. Pero hay una buena probabilidad de que tus avatares optimizados estén rotos como los míos, aunque las versiones originales deberían existir en S3.
Puedes verificar si los avatares se trasladaron correctamente (al menos para algunos usuarios) ejecutando esto en Rails para un usuario que muestra un avatar predeterminado:
User.find_by_username('nombre_de_usuario').uploaded_avatar
También puedes verificar si existen las versiones optimizadas usando esto:
OptimizedImage.where(upload_id: upload_id).where(version: 2)