# Migrer\_de\_s3 : Vous devez désactiver les téléchargements S3 avant d'exécuter cette tâche

**URL:** https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633
**Category:** Support
**Created:** [Août 12, 2020, 2:29 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633 "2020-08-12T14:29:43Z")
**Posts on this page:** 20
**Page:** 1

<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: [Août 12, 2020, 2:29 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/1 "2020-08-12T14:29:43Z")

</div>

J’essaie de migrer toutes les données de S3 vers mon serveur. Cependant, `rake uploads:migrate_from_s3` renvoie l’erreur « Vous devez désactiver les uploads S3 avant d’exécuter cette tâche ». J’ai donc décoché l’option **activer les uploads S3** dans les paramètres de Discourse et ajouté **DISCOURSE\_USE\_S3: false** dans mon fichier app.yml. Mais toujours rien, la même erreur.

```plaintext
[1] pry(main)> SiteSetting.enable_s3_uploads
=> false
[2] pry(main)> GlobalSetting.use_s3
=> false
[3] pry(main)> GlobalSetting.use_s3?
=> true

```

Je suis confus. Comment le désactiver ?

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [Août 12, 2020, 2:39 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/2 "2020-08-12T14:39:17Z")

</div>

Votre fichier app.yml contient-il des variables d’environnement S3 ? Vous devrez peut-être les vérifier pour désactiver les téléchargements S3.

---

<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: [Août 12, 2020, 2:47 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/3 "2020-08-12T14:47:40Z")

</div>

Qu’est-ce qu’une variable d’environnement S3 ? Dans mon cas, **DISCOURSE\_USE\_S3** est conservé dans l’environnement.

```
env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  UNICORN_WORKERS: 2

  ## TODO : Nom de domaine auquel cette instance Discourse répondra
  DISCOURSE_HOSTNAME: engineersasylum.com

  ## Décommentez si vous souhaitez que le conteneur soit démarré avec le même
  ## nom d'hôte (option -h) que spécifié ci-dessus (par défaut "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO : Liste d'adresses e-mail séparées par des virgules qui seront définies comme administrateur et développeur
  ## lors de l'inscription initiale, par exemple 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'praveen369gen@gmail.com'

  # Configuration 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

```

---

<div class="post-metadata">

### Author: ![neounix](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neounix/32/215617_2.png) [@neounix](https://meta.discourse.org/u/neounix)
#### Post date: [Août 12, 2020, 2:50 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/4 "2020-08-12T14:50:47Z")

</div>

… et n’oubliez pas @Pravi que vous devez reconstruire votre conteneur (application) après avoir modifié la plupart des variables dans votre fichier `yml` ; certaines peuvent changer en arrêtant et en redémarrant votre conteneur, mais en cas de doute, reconstruisez le conteneur (application) après avoir apporté une modification à votre `yml`.

---

<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: [Août 12, 2020, 2:53 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/5 "2020-08-12T14:53:53Z")

</div>

Je reconstruis le conteneur après chaque modification du fichier app.yml. Pourtant, il est désactivé.

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [Août 12, 2020, 3:05 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/6 "2020-08-12T15:05:52Z")

</div>

Essayez de changer l’emplacement de la sauvegarde en local ?  
Je ne sais pas si cela aidera, mais c’est ma meilleure option.

---

<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: [Août 12, 2020, 3:20 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/7 "2020-08-12T15:20:03Z")

</div>

J’ai ajouté local à l’emplacement de sauvegarde, puis reconstruit le conteneur et tenté la migration, mais toujours sans succès. Cela me dit : **Vous devez désactiver les téléchargements S3 avant d’exécuter cette tâche**.

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [Août 12, 2020, 3:31 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/8 "2020-08-12T15:31:49Z")

</div>

Je suis désolé, je ne sais pas ce qui peut causer cela.

---

<div class="post-metadata">

### Author: ![AntiMetaman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/antimetaman/32/186978_2.png) [@AntiMetaman](https://meta.discourse.org/u/AntiMetaman)
#### Post date: [Août 12, 2020, 5:03 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/9 "2020-08-12T17:03:40Z")

</div>

Après avoir reconstruit avec DISCOURSE\_USE\_S3=false dans le fichier yml, avez-vous exécuté la tâche rake et cela indique-t-il toujours « Vous devez désactiver les téléchargements S3 » ? Avez-vous également désactivé S3 dans votre panneau d’administration ?

---

<div class="post-metadata">

### Author: ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)
#### Post date: [Août 12, 2020, 5:56 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/10 "2020-08-12T17:56:27Z")

</div>

Pour l’instant, quel est le résultat de :

```plaintext
SiteSetting.Upload.enable_s3_uploads
SiteSetting.enable_s3_uploads
GlobalSetting.use_s3?

```

La logique de `GlobalSetting.use_s3?` n’utilise pas l’environnement de la même manière — elle utilise :

```ruby
  def self.use_s3?
    (@use_s3 ||=
      begin
        s3_bucket &&
        s3_region && (
          s3_use_iam_profile || (s3_access_key_id && s3_secret_access_key)
        ) ? :true : :false
      end) == :true
  end

```

Je comprends que cela puisse prêter à confusion — je vais demander à quelqu’un d’examiner cela.

Pour l’instant, désactiver `DISCOURSE_USE_S3` dans l’environnement et `DISCOURSE_S3_BUCKET` devrait vous permettre de migrer depuis S3.

---

<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: [Août 12, 2020, 6:49 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/11 "2020-08-12T18:49:19Z")

</div>

Voici ce que j’obtiens,

```
[1] pry(main)> SiteSetting.Upload.enable_s3_uploads
=> true
[2] pry(main)> SiteSetting.enable_s3_uploads
=> false
[3] pry(main)> GlobalSetting.use_s3?
=> true
[4] pry(main)>

```

---

<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: [Août 12, 2020, 6:52 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/12 "2020-08-12T18:52:04Z")

</div>

Oui, j’ai ajouté DISCOURSE\_USE\_S3=false dans app.yml, puis j’ai reconstruit le conteneur et exécuté la tâche rake, mais cela me donne toujours la même sortie. Oui, j’ai désactivé les téléchargements dans la page d’administration.

---

<div class="post-metadata">

### Author: ![AntiMetaman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/antimetaman/32/186978_2.png) [@AntiMetaman](https://meta.discourse.org/u/AntiMetaman)
#### Post date: [Août 12, 2020, 6:56 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/13 "2020-08-12T18:56:18Z")

</div>

> [@supermathie](#):
>
> Pour l’instant, désactiver `DISCOURSE_USE_S3` dans l’environnement et `DISCOURSE_S3_BUCKET` devrait vous permettre de migrer depuis S3.

Comme indiqué ici, vous devriez également désactiver DISCOURSE\_S3\_BUCKET dans le fichier yml. Probablement en ajoutant simplement un # devant.

---

<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: [Août 12, 2020, 6:57 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/14 "2020-08-12T18:57:27Z")

</div>

Pour le moment, je reconstruis le conteneur. Je vous ferai un retour dans quelques minutes.

---

<div class="post-metadata">

### Author: ![AntiMetaman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/antimetaman/32/186978_2.png) [@AntiMetaman](https://meta.discourse.org/u/AntiMetaman)
#### Post date: [Août 12, 2020, 6:59 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/15 "2020-08-12T18:59:06Z")

</div>

> [@Pravi](#):
>
> ```plaintext
> [1] pry(main)> SiteSetting.Upload.enable_s3_uploads
> => true
> [2] pry(main)> SiteSetting.enable_s3_uploads
> => false
> [3] pry(main)> GlobalSetting.use_s3?
> => true
> [4] pry(main)>
> 
> ```

Je ne comprends pas comment ce dernier peut être vrai si vous avez défini la variable d’environnement à false et reconstruit. Les paramètres SiteSetting proviennent de votre panneau d’administration, tandis que GlobalSettings est configuré via app.yml.

---

<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: [Août 12, 2020, 7:04 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/16 "2020-08-12T19:04:11Z")

</div>

Le paramètre du site dans mon panneau d’administration est désactivé.

![s3](https://global.discourse-cdn.com/meta/original/3X/2/4/2407013474ac47ffd1bc78c756d1962feeab1656.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: [Août 12, 2020, 7:06 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/17 "2020-08-12T19:06:26Z")

</div>

> [@supermathie](#):
>
> Pour l’instant, désactiver `DISCOURSE_USE_S3` dans l’environnement et `DISCOURSE_S3_BUCKET` devrait vous permettre de migrer depuis S3.

Configuration S3

```
  #DISCOURSE_USE_S3: false
  DISCOURSE_S3_REGION: ap-south-1
  DISCOURSE_S3_ACCESS_KEY_ID: AKXXXXXXXXXXXXXXXDQ
  DISCOURSE_S3_SECRET_ACCESS_KEY: AvsvsxxxxxxxxxxxxxxxxvcccccccLigGs
  #DISCOURSE_S3_BUCKET: engineers-leakybucket
  DISCOURSE_S3_BACKUP_BUCKET: engineers-backupbucket
  DISCOURSE_BACKUP_LOCATION: s3
  #DISCOURSE_S3_CDN_URL: https://engineers-leakybucket.s3.dualstack.ap-south-1.amazonaws.com

```

La désactivation de `DISCOURSE_USE_S3` et `DISCOURSE_S3_BUCKET` me donne cette erreur :

```
root@ip-172-31-7-247-app:/var/www/discourse# rake uploads:migrate_from_s3
Migration des fichiers depuis S3 vers le stockage local pour 'default'...
rake aborted!
NoMethodError: undefined method `downcase' for 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
(Voir la trace complète en exécutant la tâche avec --trace)

```

**Mise à jour :**

Avant la désactivation de DISCOURSE\_USE\_S3 et DISCOURSE\_S3\_BUCKET :

```
[1] pry(main)> SiteSetting.Upload.enable_s3_uploads
=> true
[2] pry(main)> SiteSetting.enable_s3_uploads
=> false
[3] pry(main)> GlobalSetting.use_s3?
=> true
[4] pry(main)> 

```

Après la désactivation de DISCOURSE\_USE\_S3 et DISCOURSE\_S3\_BUCKET :

```
[1] pry(main)> SiteSetting.Upload.enable_s3_uploads
=> false
[2] pry(main)> SiteSetting.enable_s3_uploads
=> false
[3] pry(main)> GlobalSetting.use_s3?
=> false
[4] pry(main)>

```

---

<div class="post-metadata">

### Author: ![neounix](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neounix/32/215617_2.png) [@neounix](https://meta.discourse.org/u/neounix)
#### Post date: [Août 13, 2020, 1:34 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/18 "2020-08-13T01:34:23Z")

</div>

> [@Pravi](#):
>
> Après avoir désactivé DISCOURSE\_USE\_S3 et DISCOURSE\_S3\_BUCKET,

Bonjour @Pravi,

Oui, j’allais justement vous suggérer de commenter toutes ces variables d’environnement et d’essayer ceci :

```plaintext
DISCOURSE_USE_S3: false
#DISCOURSE_S3_REGION: ap-south-1
#DISCOURSE_S3_ACCESS_KEY_ID: AKXXXXXXXXXXXXXXXDQ
#DISCOURSE_S3_SECRET_ACCESS_KEY: AvsvsxxxxxxxxxxxxxxxxvcccccccLigGs
##DISCOURSE_S3_BUCKET: engineers-leakybucket
#DISCOURSE_S3_BACKUP_BUCKET: engineers-backupbucket
#DISCOURSE_BACKUP_LOCATION: s3
#DISCOURSE_S3_CDN_URL: https://engineers-leakybucket.s3.dualstack.ap-south-1.amazonaws.com 

```

Mais ensuite, j’ai lu votre dernière mise à jour (merci pour les détails) et il semble que vous fassiez des progrès.

Félicitations pour ces avancées. Bon travail !

---

<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: [Août 13, 2020, 4:08 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/19 "2020-08-13T04:08:08Z")

</div>

> [@neounix](#):
>
> Je venais de suggérer de commenter toutes ces variables d’environnement (ENV) et d’essayer ceci :

J’ai aussi essayé cela. J’ai commenté tout sauf `DISCOURSE_USE_S3: false`, mais la même erreur que précédemment réapparaît.

```plaintext
root@ip-172-31-7-247-app:/var/www/discourse# rake uploads:migrate_from_s3
Migrating uploads from S3 to local storage for 'default'...
rake aborted!
NoMethodError: undefined method `downcase' for 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
(See full trace by running task with --trace)

```

Les paramètres SiteSetting et GlobalSettings sont désactivés.

```
root@ip-172-31-7-247-app:/var/www/discourse# rails c
[1] pry(main)> SiteSetting.Upload.enable_s3_uploads
=> false
[2] pry(main)> SiteSetting.enable_s3_uploads
=> false
[3] pry(main)> GlobalSetting.use_s3?
=> false
[4] pry(main)> 

```

> [@neounix](#):
>
> Mais ensuite, j’ai lu votre dernière mise à jour (merci pour les détails) et il semble que vous fassiez des progrès.
> 
> Félicitations pour ces avancées. Bon travail !

Merci, mais je ne suis pas sûr d’avoir vraiment progressé. Maintenant, je dois gérer cette nouvelle erreur.

---

<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: [Août 14, 2020, 4:16 UTC](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633/20 "2020-08-14T04:16:48Z")

</div>

Quelqu’un sait comment résoudre ce problème ?

[Page suivante](https://meta.discourse.org/t/migrate-from-s3-you-must-disable-s3-uploads-before-running-that-task/160633.md?page=2)
