Envoi d'un PDF de 1 Mo, j'obtiens « l'envoi est trop volumineux, maximum 4 Mo »

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 :

  • un PDF de 68 Ko passe OK comme prévu.
  • un JPG de 2,3 Mo passe OK comme prévu.
  • un pdf (2,3 Mo) de 2,3 Mo déclenche l’erreur !
  • un JPG de 3,6 Mo passe OK comme prévu.

Étrangement, l’upload réussit sur meta.discourse.org, peut-être avez-vous modifié certains paramètres.

Je n’ai modifié aucun paramètre contenant max.

J’utilise la version 2.9.0.beta9 4af080d20b, sur une instance auto-hébergée à l’adresse https://discuss.afpy.org.

Aucun problème avec ce fichier sur mes forums où je n’ai pas modifié la limite de taille de fichier.

1 « J'aime »

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é.

5 « J'aime »

Avez-vous un proxy inverse devant votre Discourse ? Comment avez-vous installé ?

J’utilise nginx, ma configuration ressemble à ceci :

donc ma configuration nginx est :

      server
      {
          listen [::]:80; listen 80;
          server_name {{ discourse_domain }};
          access_log /var/log/nginx/{{ discourse_domain }}-access.log;
          error_log /var/log/nginx/{{ discourse_domain }}-error.log;
          return 301 https://$host$request_uri;
      }
      server
      {
          listen [::]:443 ssl; listen 443 ssl;
          server_name {{ discourse_domain }};
          access_log /var/log/nginx/{{ discourse_domain }}-access.log;
          error_log /var/log/nginx/{{ discourse_domain }}-error.log;
          include snippets/letsencrypt-{{ discourse_domain }}.conf;
          location / {
              proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;
              proxy_set_header Host $http_host;
              proxy_http_version 1.1;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto https;
              proxy_set_header X-Real-IP $remote_addr;
          }
      }

Il s’agit d’un nginx 1.18.0-6.1+deb11u2 de Debian bullseye.

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).

1 « J'aime »

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.

J’ai corrigé ma configuration nginx : Set client_max_body_size to 4m to match Discourse configuration. · AFPy/infra@861af29 · GitHub

Et cela fonctionne maintenant. Vous aviez raison : c’était mon proxy inverse.

Merci à tous :heart: et désolé pour le bruit !

4 « J'aime »

Je ne veux pas ajouter à tort la balise unsupported-install, mais je suppose que ce sujet aurait dû l’avoir depuis le début, n’est-ce pas ?

Eh bien, il existe des sujets pour expliquer comment configurer un proxy inverse, donc c’est quelque chose avec lequel nous aidons généralement.

1 « J'aime »

Angry Season 4 GIF by The Office

OUI ! Et nous avons même un article de blog sur cette fonctionnalité super géniale

7 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.