Breve domanda su AWS S3 Files Storage - Struttura?

Ciao!

Ho cercato nella sezione #supporto ma non ho trovato una risposta esistente, quindi scusate per questa rapida domanda di supporto:

Utilizziamo S3 per archiviare i file di Discourse dal 2016 circa. Quando ho guardato la radice del bucket S3, sono rimasto sorpreso di vedere una struttura di directory “sopra” quelle che mi aspettavo, ad esempio optimized/, original/, ecc.

Secondo voi è sicuro rimuovere le directory numerate a livello di root, ad esempio 99/, forse a causa di un errore di copia avvenuto molto tempo fa? È possibile che siano state copiate nella posizione sbagliata molto tempo fa. È possibile che i post contengano percorsi “cotti” (hardcoded) verso quelle posizioni che non vorrei rompere?

Ecco come appare, e il mio obiettivo è pulirlo (se necessario):

In altre parole, se qualcuno utilizza già S3, qual è il nome degli oggetti nella radice dell’archiviazione, per favore?

Grazie per qualsiasi aiuto. Saluti :beers:

Buona domanda, chi potrebbe conoscere la storia di questo @sam?

Credo che anche noi potremmo essere un po’ particolari :slight_smile: dato che stiamo utilizzando Discourse dal 2015 circa e abbiamo cambiato le posizioni di archiviazione nel corso degli anni.

Abbiamo iniziato utilizzando l’archiviazione locale per i file, abbiamo avuto una certa crescita e poi siamo passati all’archiviazione degli upload su S3. In quel momento, non credo di aver spostato quelli esistenti, rigenerando i post, quindi i post più vecchi utilizzano ancora gli URL di archiviazione non locale.

Una cosa che dovrei sottolineare è che non stiamo per rimuovere nulla così come è ora, perché anche se l’organizzazione è cambiata nel corso degli anni, stiamo parlando di numeri piccoli dove è più sicuro lasciare quello che abbiamo comunque.

Onestamente non so come siano nate queste cartelle 96->99, non sono il luogo dove archiviamo i caricamenti.

Grazie per aver controllato @sam, è utile saperlo. Mi chiedo se abbiamo copiato manualmente su S3 quanto avevamo e qualcosa sia andato storto. Non ha causato alcun danno.

Alla radice del bucket S3 abbiamo:

_emoji/
_optimized/
optimized/
original/
tombstone/

Più un gran numero di directory numerate che vanno da 1/ a 225/. Ogni directory numerata contiene un singolo file immagine, con un nome come ‘874c0706216382af.jpg’.

Tombstone ha una lifecycle di S3 per essere contrassegnato come eliminato dopo 30 giorni.

Quindi, ipotizzando, sono solo optimized/, original/ e tombstone/ ad essere utilizzati?

Sì, sembra giusto.

Quei file sono sempre presenti nei forum molto vecchi (intorno al 2014). Penso che esistano prima di optimized e original e sospetto che vengano ancora citati.

Non ho resistito alla curiosità di scoprirlo. Questo è effettivamente un vecchio schema di caricamento. È stato abbandonato più tardi di quanto sospettassi, nel maggio 2015, con questo commit.

Questi caricamenti sono effettivamente ancora in uso, quindi non rimuoverli!

Grazie Michael. Dato che risalgono al 2014, quando abbiamo iniziato, i numeri dei file sono piccoli e li lasceremo dove sono. :slight_smile:

È interessante notare che abbiamo recentemente spostato il server, optando per una procedura di backup/ripristino di Discourse (piuttosto che un aggiornamento in loco della versione Unix di base) e credo (anche se non sono al 100% sicuro) che il ripristino non abbia posizionato correttamente questi file locali. Erano contenuti nell’archivio di backup, ma il processo di ripristino sembrava funzionare solo per i file ottimizzati/originali.

Non è stato un grosso problema, perché potevamo estrarli noi stessi dall’archivio di backup (quando abbiamo notato che le cartelle di upload e i contenuti dei vecchi e nuovi server erano diversi), ma è qualcosa che potrebbe creare problemi a qualcuno, quindi volevo menzionarlo qui.

Anche se il 99,9% dei nostri file caricati viene ora servito da S3 (abbiamo passato dai file locali a S3 abbastanza presto), credo che dobbiamo aver copiato i file locali quando abbiamo creato manualmente il bucket S3 inizialmente. A posteriori, avremmo probabilmente dovuto rigenerare i post, ma ha sempre funzionato abbastanza bene con i post molto piccoli (e vecchi) che avevano l’URL di caricamento del file locale.