Falta soporte HTTP Range, no se puede reanudar la descarga de archivos

Discourse carece de compatibilidad con la cabecera HTTP Range y siempre responde con el código 200 OK en lugar de 206 Partial Content para las descargas de archivos. Esto es un inconveniente para los usuarios del foro, ya que obliga a volver a descargar el archivo completo en caso de una conexión a internet inestable.

El tema Backup too big, is there a way to download it through "resume download" mencionó este problema en el caso de la descarga de copias de seguridad, sin embargo, esto también se aplica a la descarga de archivos normales cuando no se utiliza el almacenamiento S3.

Comprobé la configuración del proxy de nginx y no es un problema de configuración. La cabecera Range se pasa correctamente a localhost:3000 para las solicitudes de /uploads/short-url/, pero Discourse no la maneja.

Dado que HTTP Range es una de las características básicas de HTTP, lo incluyo en la categoría de “error”, no de “característica”.

P.D. no es reproducible aquí, en meta.discourse.org, ya que utiliza S3 para el almacenamiento.

2 Me gusta

Eso se maneja aquí:

Definitivamente es posible agregar soporte para rangos, pero implicaría usar send_data, leer el archivo del disco y enviar el rango:

Un poco demasiado complicado, para ser honesto.

1 me gusta