GlobalSetting.use_s3? - falso

Intenta resolver el problema mediante la migración de archivos a S3. Lo primero es que el comando devuelve:

 GlobalSetting.use_s3?
 false

Y ahora la pregunta: si la carga de nuevas imágenes funciona (es decir, S3 está configurado correctamente), ¿qué causa este error (quiero transferir las imágenes existentes con DRY_RUN=1 rake uploads:migrate_to_s3)?

¿Debo configurar algo más allá de la configuración en el panel de administración?
Intenté editar discourse.conf de la siguiente manera:

DISCOURSE_S3_BUCKET=00000 \
DISCOURSE_S3_REGION=eu-west-2 \
DISCOURSE_S3_ACCESS_KEY_ID=00000 \
DISCOURSE_S3_SECRET_ACCESS_KEY=00000 \

pero no funcionó.

Those are formatted like environment variables. They should be in the env: section of your app.yml.

2 Me gusta

I set it rigth now (GlobalSetting.use_s3? true )

Unfortunately, still the same mistake. Command rake uploads:migrate_to_s3 returns the error

Si no me equivoco, no puedes cambiar la configuración global desde la consola de Rails; sin embargo, sí puedes cambiar la configuración del sitio desde la consola:

Ejemplo básico de cambio de configuración del sitio:

pry(main)> SiteSetting.site_description
=> "My Cool Site"

pry(main)> SiteSetting.site_description = "My Great Discourse Site"
=> "My Great Discourse Site"

pry(main)> SiteSetting.site_description
=> "My Great Discourse Site"

Un ejemplo específico, comparando la configuración global con la configuración del sitio:

pry(main)> GlobalSetting.force_https
=> true

pry(main)> SiteSetting.force_https = false
false

pry(main)> SiteSetting.force_https
=> false

pry(main)> SiteSetting.force_https = true
=> true

pry(main)> GlobalSetting.force_https
=> true

pry(main)> GlobalSetting.force_https = false
NoMethodError: undefined method `force_https=' for GlobalSetting:Class
Did you mean? force_https
from (pry):61:in `__pry__'

pry(main)> GlobalSetting.force_https = true
NoMethodError: undefined method `force_https=' for GlobalSetting:Class
Did you mean? force_https
from (pry):62:in `__pry__'

Cuando realicé este tipo de pruebas desde la consola de Rails, me llevó a creer que la configuración global no se puede cambiar en la aplicación una vez que esta ha sido construida; sin embargo, la configuración del sitio sí puede modificarse en la aplicación después de que ha sido construida y está en ejecución.

Por ejemplo, las direcciones de correo electrónico de los desarrolladores se establecen en el archivo yml del contenedor, y este valor no puede cambiarse en la aplicación, lo que añade una capa de seguridad al sitio.

En algunos casos, vemos que una configuración global se asigna a una configuración del sitio, y luego se utiliza la configuración del sitio en la aplicación, por lo que puede modificarse; sin embargo, cuando se utiliza la configuración global en la aplicación, este valor no puede cambiarse (o al menos eso parece durante las pruebas).

Esto parece ser, según mis pruebas limitadas, una de las diferencias fundamentales entre la configuración global y la configuración del sitio.

Por lo tanto, creo que esta es la razón subyacente por la que @eextra, al intentar establecer GlobalSetting.use_s3? true, descubrió que no funcionaba como se esperaba:

pry(main)> GlobalSetting.use_s3?
=> false

pry(main)> GlobalSetting.use_s3 = true
NoMethodError: undefined method `use_s3=' for GlobalSetting:Class
Did you mean?  use_s3?
from (pry):8:in `__pry__'