Después de mover las imágenes y los recursos (js) de mi sitio a S3, intenté actualizar el foro utilizando la interfaz /admin/upgrade. La actualización se realizó correctamente, pero parece que no se cargaron los recursos en el bucket de S3, lo que dejó mi sitio inaccesible hasta que reconstruí la aplicación desde la shell.
Allí tengo un hook que lo hace por mí. Sería genial tener este tipo de funcionalidad también en la interfaz web. No sé si ya existe; si es así, por favor háganmelo saber.
No, no puedes mover activos a S3 desde el área de administración. Deberás hacerlo a través de SSH, ya que se requieren tareas adicionales durante esta migración, a menos que estés realizando esto en una instalación nueva.
Ah, ya veo. Me gustaba la forma sin interrupciones de actualizar hasta que cambié a S3. ¿Existe alguna manera de no servir archivos JS a través de S3 y solo las imágenes?
Sí, no estoy sirviendo JS directamente desde S3; está almacenado en S3 y luego se sirve a través de la CDN. Lo que quería preguntar es si puedo almacenar JS localmente y servirlo a través de la CDN, almacenando solo los medios en S3.
Una vez más, lo estás entendiendo todo mal.
El JS de Discourse está diseñado para ser servido directamente a través de CDN, con la instalación de Discourse actuando como origen de extracción. No sé cómo podrías alojar JS en S3, pero ten en cuenta que el JS se regenera al reconstruir. Cualquier cosa que sirvas a través de S3 probablemente estará desactualizada y solo te traerás más problemas.
Por eso añadieron el hook after_assets_precompile para subir los activos actualizados a S3.
¿Cómo puedo solucionar esto? Si intento acceder a cualquier activo a través del servidor local, devuelve un error 404. Debe hacerse a través de S3. De lo contrario, habría configurado una regla de enrutamiento en el borde de mi CDN para que las solicitudes de activos se sirvan desde el dominio local.
Desafortunadamente, el tema mencionado no hace eso, aunque de hecho se titula “usar almacenamiento de objetos para subidas”. Si configuras tu foro siguiendo las instrucciones de ese tema, se requiere que los activos se suban a S3.