Impossibile scaricare il PDF

Ciao Team,

Sto utilizzando l’archiviazione locale del server per salvare i file. Ho caricato un file PDF ed è stato caricato correttamente sul server; è presente anche lì (l’ho verificato manualmente accedendo tramite SSH).

Screenshot from 2019-12-24 14-44-42

Questa è l’istantanea dell’errore che si verifica quando provo a scaricare il file PDF.

Questo è il registro dell’evento di download

[discourse_cloud] Started GET "/uploads/short-url/ev4yCeBAtz19YgsTSEkhLMkKrFK.pdf" for 122.168.93.128 at 2019-12-24 09:16:40 +0000
[discourse_cloud] Processing by UploadsController#show_short as PDF
[discourse_cloud]   Parameters: {"base62"=>"ev4yCeBAtz19YgsTSEkhLMkKrFK", "extension"=>"pdf"}
[discourse_cloud] Sent file /home/deploy/discourse_cloud/releases/20191220210316/public/uploads/discourse_cloud/original/1X/65a1a66f4bddc09fbdab830a8c74c7fbe05cca98.pdf (0.2ms)
[discourse_cloud] Completed 200 OK in 11ms (ActiveRecord: 0.0ms)
[discourse_cloud] Started GET "/home/deploy/discourse_cloud/releases/20191220210316/public/uploads/discourse_cloud/original/1X/65a1a66f4bddc09fbdab830a8c74c7fbe05cca98.pdf" for 122.168.93.128 at 2019-12-24 09:16:40 +0000
[discourse_cloud] ActionController::RoutingError (No route matches [GET] "/home/deploy/discourse_cloud/releases/20191220210316/public/uploads/discourse_cloud/original/1X/65a1a66f4bddc09fbdab830a8c74c7fbe05cca98.pdf")
/home/deploy/discourse_cloud/shared/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/debug_exceptions.rb:65:in `call'
[discourse_cloud]   Rendering exceptions/not_found.html.erb within layouts/no_ember
[discourse_cloud]   Rendered exceptions/not_found.html.erb within layouts/no_ember (0.6ms)
[discourse_cloud]   Rendered layouts/_head.html.erb (1.0ms)
[discourse_cloud]   Rendered common/_discourse_stylesheet.html.erb (0.6ms)
[discourse_cloud]   Rendered application/_header.html.erb (0.1ms)
[discourse_cloud]   Rendering html template
[discourse_cloud]   Rendered html template (0.0ms)

Qual potrebbe essere l’errore? :-/

Se non hai caricato il file con Discourse, dovrai modificare la configurazione di nginx all’interno del container. Non è configurato per servire file arbitrari in directory arbitrarie.

Lo screenshot sembra essere stato caricato tramite Discourse, ma il percorso dell’URL sembra essere un URL breve e ordinato piuttosto che quello reale?

Puoi provare a caricare quel PDF su try.discourse.org e vedere se funziona lì? Forse hai un problema con quel file specifico?

Immagino che il caricamento di altri tipi di file funzioni?

Bene, non riesco a caricare il file senza problemi, ma ora non mi permette di scaricarlo.

Ho caricato il file utilizzando la casella dei messaggi di Discourse e il caricamento è andato a buon fine, ma non riesco a scaricarlo.

@Stephen, riesco a caricare il file senza problemi utilizzando il mio Discourse, ma non mi permette di scaricarlo. :frowning:

Per favore, dai un’occhiata a questo screenshot: c’è un pulsante download. Quando provo a cliccarci sopra, non riesco a scaricare.

Questo è l’errore che si presenta quando provo a scaricare l’immagine usando il pulsante di download. (Il pulsante di download probabilmente utilizza la funzione Ruby send_data)

Vorrei solo capire se si tratta di un problema legato a NGINX o a permessi di altre directory.

Grazie

Ho riscontrato lo stesso problema. Il file PDF viene caricato, ma non è possibile scaricarlo e si viene reindirizzati alla pagina “Questa pagina non esiste”!

Ho fatto delle prove e ho potuto caricare e scaricare facilmente un PDF qui su Meta.

Aggiornamento: Ho provato alcune modifiche e credo che si tratti più di un bug legato alle altre lingue piuttosto che all’inglese.

Ho dovuto ricreare il PDF con un nome in inglese (in precedenza il nome del file conteneva caratteri persiani). Dopo di ciò, il caricamento può essere scaricato senza alcun problema.

Inoltre, il file PDF con il nome persiano poteva essere facilmente caricato e scaricato qui su Meta. Quindi penso che abbia a che fare con l’opzione di codifica nel pannello di amministrazione.

Ciao Team,

Scusate il ritardo nella risposta, ma ho risolto il problema apportando delle modifiche al file nginx.conf. È stata una correzione molto semplice ed era legata a nginx.conf (mentre stavo cercando di correggere il codice principale :smiley:).

Ho rimosso questa riga dal mio nginx.conf:

 proxy_set_header X-Sendfile-Type X-Accel-Redirect;

Questa è stata la correzione per far funzionare il download :slight_smile:

Da ora in poi cercherò di essere più frequente :slight_smile:

Grazie,
Ashish P.