Activos S3 rotos después de mover el foro

Hola,

Tuve que mover un foro de Discourse abandonado. Por suerte, teníamos varios administradores, lo que hizo posible realizar la acción y descargar una copia de seguridad. Utilizábamos un bucket de S3 para nuestros activos, lo cual fue un poco problemático. En este punto, presentaré una solicitud de nueva función:

Permitir incluir los activos de S3 en las copias de seguridad

Descubrí (no estoy seguro si fue antes o después de regenerar las publicaciones) que las URL de los activos de S3 se reescribieron como internas. Por lo tanto, extraje todas las URL de S3 original y optimized del archivo de la base de datos y las descargué (más o menos) manualmente. Después de moverlas al lugar correcto, todas las imágenes faltantes se mostraron correctamente. … Sería genial contar con una función automática para esto.

Hasta ahora, he encontrado tres errores:

  1. Imágenes de vista previa rotas, imágenes ampliadas funcionando
  1. Imágenes de vista previa funcionando, sin efecto al pasar el ratón para ampliar imágenes
  • /t/microlongrange-openhd-edition/379 … solo puedo poner 2 enlaces en mi primer mensaje
  1. Los Gravatars no funcionan (quizás no esté relacionado):

No he encontrado problemas en las publicaciones nuevas.

Gracias por este gran proyecto,
Limitless Green

Eso suena como una mala configuración, no como un error. ¿Configuraste el mismo bucket de S3 en el nuevo host antes de restaurar?

He restaurado la copia de seguridad, que también incluye la configuración. Después de hacerlo (y forzar HTTPS), no obtengo ninguna imagen del bucket de S3.

Ahora he eliminado por completo la configuración de S3.

¿No es esto una sobrescritura completa de la configuración?

A excepción de la configuración de S3, si previamente se configuró mediante variables de entorno en app.yml

Existe una configuración oculta que hace exactamente eso. Cdck la activa para clientes que saben que planean planificar su alojamiento.

La configuración de S3 se realiza mejor mediante variables de entorno, como se describe en Usar almacenamiento de objetos para cargas (S3 y clones).

Tras la restauración, configuré los siguientes parámetros: s3 upload bucket y s3 cdn url.
No tengo acceso al archivo app.yml (del servidor antiguo).

¡Oh, genial! :grinning: ¿Dónde?
La única opción adecuada que encontré en la sección backup fue:
grafik
(que estaba marcada)

No estoy seguro de si queda claro: por ahora no quiero S3. Y tuve que obtener los activos desde allí. Nadie sabe cuánto tiempo permanecerá este servidor. :sweat_smile:

Si no tienes acceso al servidor vía SSH, no podrás cambiar la configuración oculta.

Vale. ¿Y qué se debería hacer ahora en un caso como el mío?
¿Qué podría causar esta vista previa de imagen rota?

Si no es demasiado tarde (es decir, si hay actividad en el foro que no quieres perder) y tienes las credenciales de S3, probablemente pondría las credenciales de S3 en app.yml y volvería a ejecutar la restauración. Desde allí, podrías configurar la opción oculta, hacer una copia de seguridad y restaurarla en un servidor sin S3.

Pero creo que ese no es el caso. Además, no está claro cuáles podrían ser los problemas, ya que incluso tú no recuerdas exactamente qué hiciste y cuándo.

Si falta contenido (y tienes las credenciales de S3), podría intentar usar alguna herramienta de S3 para descargar todas las subidas y luego modificar la base de datos para que apunte a ellas. Sin embargo, no soy lo suficientemente experto en eso como para explicar aquí cómo hacerlo.

Sí, lamentablemente no tengo las credenciales de S3 :frowning:

Puedo reproducir los pasos:

  1. Instalé un nuevo foro de Discourse con discourse_docker detrás de Traefik.
  2. Realicé una copia de seguridad del foro antiguo (incluyendo algunos activos antiguos).
  3. Restauré la copia de seguridad en el nuevo foro.
  4. Forcé HTTPS.
  5. Extraí las URLs de los activos del dump.sql (de la copia de seguridad):
    • egrep -o 'discuss-openhdfpv.eu-central-1.linodeobjects.com\\/original\\/1X\\/[0-9a-z_]{0,}\\.[0-9a-zA-Z]{0,}' ./dump.sql \u003e\u003e original.txt
    • egrep -o 'discuss-openhdfpv.eu-central-1.linodeobjects.com\\/optimized\\/1X\\/[0-9a-z_]{0,}\\.[0-9a-zA-Z]{0,}' ./dump.sql \u003e\u003e optimized.txt
  6. Descargué los activos: cat optimized.txt | parallel --gnu "wget -nc -P ./optimized/1X/ {}" (lo mismo con original).
  7. Eliminé las configuraciones de S3.
  8. Ejecuté rake posts:rebake.

Puedo realizar operaciones SQL en la base de datos si sé qué buscar.