Per un sysadmin esperto, il modo preferito per spostare file di grandi dimensioni è utilizzare strumenti come rsync o scp, ma a volte non si ha accesso SSH al host da cui è necessario recuperare un file di backup di grandi dimensioni.
Poiché i file di backup contengono informazioni sensibili, Discourse dispone di funzionalità di sicurezza che rendono molto difficile per una persona non autorizzata recuperare un backup. È necessario ottenere un link di download via email e utilizzarlo effettuando l’accesso come l’utente che ha richiesto il file. Se si desidera scaricare i dati tramite un browser web, l’operazione è piuttosto semplice. Tuttavia, se si vuole spostare quel backup su un altro server su Internet, la maggior parte delle connessioni Internet residenziali rende il processo molto complicato. Sulla mia connessione domestica, un file da 2,3 GB richiede oltre 20 minuti per il caricamento. Il file da 12 GB qui presente richiederebbe circa due ore.
Ecco come ottenere un link che permetta di recuperare un backup da un sito Discourse tramite wget.
Innanzitutto, avvia il download come di consueto e poi apri la pagina dei download di Chrome (chrome://downloads/). Fai clic con il tasto destro sull’URL e copialo.
Successivamente, in una shell sulla macchina dove desideri il file, incolla quell’URL in una richiesta wget. Assicurati di racchiuderlo tra virgolette, poiché i caratteri \u0026 potrebbero causare problemi. Devi anche assicurarti di mantenere il nome originale del file di backup. La tua richiesta dovrebbe essere simile a questa:
wget --show-progress "https://bucket-name.s3.us-west-2.amazonaws.com/backups/xyz/multisitename/discourse-2020-11-19-001538-v20201116132948.tar.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Credential=AKIAWWK5WHOFJ%2F20201119%2Fus-west-2%2Fs3%2Faws4_request\u0026X-Amz-Date=20201119T013442Z\u0026X-Amz-Expires=300\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=1753b97a8aaf6953c89aa28628b8db" -o discourse-2020-11-19-001538-v20201116132948.tar.gz
Puoi anche omettere -o filename e rinominare il file (che avrà come nome l’URL completo) dopo averlo scaricato. L’URL ha una scadenza temporale, quindi dovrai avviare il download solo quando sei pronto a trasferirlo sul tuo server.
Successivamente, puoi spostare il file in /var/discourse/shared/standalone/backups/default e ripristinarlo dall’interfaccia web o con:
cd /var/discourse
./launcher enter app
discourse enable_restore
discourse restore
L’ultimo comando sopra elencato stamperà un elenco dei backup disponibili; potrai quindi copiare e incollare quello corretto per avviare il ripristino.

