Sto cercando di migrare tutti i dati da S3 al mio server. Tuttavia, rake uploads:migrate_from_s3 restituisce l’errore Devi disabilitare i caricamenti S3 prima di eseguire quel compito. Quindi ho deselezionato l’opzione enable s3 uploads nelle impostazioni di Discourse e ho anche aggiunto DISCOURSE_USE_S3: false al file app.yml. Ma ancora senza successo, lo stesso errore.
Cos’è una variabile d’ambiente S3? Nel mio caso, DISCOURSE_USE_S3 è mantenuta nell’ambiente.
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
UNICORN_WORKERS: 2
## TODO: Il nome di dominio a cui risponderà questa istanza di Discourse
DISCOURSE_HOSTNAME: engineersasylum.com
## Rimuovi il commento se desideri che il contenitore venga avviato con lo stesso
## nome di host (opzione -h) specificato sopra (predefinito "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: Elenco di email separate da virgola che verranno rese amministratori e sviluppatori
## alla registrazione iniziale, ad esempio 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: 'praveen369gen@gmail.com'
# Configurazione S3
DISCOURSE_USE_S3: false
DISCOURSE_S3_REGION: ap-south-1
DISCOURSE_S3_ACCESS_KEY_ID: AKxxxxxxxxxxxxxxxxxxxxxDQ
DISCOURSE_S3_SECRET_ACCESS_KEY: QWVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxLigGs
DISCOURSE_S3_BUCKET: enginxxxxxxxxxxket
DISCOURSE_S3_BACKUP_BUCKET: enginxxxxxxxxxxxxcket
DISCOURSE_BACKUP_LOCATION: s3
… e non dimenticare @Pravi che devi ricostruire il tuo container (app) dopo aver modificato la maggior parte delle variabili nel tuo file yml. Alcune potrebbero cambiare semplicemente fermando e riavviando il container, ma in caso di dubbio, ricostruisci sempre il container (app) dopo aver apportato una modifica al tuo file yml.
Ho aggiunto la località locale alla posizione di backup, quindi ho ricompilato il contenitore e ho provato a eseguire la migrazione, ma senza successo. Mi sta restituendo Devi disabilitare i caricamenti S3 prima di eseguire quell’attività.
Dopo aver ricompilato impostando DISCOURSE_USE_S3=false nel file YAML, hai eseguito il task Rake e ricevi ancora il messaggio “Devi disabilitare gli upload su S3”? Hai anche disabilitato S3 dal tuo pannello di amministrazione?
Sì, ho aggiunto DISCOURSE_USE_S3=false a app.yml, poi ho ricompilato il container ed eseguito il task rake, ma ottengo ancora lo stesso output. Sì, ho disabilitato il caricamento nella pagina di amministrazione.
Non capisco come l’ultima possa essere true se hai impostato la variabile d’ambiente su false e hai ricostruito. Le impostazioni di SiteSetting provengono dal tuo pannello di amministrazione, mentre GlobalSettings è gestito tramite app.yml.
Disimpostando DISCOURSE_USE_S3 e DISCOURSE_S3_BUCKET ottengo questo errore,
root@ip-172-31-7-247-app:/var/www/discourse# rake uploads:migrate_from_s3
Migrazione degli upload da S3 a archiviazione locale per 'default'...
rake aborted!
NoMethodError: metodo `downcase` non definito per nil:NilClass
/var/www/discourse/app/models/global_setting.rb:107:in `s3_bucket_name'
/var/www/discourse/app/models/site_setting.rb:157:in `absolute_base_url'
/var/www/discourse/lib/tasks/uploads.rake:138:in `migrate_from_s3'
/var/www/discourse/lib/tasks/uploads.rake:118:in `block in migrate_all_from_s3'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:68:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:78:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:118:in `migrate_all_from_s3'
/var/www/discourse/lib/tasks/uploads.rake:93:in `block in <main>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => uploads:migrate_from_s3
(Vedi traccia completa eseguendo il task con --trace)
Aggiornamento:
Prima di disimpostare DISCOURSE_USE_S3 e DISCOURSE_S3_BUCKET,
Ho provato anch’io. Ho commentato tutto tranne DISCOURSE_USE_S3: false, ma appare lo stesso errore di prima.
root@ip-172-31-7-247-app:/var/www/discourse# rake uploads:migrate_from_s3
Migrazione dei file caricati da S3 a archiviazione locale per 'default'...
rake aborted!
NoMethodError: metodo 'downcase' non definito per nil:NilClass
/var/www/discourse/app/models/global_setting.rb:107:in `s3_bucket_name'
/var/www/discourse/app/models/site_setting.rb:157:in `absolute_base_url'
/var/www/discourse/lib/tasks/uploads.rake:138:in `migrate_from_s3'
/var/www/discourse/lib/tasks/uploads.rake:118:in `block in migrate_all_from_s3'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:68:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:78:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:118:in `migrate_all_from_s3'
/var/www/discourse/lib/tasks/uploads.rake:93:in `block in <main>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => uploads:migrate_from_s3
(Vedi traccia completa eseguendo il task con --trace)