Oh, ha davvero più senso
Puoi verificare localmente con qualsiasi client SSH preferisci; a seconda della tua configurazione, i file dovrebbero trovarsi in qualcosa come /var/discourse/shared/standalone/uploads/default/original/2X/
quindi potresti usare ls -R /var/discourse/shared/standalone/uploads/ | grep 4064b per trovare il file 4064b…d.png
Parlo della stessa istanza di Discourse di @masterakay.
Abbiamo migrato su S3 oltre due anni fa; nessuno dei file nella cartella locale degli upload è più recente del 2018.
Per quanto ne so, le immagini vengono caricate nella cartella “original”, elaborate (ritagliate, ridimensionate, ecc.) e spostate nella cartella “optimized”. Gli URL utilizzati da Discourse durante il caricamento delle immagini provengono ancora dalla cartella “/original/1X/”. In qualche modo, con l’aggiornamento, la cartella “1X” è scomparsa.
Esiste una cartella “default” che contiene molti file caricati (immagini, ecc.) nonché versioni ritagliate. Ci sono circa 10.000 file qui, per un totale di circa 2,5 GB.
Il problema è che l’URL dell’immagine nei post fa sempre riferimento a quello “originale”.
Abbiamo notato che i file mancanti sono un sottoinsieme dei file presenti nella cartella “default”.
I nuovi caricamenti funzionano senza problemi e vengono archiviati in “/original/2X/”.
Qualcuno ha idee su dove possa essere finita la cartella “/original/1X/” e se sia possibile ripristinarla?
@sam@codinghorror Mi dispiace molto coinvolgervi in questo, ma è piuttosto urgente. Siamo studenti e ci sentiamo un po’ impotenti di fronte alla pressione dell’università che ci chiede di risolvere il problema delle immagini.
Come hai configurato S3? Hai impostato dei valori in app.yml o solo nell’interfaccia di amministrazione? Sembra che ci sia qualcosa di inaspettato per DISCOURSE_S3_BUCKET o DISCOURSE_S3_BACKUP_BUCKET.
Sì, come ho spiegato, tutto era funzionante fino all’ultimo aggiornamento. Abbiamo seguito tutti i passaggi.
In particolare, abbiamo fatto qualcosa del genere:
Per quanto riguarda questi valori, non riesco a trovare alcuna variabile impostata in app.yml. In precedenza non era richiesto. È cambiato qualcosa?
Esatto. Potrebbe esserci qualcosa che non funziona correttamente nel codice, ma non sappiamo cosa né perché. Quindi abbiamo bisogno di ulteriori informazioni.
Esistono due modi diversi per configurare S3: puoi impostare l’ambiente nel file app.yml oppure inserire i valori nell’interfaccia di amministrazione. Le variabili hanno nomi leggermente diversi in ciascun caso.
L’argomento a cui hai fatto riferimento descrive come configurare tramite l’interfaccia di amministrazione. Se è così che hai impostato il tuo sito, puoi dirci quali valori hai per s3_upload_bucket e s3_backup_bucket?
Il problema si è verificato perché quelle impostazioni non dovrebbero avere lo stesso valore: cerca nell’argomento di configurazione la riga “Devo davvero usare bucket separati per gli upload e i backup?”.
Un lavoro di manutenzione è stato eseguito sui contenuti del bucket dei backup e ha interessato gli upload perché i loro valori si sovrapponevano.
@sam dovremmo probabilmente imporre questo nel codice, non solo nella documentazione.
Per sistemare il tuo sito, ci sono due passaggi:
Per prima cosa, dovrai modificare il prefisso dei backup: aggiungere /backups alla fine, come descritto nell’argomento di configurazione, è sufficiente.
Successivamente, sposta tutto nel bucket S3 nella posizione corretta. Tutto ciò che si trova nella cartella superiore “default” dovrebbe essere riportato al livello superiore.
Ad esempio, è probabile che ci sia una cartella “default/originals” che dovrebbe essere spostata verso l’alto.
Dovrai utilizzare la console web di AWS o un altro strumento per esplorare il bucket.
Ciao @schleifer, ha senso e ho aggiunto il prefisso “backups” al nome del bucket.
Per quanto riguarda i caricamenti esistenti, tutti i file si trovano in /default/ (non in sottocartelle). Gli URL delle immagini nei post (e ovunque altro) utilizzano /original/* o /optimized/*.
Se spostiamo tutto ciò che è nella cartella default di un livello verso l’alto (fino alla radice), le immagini si troveranno in /*.
E no, non ci sono cartelle all’interno di defaults, solo file caricati. Sembra che contenga file con nomi standard a 40 caratteri (hash) e alcuni con suffissi come “_2_10x10” (che presumo provengano dall’ottimizzazione).
Come suggerisci di risolvere la situazione? Correggere tutti i post con nuovi link richiederà del tempo. È possibile raggruppare in qualche modo i file nelle cartelle corrette in base a questo nome file?
Questo è… inaspettato. Dovremo quindi sistemare a mano una serie di cose.
La domanda più importante è: “i nuovi caricamenti stanno andando nella posizione corretta?”
Assumendo che sia così, puoi spostare i vecchi caricamenti in una posizione nota e aggiornare la loro voce nel database. Quanti file ci sono in /default/?
Per fortuna, i nuovi caricamenti funzionano come previsto nelle sottocartelle. Inoltre, i link nei post puntano alla posizione corretta.
Ci sono >10k file in /default/. Modificare manualmente ogni post sembra un lavoro enorme. Esiste un modo per automatizzare questo processo? Magari con una sostituzione tramite regex su tutti i post?
Sì, è previsto. La prossima cosa da fare è mettere tutti i file AWOL in una posizione nota. Nel bucket, quali sottodirectory ci sono sotto /original/? Dovrebbe esserci /1X/ e potrebbero essercene altre.