Discourse ne prend pas en charge l’en-tête HTTP Range et répond toujours avec le code 200 OK au lieu de 206 Partial Content pour les téléchargements de fichiers. Ceci est gênant pour les utilisateurs du forum car cela force à retélécharger le fichier entier en cas de connexion Internet instable.
Le sujet Backup too big, is there a way to download it through "resume download" a mentionné ce problème dans le cas du téléchargement de sauvegardes, cependant cela s’applique également au téléchargement de fichiers réguliers lorsque le stockage S3 n’est pas utilisé.
J’ai vérifié la configuration du proxy nginx, et ce n’est pas un problème de configuration. L’en-tête Range est correctement transmis à localhost:3000 pour les requêtes /uploads/short-url/, mais Discourse ne le gère pas.
Comme HTTP Range est l’une des fonctionnalités HTTP de base, je le classe dans la catégorie “bug” et non “feature”.
P.S. ce n’est pas reproductible ici, sur meta.discourse.org, car il utilise S3 pour le stockage.