Je reçois le message d’erreur « l’upload est trop volumineux, la taille maximale est de 4 Mo » lors du téléversement de fichiers PDF de moins de 4 Mo.
Voici mes tests :
Je l’exécute sur mon site de test (4b561277a9) sans aucune modification des paramètres max ou des limites de fichiers, et cela se télécharge sans problème pour moi si j’ajoute pdf aux extensions autorisées, et affiche le message d’erreur correct « Désolé, le fichier que vous essayez de télécharger n’est pas autorisé » lorsqu’il est réinitialisé par défaut.
Y a-t-il autre chose que je puisse essayer pour voir si je peux reproduire le problème ?
Non, car la taille du fichier est inférieure à la limite de taille par défaut de nginx. Cependant, c’est un bon indice.
Le site @Julien_Palard auto-hébergé a un proxy inverse personnalisé entre Discourse et le navigateur, donc cette erreur provient probablement d’un proxy inverse mal configuré.
Je reçois un 413 Request Entity Too Large de nginx, donc je dois clairement creuser davantage pour comprendre pourquoi une image « grande » est OK mais un PDF « pas si grand » ne l’est pas…
Le JPG de 3,0 Mo a une Content-Length de 557215, donc étonnamment 0,5 Mo !
Le PDF de 2,3 Mo a une Content-Length de 2460137, donc sans surprise 2,3 Mo.
Est-ce que Discourse redimensionne le jpg avant de le télécharger ?
Sur mes JPEGs qui passent, je vois que la largeur et la hauteur de l’image sont différentes après les avoir téléchargés sur Discourse (j’ai essayé avec https://apod.nasa.gov/apod/image/2209/DSCF4968_PS_Lioce.jpg, c’est une image de 5703x3892, 3,6 Mo, mais une fois téléchargée, c’est une image de 1920×1310 de 153 Ko).
La valeur par défaut de nginx pour client_max_body_size est de 1 Mo, les jpegs redimensionnés côté client sont tous inférieurs à 1 Mo, tout devient clair.