Estimados todos,
Después de buscar en el formulario con el máximo de mis capacidades sin encontrar una respuesta que resuelva el problema, solicito soporte para una situación extraña surgida tras un cambio reciente del centro de datos de Digital Ocean.
Así que, teníamos todas nuestras cargas almacenadas en un bucket de Digital Ocean Spaces, en el centro de datos ams3.
Después de dos graves problemas de hardware y la consiguiente interrupción del servicio en poco más de un mes, el fin de semana pasado decidimos mover todos nuestros archivos al centro de datos fra1.
Aquí están los pasos que seguí:
- En preparación para la transferencia, subí todos los archivos que teníamos en ams3 (los 3 directorios clásicos: originals, optimized y tombstone) al nuevo bucket en fra1 usando s3cmd.
- Entré en la configuración del foro y establecí el nuevo endpoint para los adjuntos, cdnl y el bucket de respaldo.
- Lanzé una reconstrucción completa de los posts (full post rebake), esperando que solucionara todo de una sola vez.
Desafortunadamente, no fue así. La mayoría de los adjuntos se “portaron” correctamente, pero unos pocos cientos no. No está claro para mí qué sucedió, pero estos adjuntos faltantes se movieron al directorio tombstone.
Pensé que lanzar la tarea rake rake uploads:recover_from_tombstone se encargaría de eso, pero no. Los archivos se ven, pero al final de la tarea ningún adjunto se recupera; las imágenes siguen sin ser visibles en los posts.
Empecé a indagar un poco más y descubrí que al ejecutar UploadRecovery.new(dry_run: true).recover (encontrado investigando en meta) en la consola de Rails, me daba información valiosa, como la URL del post, así como la URL corta o larga de la imagen problemática.
Para las URLs devueltas en forma corta, escribí un poco de código en Python para “traducir” el nombre de archivo de carga corto a la forma larga, para poder ir a verificar la presencia del archivo en el bucket.
Lo hice, y puedo confirmar que todos los archivos faltantes están ahí, tanto en el nuevo bucket como en el antiguo. Parte de las cargas faltantes las encontré en el directorio tombstone, como era de esperar, pero otras algunas extrañamente siguen en el directorio original. Los archivos no están corruptos. Si accedo a ellos mediante URL, se abren correctamente en ambos centros de datos, y si los volco localmente en mi máquina Linux, puedo abrirlos sin errores.
De alguna manera, el proceso de recuperación de cargas falla al seleccionarlos y arreglar lo que esté mal en la base de datos. ![]()
Así que mis preguntas son:
- ¿Existe alguna manera de entender por qué, incluso si los archivos de carga están en
tombstone(o enoriginal), la tarea rake falla al recuperarlos? - ¿Cuál sería el conjunto correcto de pasos para asegurar que, en caso de cambio de bucket o incluso transición de DO a otro entorno compatible con AWS, todos los adjuntos se muevan y preparen correctamente para el intercambio? En general, ¿qué se debe hacer, paso a paso, en tal caso? Claramente, una simple reconstrucción (rebake) no es suficiente.

- ¿Qué hace la tarea
posts:invalidate_broken_images? Quiero decir, ¿qué significa invalidar?
Gracias de antemano. Llevo una semana luchando con esto y realmente necesito resolverlo o me volveré loco
![]()
Por cierto, la sugerencia de volver a cargar manualmente los 800+ adjuntos no se considera una respuesta válida. Debe haber una razón algorítmica… ![]()