Caricamento di un PDF da 1 MB, ottengo « il caricamento è troppo grande, massimo è 4 MB »

Ricevo il messaggio di errore « upload troppo grande, dimensione massima 4MB » quando carico file PDF inferiori a 4MB.
Ecco i miei test:

  • un PDF di 68KB va OK come previsto.
  • un JPG di 2.3M va OK come previsto.
  • un pdf (2.3 MB) di 2.3M scatena l’errore!
  • un JPG di 3.6MB va OK come previsto.

Stranamente l’upload va a buon fine su meta.discourse.org, forse avete modificato alcune impostazioni.
Non ho modificato impostazioni contenenti max.

Sto usando la versione 2.9.0.beta9 4af080d20b, su un’istanza self-hosted su https://discuss.afpy.org.

Nessun problema con questo file sui miei forum, sui quali non ho modificato il limite di dimensione del file.

1 Mi Piace

Lo sto provando sul mio sito di test (4b561277a9) senza apportare modifiche alle impostazioni max o ai limiti dei file e per me il caricamento funziona correttamente se aggiungo pdf a authorized extensions, e restituisce il messaggio di errore corretto ‘Sorry, the file you are trying to upload is not authorised’ quando viene reimpostato al valore predefinito.

C’è qualcos’altro che potrei provare per vedere se riesco a replicare?

No, poiché la dimensione del file è inferiore al limite predefinito di nginx. Tuttavia, questo è un buon indizio.

Il sito @Julien_Palard auto-ospitato ha un reverse-proxy personalizzato tra Discourse e il browser, quindi quell’errore proviene probabilmente da un reverse-proxy mal configurato.

5 Mi Piace

Hai un reverse proxy davanti al tuo Discourse? Come hai installato?

Sto usando nginx, la mia configurazione è la seguente:

Quindi la mia configurazione nginx è:

      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;
          }
      }

Si tratta di un nginx 1.18.0-6.1+deb11u2 da Debian bullseye.

Sto ricevendo un 413 Request Entity Too Large da nginx quindi chiaramente devo scavare più a fondo per capire perché un’immagine “grande” va bene ma un PDF “non così grande” no…

Il JPG da 3.0MB ha una Content-Length di 557215 quindi sorprendentemente 0.5MB!
Il PDF da 2.3MB ha una Content-Length di 2460137 quindi prevedibilmente 2.3MB.

Discourse ridimensiona il jpg prima di caricarlo?

Sui miei JPEG di passaggio vedo che la larghezza e l’altezza dell’immagine sono diverse dopo averle caricate su Discourse (ho provato con https://apod.nasa.gov/apod/image/2209/DSCF4968_PS_Lioce.jpg, è un’immagine da 5703x3892, 3.6MB, ma una volta caricata è una 1920×1310 da 153 KB).

1 Mi Piace

Il valore predefinito di nginx per client_max_body_size è 1MB, i jpeg ridimensionati dal lato client sono tutti inferiori a 1MB, tutto diventa chiaro.

Ho corretto la mia configurazione nginx: Set client_max_body_size to 4m to match Discourse configuration. · AFPy/infra@861af29 · GitHub

E ora funziona. Avevi ragione: era il mio reverse proxy.

Grazie a tutti :heart: e scusate per il disturbo!

4 Mi Piace

Non voglio aggiungere erroneamente il tag unsupported-install, ma immagino che questo argomento avrebbe dovuto averlo fin dall’inizio, giusto?

Bene, ci sono argomenti per spiegare come configurare un proxy inverso, quindi questo è qualcosa con cui di solito aiutiamo.

1 Mi Piace

Angry Season 4 GIF by The Office

SÌ! E abbiamo anche un post sul blog su questa fantastica funzionalità

7 Mi Piace

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