Migrando cargas desde S3 a local

Desafortunadamente, nada me funcionó al 100%. ¿Qué hiciste finalmente?

1 me gusta

¿Alguna idea de cómo podría funcionar esto en las versiones 3.x actuales? Todavía tengo un montón de imágenes en S3 que necesito encontrar una manera de recuperar localmente. Abierto a sugerencias. (el rake uploads:migrate_from_s3 ya no existe)

He configurado todo para que funcione localmente (solo las copias de seguridad están en S3). Encuentro que muchas publicaciones todavía apuntan a S3 con enlaces como:

<img src="//x.amazonaws.com/original/1X/afda2721f64341ca46576020acae7aaee92bd9d3.PNG" width="308" height="206">

que apunta a

https://xxx.amazonaws.com/original/1X/afda2721f64341ca46576020acae7aaee92bd9d3.PNG

1 me gusta

¿Tiene alguna sugerencia sobre este asunto? Estoy realmente cansado de tener problemas con cada actualización o cambio :slight_smile:

No resuelto. Sería bueno que discourse tuviera una solución.

1 me gusta

Oh. Si es tu sitio y tienes tus cosas en S3, entonces deberías poder activar S3, habilitar la configuración oculta descrita en Enable hidden setting to include S3 uploads in the backups, hacer una copia de seguridad, cambiar la configuración a imágenes locales y restaurar la copia de seguridad.

2 Me gusta

Me encantaría saber si alguien pudo hacer que esto funcionara.

Funciona para todos los sitios que migran del alojamiento de Discourse.org a autoalojamiento (y que han tenido esa configuración activada antes de obtener su copia de seguridad).

Es un poco complicado, ya que debes tener toda la configuración de S3 configurada (en tu archivo YML) cuando creas la copia de seguridad y luego desactivarla (en todas partes, incluida la base de datos si alguna vez la configuraste allí) antes de realizar la restauración.

1 me gusta

Es un método muy lógico, pero no funciona para quienes usan cloudflare R2. ¿O este problema solo me pasa a mí? Cuando hice una copia de seguridad, también activé la configuración oculta. Desafortunadamente, no incluye los archivos en R2 en la copia de seguridad. Da el error aquí: Uploads in cloudflare R2 are not added to the backup: Failed to download ******* because Aws::S3::Errors::Http501Error

1 me gusta

La documentación y tu experiencia sugieren que R2 no es compatible, por lo que tendrás que resolver el problema de alguna otra manera.

Pensé que me estaba funcionando, pero no probé con mucho cuidado y no lo usé más allá de una prueba de humo trivial.

Si la copia de seguridad no descarga los archivos de R2, necesitarás usar alguna otra herramienta para recuperar los archivos de R2 y luego enviarlos a tu nuevo bucket y luego actualizar la base de datos manualmente (puedes buscar temas usando la tarea remap de rake, creo).

Este es un proceso complejo, por lo que necesitarás comprender bastante sobre R2, S3 y las Cargas de Discourse. Probablemente será difícil explicar tus problemas exactos con la especificidad suficiente para que puedas obtener una solución en un foro.

3 Me gusta

Descargo los archivos manualmente y los subo al servidor. Para aquellos que preguntan cómo hacerlo, pueden conectarse a cuentas S3 con el programa winscp. Después, pueden importar fácilmente los archivos a su computadora. Después, lo subí a local y recreé los temas, mostró 0 publicaciones. No tomó acción. Lo cambié en algún momento y tampoco encontró nada. Quizás me perdí un punto, no quiero decirlo sin probar de nuevo, quizás fue mi culpa. Si lo intento de nuevo, escribiré los resultados. Gracias.

1 me gusta

Conseguir que los archivos lleguen a tu servidor es solo (la parte fácil) del problema.

Puedes ver las subidas con

cd /var/discourse
./launcher enter app
rails c
Upload.pluck(:url)

Eso te mostrará las URL de tus subidas. Luego necesitas modificar todas esas subidas para que tengan la nueva ruta a tu nuevo bucket. Puedes intentar buscar el comando remap. Creo que podría funcionar.

No estoy seguro de qué significa esto.

1 me gusta

¿Puedes decirme cómo hacer esta parte? ¿Quieres decir simplemente desactivar la opción de carga S3 incluida en las copias de seguridad o algo más?

1 me gusta

Configurar un proveedor de almacenamiento de objetos compatible con S3 para subidas describe cómo configurar S3 añadiendo a tu app.yml. Si no lo hiciste de esa manera, entonces desactiva todo lo relacionado con S3 en la configuración del sitio y luego hazlo de esa manera.

Si lo hiciste de esa manera, entonces comenta esas configuraciones (o quizás solo el bucket de uso de S3 y subida.

1 me gusta