Cercherò di riassumere le risposte alle mie domande:
- L’interfaccia utente Web e la variabile ENV entrano in conflitto?
Se si utilizzano le variabili ENV (cosa che si dovrebbe fare), tali impostazioni non saranno più visibili nell’interfaccia utente Web.
- Quando dovrebbero essere caricati gli asset nel bucket?
Aggiungendo questo snippet ad app.yml nella sezione hook, verrà caricato dopoafter_assets_precompile(durante la ricostruzione dell’app).
after_assets_precompile: - exec: cd: $home cmd: - sudo -E -u discourse bundle exec rake s3:upload_assets
- Come posso eseguire il debug? Non vedo errori nei log.
Eseguendo:
cd /var/discourse
sudo ./launcher enter app
sudo -E -u discourse bundle exec rake s3:upload_assets --trace
- È possibile impostare una sottocartella di un bucket nella configurazione?
Devo davvero usare bucket separati per caricamenti e backup?
No, non è necessario, ma di solito è il modo più semplice per configurare. Essenzialmente è necessario utilizzare due bucket diversi o un prefisso per il bucket di backup. Ad esempio, le seguenti combinazioni funzioneranno:
- Bucket diversi
- s3_upload_bucket:
tuo-bucket-caricamenti- s3_backup_bucket:
tuo-bucket-backup
- Prefissi diversi
- s3_upload_bucket:
tuo-bucket-caricamenti/caricamenti- s3_backup_bucket:
tuo-bucket-caricamenti/backup
È possibile utilizzare prefissi per organizzare i dati archiviati nei bucket Amazon S3. Un prefisso è una sequenza di caratteri all’inizio del nome della chiave dell’oggetto. Un prefisso può avere qualsiasi lunghezza, soggetta alla lunghezza massima del nome della chiave dell’oggetto (1.024 byte). È possibile considerare i prefissi come un modo per organizzare i dati in modo simile alle directory. Tuttavia, i prefissi non sono directory. (Organizing objects using prefixes - Amazon Simple Storage Service)
- Una volta che questo funziona, le immagini precedentemente caricate vengono trasferite nel bucket? Se faccio un rebake, che aspetto avranno gli URL delle immagini precedentemente caricate?
Ho abilitato i caricamenti S3 nella mia istanza Discourse (che è in funzione da un po’); cosa devo fare con i caricamenti locali esistenti?
Per migrare i caricamenti esistenti su S3, puoi eseguire un paio di rake tasks. Per farlo, è necessario avere accesso SSH, permessi di root ed essere entrati nell’app Discourse (come da Operazioni di massa amministrative). Ah, e devi impostare alcune variabili d’ambiente in app.yml. Non per i deboli di cuore.
Una volta fatto tutto ciò, sei pronto per le rake tasks:
rake uploads:migrate_to_s3 rake posts:rebakeUna volta completate queste operazioni (e i caricamenti funzionano bene), non sarà più necessario includere i caricamenti nei backup. E come bonus, sarai in grado di Ripristinare un backup dalla riga di comando in caso di catastrofe (basta conservare una copia di app.yml da qualche parte).