¿Cómo desactivar el almacenamiento S3?

Hola @Pravi

Aquí tienes, solo para ti…

Ese archivo está en el contenedor.

Encontrarás ese archivo y otros archivos de configuración aquí:

# docker exec -it app bash
# cd /var/www/discourse/config

Te recomiendo encarecidamente no editar ninguno de esos archivos a menos que realmente sepas lo que estás haciendo.

Sin embargo, definitivamente es interesante leerlos y entenderlos.

Pero no puedo encontrar el archivo discourse.config en el contenedor. Solo tengo el archivo app.yml en la carpeta del contenedor.

La carpeta del contenedor de la que hablas NO es el contenedor.

El contenedor es una construcción de Docker creada y lanzada para ejecutarse como un contenedor de Docker.

Por cierto, no lo tomes a mal, pero ¿entiendes qué es un contenedor de Docker? Está perfectamente bien si no lo sabes, por cierto. Mucha gente usa Discourse a diario y aún no ha aprendido los conceptos básicos de los contenedores de Docker. Nunca es tarde para aprender :slight_smile:

Referencia:

PS: @Pravi. Te proporcioné el código para entrar al contenedor y cambiar al directorio donde está el archivo de configuración. ¿Consideraste seguir ese código que publiqué?

PS2: La tarea de rake con la que tienes problemas (migrate_from_s3) se encuentra aquí:

No tengo mucha idea sobre Discourse.

Sí, encontré esos archivos.

¿Cómo puedo solucionar el problema a partir del código de rake?

Hola @Pravi,

Una opción sería revisar las entradas de tu archivo de registro justo antes de tu mensaje de error y ver si puedes localizar la línea (o líneas) en el archivo de la tarea de rake; e intentar aislar exactamente qué está causando tu problema.

Las soluciones suelen ser la parte fácil. La parte difícil es descubrir cuál es el problema.

¿Podrías ser más específico? ¿Quieres decir que debo buscar el archivo de registro en mi sitio web antes de ejecutar el comando rake? No lo entendí bien.

Hola @Pravi

Esto se está convirtiendo en una lección sobre resolución básica de errores de software… lo cual está bien.

Ya tienes la información de registro en tu publicación #4 de este tema:

Hay mucha información allí.

También tienes el código completo de Ruby de Discourse para esta tarea rake, más arriba.

Mis disculpas, pero también tengo muchas tareas que hacer, así que solo estoy tratando de mostrarte, a un nivel general, cómo depurar y resolver tus propios problemas de la misma manera en que la mayoría de nosotros lo haríamos.

Espero que esto ayude.

Lamento haberte hecho perder tanto tiempo. Por última vez, intenté migrar hacia S3 en lugar de migrar desde S3, lo que me dio el siguiente error, aunque he proporcionado todos los detalles del almacenamiento S3 en mi panel de administración. Por favor, echa un vistazo si estás familiarizado con este error.

root@ip-172-31-7-247:/var/discourse# ./launcher enter app
root@ip-172-31-7-247-app:/var/www/discourse# rake uploads:migrate_to_s3
rake aborted!
FileStore::ToS3MigrationError: Por favor, proporciona las siguientes variables de entorno:
  - DISCOURSE_S3_BUCKET
  - DISCOURSE_S3_REGION
  y cualquiera de las siguientes:
  - DISCOURSE_S3_ACCESS_KEY_ID
  - DISCOURSE_S3_SECRET_ACCESS_KEY
  o
  - DISCOURSE_S3_USE_IAM_PROFILE
/var/www/discourse/lib/file_store/to_s3_migration.rb:38:in `s3_options_from_env'
/var/www/discourse/lib/tasks/uploads.rake:237:in `create_migration'
/var/www/discourse/lib/tasks/uploads.rake:245:in `migrate_to_s3'
/var/www/discourse/lib/tasks/uploads.rake:224:in `block in migrate_to_s3_all_sites'
/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:222:in `migrate_to_s3_all_sites'
/var/www/discourse/lib/tasks/uploads.rake:218:in `block in <main>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => uploads:migrate_to_s3
(Ver el rastreo completo ejecutando la tarea con --trace)

Actualización:

He añadido todas estas variables DISCOURSE_S3_BUCKET, DISCOURSE_S3_REGION, DISCOURSE_S3_ACCESS_KEY_ID, DISCOURSE_S3_SECRET_ACCESS_KEY a app.yml y el problema anterior se ha resuelto. Ahora puedo migrar a S3, pero no puedo migrar desde S3. Me pide que desactive la carga en S3, aunque he añadido DISCOURSE_USE_S3: false en mi app.yml

¿Cómo puedo confirmar que la carga en S3 está desactivada?

[5] pry(main)> SiteSetting.enable_s3_uploads
=> false
[6] pry(main)> GlobalSetting.use_s3
=> false
[7] pry(main)> GlobalSetting.use_s3?
=> true

Hola @Pravi

Le paso el testigo a la gran discusión sobre este tema en el hilo del equipo meta:

Allí hay una discusión muy detallada.

Mucha suerte… y espero que esto ayude.