Attachments disponibili localmente sul server ma non pubblicamente

Riepilogo del problema

Sto riscontrando un errore 404 quando accedo a un caricamento di immagini tramite il suo URL sul sito Discourse live (https://techenclave.com), anche se l’immagine è presente sul disco e viene servita correttamente internamente. Ho ribattuto il post, riavviato l’app e verificato che il servizio interno funzioni, ma continua a restituire 404 esternamente.


Cosa funziona

1. Caricamento presente nel DB

Utilizzando la console Rails, ho confermato che il caricamento esiste con tutti i metadati corretti:

Upload.find_by(sha1: 'a8fbe877e685e6a6994532c946c446b1279da7d2')

L’output include:

  • url: \"/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg\"
  • Nome file: IMG202506252257011.jpg
  • ID: 170265
  • Utilizzato nel Post ID: 3125774

2. File presente sul disco

Verificato che il file è presente all’interno del container:

ls -l /shared/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg

:check_mark: Il file esiste con proprietà e permessi corretti:
discourse:www-data, -rw-r--r--.


3. Il symlink dalla cartella Public funziona

Il symlink public/uploads è intatto:

ls -l /var/www/discourse/public/uploads
# => /shared/uploads

4. Discourse può servirlo internamente

Testato con:

curl -I http://localhost:3000/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg

Risultato: HTTP/1.1 200 OK


5. Post ribattuto

Ho ribattuto il post con:

Post.find(3125774).rebake!

6. App riavviata

Eseguito:

./launcher restart app

Ho anche tentato:

sudo ./launcher rebuild app

(Il demone Docker è stato temporaneamente non disponibile ma successivamente corretto.)


Cosa non funziona

Accesso esterno all’immagine

Accedendo a:

https://techenclave.com/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg

Restituisce:

404 Not Found

Questo accade su tutti i browser e in modalità incognito.


Con cosa ho bisogno di aiuto

Qualcuno può aiutarmi a identificare cosa potrebbe causare:

  • Un caricamento funzionante che viene servito tramite localhost:3000,
  • ma restituisce 404 esternamente sul dominio pubblico?

Cos’altro dovrei controllare? Qualsiasi configurazione o log correlato da ispezionare?

Grazie in anticipo!

Anche le immagini appena caricate non vengono caricate. Ottengo 404

Suppongo che questa non sia un’installazione standard? Questo è per lo più tutto ciò che è supportato qui. Come hai installato discourse?

1 Mi Piace

La prossima volta forse menzionerete che avete migrato molto di recente?

Avete seguito questa guida quando siete passati da temp.techenclave.com a techenclave.com?

2 Mi Piace

Grazie.

L’installazione è stata una guida standard di installazione di discourse su GitHub.

Sì, ho fatto una migrazione locale sul mio laptop, ho fatto un backup e ho ripristinato il backup sul server caricando il file ed eseguendo un ripristino del backup dal pannello di amministrazione. Non avrei dovuto farlo perché non tutti i file allegati sono stati ripristinati nonostante l’operazione fosse andata a buon fine. Comunque ho fatto un rsync dei file dall’installazione locale sul laptop al server per aggiornarli.

Successivamente c’è stata una migrazione del dominio, come hai giustamente sottolineato, da temporaneo a root dopo aver testato la configurazione per un giorno.

Il motivo per cui non ho menzionato quanto sopra è che anche i file più recenti che venivano caricati dopo tutte le attività di cui sopra non vengono visualizzati. Nonostante una ricostruzione. Quindi non ho trovato quelle informazioni pertinenti.

Non ho seguito quella guida. Ma quando la guardo posso vedere che l’unico passaggio è stato

  1. Il vecchio dominio compare nell’elenco degli iframe consentiti insieme al nuovo dominio nelle impostazioni.
  2. Riconfigurare il dominio nei post, cosa che avrei comunque fatto più tardi, compreso un rebake una volta risolto questo problema. Il post in questione è stato rielaborato e non ha il vecchio dominio nell’URL dell’immagine.

Questi due punti sono rilevanti?

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