# Smetti di usare Amazon S3 per gli upload

**URL:** https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286
**Category:** Support
**Created:** [23 Gennaio 2019, 1:26pm UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286 "2019-01-23T13:26:23Z")
**Posts on this page:** 20
**Page:** 2

<div class="post-metadata">

### Author: ![Pravi](https://avatars.discourse-cdn.com/v4/letter/p/76d3ee/32.png) [@Pravi](https://meta.discourse.org/u/Pravi)
#### Post date: [27 Aprile 2021, 4:14pm UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/23 "2021-04-27T16:14:03Z")

</div>

Il backup contiene molte directory e sottodirectory. Penso che dobbiate copiare i file presenti nelle directory, da entrambi i bucket in modo ricorsivo, nelle rispettive posizioni sul server locale. Ad esempio, tutto il contenuto delle directory 1X e 2X di entrambi i bucket deve essere copiato nelle directory 1X e 2X sul server locale. Non ne sono certo, ma credo di sì.

Potete confermare di aver copiato correttamente tutti i file?

---

<div class="post-metadata">

### Author: ![Bathinda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bathinda/32/135888_2.png) [@Bathinda](https://meta.discourse.org/u/Bathinda)
#### Post date: [28 Aprile 2021, 4:41am UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/24 "2021-04-28T04:41:40Z")

</div>

Sì, ho compreso appieno e ho assicurato che i loro percorsi relativi rimangano esattamente gli stessi.

Ad esempio, se un file esisteva precedentemente in:  
_//bucket1/uploads/original/2x/f/filename.jpg_  
e l’altro in:  
_//bucket2/uploads/original/1x/a/filename.png_

Ora entrambi esistono anche in:  
_/var/discourse/shared/web\_only/uploads/default/original/2x/filename.jpg e ../original/1x/a/filename.png_

**Problemi**  
Prima di copiare i contenuti del bucket sul server locale, ho notato che alcune delle mie immagini venivano visualizzate solo come icone, e l’immagine completa poteva essere vista dai visitatori del sito solo cliccando sull’icona.

Dopo aver copiato (non spostato) tutti i contenuti del bucket nella posizione sopra indicata del mio server locale (mantenendo i percorsi relativi intatti) ed eseguito il comando  
`discourse remap:oldurl-or-path new-url-or-path`,

non è cambiato nulla di visibile sul sito. Ma poi ho eseguito  
`rake posts:rebake`,

e persino le icone delle immagini sono scomparse e non appare alcun URL/percorso quando passi il mouse sopra lo spazio vuoto del segnaposto dell’immagine.

Spero di aver fornito sufficienti dettagli.

---

<div class="post-metadata">

### Author: ![Pravi](https://avatars.discourse-cdn.com/v4/letter/p/76d3ee/32.png) [@Pravi](https://meta.discourse.org/u/Pravi)
#### Post date: [28 Aprile 2021, 8:30am UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/25 "2021-04-28T08:30:54Z")

</div>

> [@Bathinda](#):
>
> Sì, ho compreso appieno e ho assicurato che i loro percorsi relativi rimangano esattamente gli stessi.

In tal caso, penso che quanto riportato di seguito risolverà il tuo problema.

```
    ./launcher enter app
    discourse remap //bxyzbucket1.s3.dualstack.ap-south-1.amazonaws.com/uploads/ /uploads/default/
    discourse remap //bhdisco.s3.dualstack.ap-south-1.amazonaws.com/uploads/ /uploads/default/
    rake posts:rebake

```

---

<div class="post-metadata">

### Author: ![Bathinda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bathinda/32/135888_2.png) [@Bathinda](https://meta.discourse.org/u/Bathinda)
#### Post date: [28 Aprile 2021, 8:52am UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/26 "2021-04-28T08:52:34Z")

</div>

Grazie, ji.

Ma come ho già spiegato, dopo aver eseguito le operazioni di ‘remap’ e ‘rebake’, persino le icone delle immagini scompaiono (cioè la situazione peggiora).

---

<div class="post-metadata">

### Author: ![Pravi](https://avatars.discourse-cdn.com/v4/letter/p/76d3ee/32.png) [@Pravi](https://meta.discourse.org/u/Pravi)
#### Post date: [28 Aprile 2021, 10:04am UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/27 "2021-04-28T10:04:26Z")

</div>

> [@Bathinda](#):
>
> `discourse remap:oldurl-or-path new-url-or-path` ,

Devi fornire il percorso corretto durante la rimappatura, altrimenti potrebbe causare errori. Ho rimappato manualmente un link S3 dall’output di esempio che hai fornito in precedenza e funziona.

**Un’immagine ospitata nel bucket:**

[https://bxyzbucket1.s3.dualstack.ap-south-1.amazonaws.com/uploads/original/2X/9/9d8f29892278f164e8ce27a6b58cc8af0760802c.png](https://bxyzbucket1.s3.dualstack.ap-south-1.amazonaws.com/uploads/original/2X/9/9d8f29892278f164e8ce27a6b58cc8af0760802c.png)

**La stessa immagine ospitata sul tuo server locale:**

[https://bathindahelper.com/uploads/default/original/2X/9/9d8f29892278f164e8ce27a6b58cc8af0760802c.png](https://bathindahelper.com/uploads/default/original/2X/9/9d8f29892278f164e8ce27a6b58cc8af0760802c.png)

Puoi aprire l’immagine in una nuova scheda per vedere i collegamenti di entrambe le immagini sopra. Quindi suppongo che questo funzionerà.

```plaintext
 ./launcher enter app
  discourse remap //bxyzbucket1.s3.dualstack.ap-south-1.amazonaws.com/uploads/ /uploads/default/
  discourse remap //bhdisco.s3.dualstack.ap-south-1.amazonaws.com/uploads/ /uploads/default/
  rake posts:rebake

```

---

<div class="post-metadata">

### Author: ![Bathinda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bathinda/32/135888_2.png) [@Bathinda](https://meta.discourse.org/u/Bathinda)
#### Post date: [28 Aprile 2021, 10:24am UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/28 "2021-04-28T10:24:02Z")

</div>

Grazie ancora.

Ho fatto clic con il tasto destro sulla (prima) immagine e il percorso mostrato nella barra degli URL non era quello del mio bucket:

 ![image](https://global.discourse-cdn.com/meta/original/3X/7/c/7c0f18ceb54485c387f40a3d9f3ac9ef00f337c8.png)

Lo stesso vale per la seconda immagine.

Puoi controllare un esempio di post del mio sito [qui](https://bathindahelper.com/t/how-to-pay-your-water-sewerage-bills-online-for-bmc-bathinda-municipal-corporation/1512?u=bathinda_helper) (il post è in hindi, ma puoi facilmente trovare la piccola icona dell’immagine all’interno del post). L’immagine completa viene visualizzata solo se si fa clic sulla piccola icona.

Tuttavia, se eseguo il rimappaggio e poi la ricottura, anche questa icona scompare completamente. Non rimane alcun modo per il visitatore di vedere l’immagine.

---

<div class="post-metadata">

### Author: ![Pravi](https://avatars.discourse-cdn.com/v4/letter/p/76d3ee/32.png) [@Pravi](https://meta.discourse.org/u/Pravi)
#### Post date: [28 Aprile 2021, 10:38am UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/29 "2021-04-28T10:38:03Z")

</div>

> [@Bathinda](#):
>
> Ho fatto clic con il tasto destro sull’immagine (prima) e il percorso mostrato nella barra degli URL non era quello del mio bucket:

Sembra che tu abbia utilizzato in precedenza CloudFront per la memorizzazione nella cache. Cancella la cache del browser e riprova.  
Se hai apportato configurazioni a CloudFront, credo sia meglio annullare tutte quelle impostazioni.

---

<div class="post-metadata">

### Author: ![Bathinda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bathinda/32/135888_2.png) [@Bathinda](https://meta.discourse.org/u/Bathinda)
#### Post date: [28 Aprile 2021, 10:40am UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/30 "2021-04-28T10:40:09Z")

</div>

> [@Pravi](#):
>
> sembra che tu abbia già utilizzato CloudFront per la cache. Pulisci il bro

Nessun Cloudflare {edit: CloudFront} (o qualsiasi altra CDN) coinvolto dalla mia parte, per il mio sito web, negli ultimi circa 2 anni.

Le immagini su meta potrebbero essere archiviate su Cloudflare.

---

<div class="post-metadata">

### Author: ![Pravi](https://avatars.discourse-cdn.com/v4/letter/p/76d3ee/32.png) [@Pravi](https://meta.discourse.org/u/Pravi)
#### Post date: [28 Aprile 2021, 10:43am UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/31 "2021-04-28T10:43:41Z")

</div>

> [@Pravi](#):
>
> CloudFront

Non è Cloudflare. È CloudFront. Hai svuotato la cache del browser?

---

<div class="post-metadata">

### Author: ![Bathinda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bathinda/32/135888_2.png) [@Bathinda](https://meta.discourse.org/u/Bathinda)
#### Post date: [28 Aprile 2021, 10:45am UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/32 "2021-04-28T10:45:11Z")

</div>

> [@Pravi](#):
>
> Non Cloudflare.

Sì, CloudFront (scusa).

> [@Pravi](#):
>
> Hai svuotato la cache del browser?

Sì, l’ho fatto. Inoltre, ho aperto questo argomento in modalità incognito di Firefox.

---

<div class="post-metadata">

### Author: ![Pravi](https://avatars.discourse-cdn.com/v4/letter/p/76d3ee/32.png) [@Pravi](https://meta.discourse.org/u/Pravi)
#### Post date: [28 Aprile 2021, 10:56am UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/33 "2021-04-28T10:56:17Z")

</div>

Ora sto ricevendo gli stessi link di CloudFront. Sembra che tu abbia abilitato AWS CloudFront per il tuo sito. CloudFront sta memorizzando nella cache le immagini nel tuo bucket. Penso che tu debba rimuovere la distribuzione da CloudFront. Devi accedere al tuo account AWS per verificare se la distribuzione CloudFront è attiva?

---

<div class="post-metadata">

### Author: ![Pravi](https://avatars.discourse-cdn.com/v4/letter/p/76d3ee/32.png) [@Pravi](https://meta.discourse.org/u/Pravi)
#### Post date: [28 Aprile 2021, 11:03am UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/34 "2021-04-28T11:03:49Z")

</div>

Ehi, abbiamo frainteso CloudFront qui. In realtà, è meta-discourse che sta memorizzando l’immagine nella cache. È colpa mia.

---

<div class="post-metadata">

### Author: ![Bathinda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bathinda/32/135888_2.png) [@Bathinda](https://meta.discourse.org/u/Bathinda)
#### Post date: [28 Aprile 2021, 11:11am UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/35 "2021-04-28T11:11:38Z")

</div>

> [@Pravi](#):
>
> Sembra che tu abbia abilitato AWS CloudFront per il tuo sito. CloudFront sta memorizzando nella cache le immagini nel tuo bucket. Penso che

Non ho mai utilizzato CloudFront (o qualsiasi altra CDN) su AWS o nel frontend. Anche se circa due anni fa ho usato CloudFlare per un mese circa, l’ho poi rimosso definitivamente.  
Non ho nemmeno scelto CloudFront su AWS. Quindi non sorge alcuna domanda nemmeno in quel caso.

Inoltre, sul mio PC, quando apro le immagini, vengono mostrati gli indirizzi del bucket AWS, non di alcuna altra CDN.

 ![image](https://global.discourse-cdn.com/meta/original/3X/5/7/57dfb075d5222c76d4c54c5d0754cf3078f9edf6.png)

 ![image](https://global.discourse-cdn.com/meta/original/3X/d/d/ddb658ad0ee0dc173da930e124e5e6a2e68bd35e.png)

---

<div class="post-metadata">

### Author: ![Pravi](https://avatars.discourse-cdn.com/v4/letter/p/76d3ee/32.png) [@Pravi](https://meta.discourse.org/u/Pravi)
#### Post date: [28 Aprile 2021, 11:17am UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/36 "2021-04-28T11:17:25Z")

</div>

> [@Pravi](#):
>
> Ciao, abbiamo frainteso CloudFront. In realtà, è meta Discourse a memorizzare la cache dell’immagine. La colpa è mia.

Ho frainteso CloudFront. In realtà, è meta Discourse che ha memorizzato in cache l’immagine. Ho modificato il mio post precedente. Dai un’occhiata.

> [@Stop using Amazon s3 for uploads](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/27?u=pravi):
>
> You have to give the correct path when remapping, else it may break. I have manually remapped one on the S3 link from the sample output you provided earlier and it works. An image hosted in the bucket: [https://bxyzbucket1.s3.dualstack.ap-south-1.amazonaws.com/uploads/original/2X/9/9d8f29892278f164e8ce27a6b58cc8af0760802c.png](https://bxyzbucket1.s3.dualstack.ap-south-1.amazonaws.com/uploads/original/2X/9/9d8f29892278f164e8ce27a6b58cc8af0760802c.png) The same image hosted in your local server: [https://bathindahelper.com/uploads/default/original/2X/9/9d8f29892278f164e8ce27a6b58cc8af0760802c.png](https://bathindahelper.com/uploads/default/original/2X/9/9d8f29892278f164e8ce27a6b58cc8af0760802c.png) You may open the imag…

---

<div class="post-metadata">

### Author: ![Bathinda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bathinda/32/135888_2.png) [@Bathinda](https://meta.discourse.org/u/Bathinda)
#### Post date: [28 Aprile 2021, 11:39am UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/37 "2021-04-28T11:39:05Z")

</div>

> [@Pravi](#):
>
> è necessario fornire il percorso corretto quando si esegue il rimappaggio

Stai solo suggerendo di rimappare i percorsi delle immagini (dall’URL del bucket S3 al percorso del server locale) e poi di rifare il baking.

Ma come ho già detto, l’ho già fatto e ho scoperto che ciò aggrava il problema. (inoltre, dopo il rebaking, anche la funzione ‘Ripristina’ non funziona ed è difficile tornare indietro).

Avete qualche altra idea utile?

---

<div class="post-metadata">

### Author: ![Pravi](https://avatars.discourse-cdn.com/v4/letter/p/76d3ee/32.png) [@Pravi](https://meta.discourse.org/u/Pravi)
#### Post date: [28 Aprile 2021, 11:51am UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/38 "2021-04-28T11:51:16Z")

</div>

Quando hai eseguito il reindirizzamento, sei sicuro che i percorsi fossero gli stessi indicati di seguito,

```
discourse remap //bxyzbucket1.s3.dualstack.ap-south-1.amazonaws.com/uploads/ /uploads/default/
discourse remap //bhdisco.s3.dualstack.ap-south-1.amazonaws.com/uploads/ /uploads/default/

```

Quale percorso hai specificato durante il reindirizzamento?

Ti ho già fornito un esempio in un post precedente. Ha funzionato. Non conosco nessun altro metodo.

---

<div class="post-metadata">

### Author: ![Bathinda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bathinda/32/135888_2.png) [@Bathinda](https://meta.discourse.org/u/Bathinda)
#### Post date: [28 Aprile 2021, 1:01pm UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/39 "2021-04-28T13:01:51Z")

</div>

> [@Pravi](#):
>
> Se hai rimappato, sei sicuro che i percorsi fossero gli stessi?

Proverò di nuovo, con la massima cura possibile.  
Ma stavo cercando un metodo per capire cosa succede dietro le quinte. Almeno con un singolo post di esempio, volevo vedere quali post hanno quale bucket mappato e in che guaio mi trovo.

Comunque, proverò di nuovo e farò sapere qui. Grazie ancora.

---

<div class="post-metadata">

### Author: ![Pravi](https://avatars.discourse-cdn.com/v4/letter/p/76d3ee/32.png) [@Pravi](https://meta.discourse.org/u/Pravi)
#### Post date: [28 Aprile 2021, 1:53pm UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/40 "2021-04-28T13:53:18Z")

</div>

Il percorso che hai specificato nel tuo precedente remap verrà riflesso nell’output del comando sottostante. Poiché entrambi i bucket sono ancora presenti, penso che il tuo precedente remap possa essere fallito. Comunque, ora la decisione è tua. Spero che tu riesca presto a trovare una soluzione. In bocca al lupo.

```
./launcher enter app
rails c
Upload.all.sample(2000).pluck(:url)

```

Grazie

---

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [5 Maggio 2021, 3:55pm UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/41 "2021-05-05T15:55:09Z")

</div>

> [@keven](#):
>
> Qualcuno più esperto di me su Discourse dovrebbe preparare una guida infallibile su come realizzare questa operazione.

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](https://aws.amazon.com/cli/) all’interno del contenitore dell’app

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

```

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

```plaintext
aws configure

```

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

```plaintext
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 `/`):

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

```

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

```plaintext
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!

---

<div class="post-metadata">

### Author: ![keven](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/keven/32/111884_2.png) [@keven](https://meta.discourse.org/u/keven)
#### Post date: [5 Maggio 2021, 5:53pm UTC](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286/42 "2021-05-05T17:53:30Z")

</div>

Ottimo lavoro! Credo che questi siano i passaggi che alla fine mi hanno aiutato a avere successo, ma ho provato molti altri rimappaggi diversi che non hanno funzionato altrettanto bene! È fantastico avere istruzioni formalizzate.

[Pagina precedente](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286.md?page=1)

[Pagina seguente](https://meta.discourse.org/t/stop-using-amazon-s3-for-uploads/107286.md?page=3)
