Smetti di usare Amazon S3 per gli upload

Non sono più esperto di te, ma l’ho appena fatto io - e ce l’ho fatta con l’aiuto di @Pravi.

Passaggi necessari per tornare dallo stato di caricamento su S3 allo stato vanilla

Non è semplicissimo: fai molta attenzione al testo e ai link, perché se qualcosa va storto sarà un vero disastro da sistemare. Ma è assolutamente fattibile.

Passo 1 - Copia i file dal tuo bucket S3 alla cartella public/uploads/default

Per prima cosa, installa AWS CLI all’interno del contenitore dell’app

cd /var/discourse
./launcher enter app
sudo apt install awscli

Configura aws con il tuo ID e password S3 (di solito è semplice)

aws configure

Poi usa aws per copiare tutto il contenuto del bucket in public/uploads/default/

aws s3 sync s3://my-bucket-name/ public/uploads/default/

Passo 2 - Rimappa l’URL di S3

Il modo più semplice è trovare un’immagine sul tuo forum e ispezionare l’URL. Ti serve ogni parte fino al nome effettivo del file (incluso l’ultimo /):

discourse remap //il-lungo-url-nei-tuoi-immagini-fino-al-nome-file /uploads/default/

Passo 3 - Rigenera i post e ricostruisci l’app:

rake posts:rebake
exit
./launcher rebuild app

Passo 4 - Disattiva S3

  1. Disattiva i caricamenti su S3 nelle impostazioni (o nel tuo app.yml se li hai configurati così). Se hai usato una CDN, rimuovi anche il link ad essa dall’impostazione (altrimenti non viene davvero disattivata).
  2. Spegni il tuo contenitore. Io l’ho fatto spostando il contenuto in un nuovo contenitore come backup come primo passo.

Finito! Finora non ho riscontrato problemi. Vai a provarlo!