Como desativar o armazenamento S3?

Olá @Pravi

Aqui está, só para você…

Esse arquivo está no container.

Você encontrará esse arquivo e outros arquivos de configuração aqui:

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

Eu absolutamente recomendo que você não edite nenhum desses arquivos, a menos que você realmente saiba o que está fazendo.

No entanto, definitivamente é legal lê-los e entendê-los.

Mas não consigo encontrar o arquivo discourse.config no container. Tenho apenas o app.yml na pasta do container.

A pasta do container sobre a qual você está falando NÃO é o container.

O container é uma estrutura do Docker criada e iniciada para ser executada como um container Docker.

A propósito, não leve isso a mal, mas você entende o que é um container Docker? Não há problema algum se não entender. Muitas pessoas usam o Discourse diariamente e ainda não aprenderam os fundamentos dos containers Docker. Nunca é tarde para aprender :slight_smile:

Referência:

PS: @Pravi. Eu forneci o código para entrar no container e mudar para o diretório onde estão os arquivos de configuração. Você considerou seguir esse código que postei?

PS2: A tarefa rake com a qual você está tendo problemas (migrate_from_s3) pode ser encontrada aqui:

Não tenho muita experiência com o Discourse.

Sim, encontrei esses arquivos.

Como posso solucionar o problema a partir do código do rake?

Olá @Pravi,

Uma abordagem seria examinar as entradas do seu arquivo de log imediatamente antes da mensagem de erro e verificar se consegue localizar a linha (ou linhas) no arquivo da tarefa rake; tente isolar exatamente o que está causando o seu problema.

As soluções normalmente são a parte fácil. A parte difícil é descobrir qual é o problema.

Você poderia ser mais específico? Você quer dizer que preciso procurar o arquivo de log no meu site antes de executar o comando rake? Não entendi direito.

Olá @Pravi,

Isso está se tornando uma lição de solução básica de erros de software… o que é bom.

Você já tem suas informações de log na sua postagem #4 neste tópico:

Há muitas informações ali.

Você também tem o código completo do Ruby do Discourse para essa tarefa rake, acima.

Meus pedidos de desculpas, mas tenho muitas tarefas a fazer também, então estou apenas tentando mostrar a você, em alto nível, como depurar e resolver seus próprios problemas da mesma forma que a maioria de nós faria.

Espero que isso ajude.

Desculpe por ter tomado tanto do seu tempo. Uma última vez, tentei migrar para o S3 em vez de migrar de, o que me deu o seguinte erro, mesmo tendo fornecido todos os detalhes do armazenamento S3 no meu painel de administração. Por favor, dê uma olhada se você está familiarizado com esse erro.

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, forneça as seguintes variáveis de ambiente:
  - DISCOURSE_S3_BUCKET
  - DISCOURSE_S3_REGION
  e qualquer um dos seguintes:
  - DISCOURSE_S3_ACCESS_KEY_ID
  - DISCOURSE_S3_SECRET_ACCESS_KEY
  ou
  - 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
(Veja o rastreamento completo executando a tarefa com --trace)

Atualização:

Adicionei todas essas variáveis DISCOURSE_S3_BUCKET, DISCOURSE_S3_REGION, DISCOURSE_S3_ACCESS_KEY_ID, DISCOURSE_S3_SECRET_ACCESS_KEY ao app.yml e o problema acima foi resolvido. Agora consigo migrar para o S3, mas não consigo migrar do S3. Ele está pedindo para desativar o upload via S3, mesmo tendo adicionado DISCOURSE_USE_S3: false no meu app.yml

Como confirmar que o upload via S3 está desativado?

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

Olá @Pravi,

Estou passando a palavra para a ótima discussão sobre isso, neste tópico da equipe meta:

Há muitas discussões bem detalhadas lá.

Tudo de bom… e espero que isso ajude.