Sem acesso ao site após configurar credenciais S3

Não consigo acessar o site após configurar as credenciais do S3 para backup. Não alterei nada além disso.

Você pode verificar /var/discourse/shared/log/rails/production.log (ou algo semelhante) e ver o erro.

Talvez você precise executar:

cd /var/discourse
./launcher enter app
rails c
# e depois algo como
SiteSetting.backup_location='local'

Mas pode ser apenas uma coincidência, já que os backups no S3 não têm nada a ver com isso e o seu disco pode estar cheio.

Obrigado. Eu tentei, mas não consegui corrigir. O log de erro está abaixo.

ActionView::Template::Error (s3_upload_bucket)
/var/www/discourse/lib/file_store/s3_store.rb:153:in `s3_bucket'
Início do HEAD "/" para 35.111.111.163 em 2020-03-05 06:34:08 +0000
Processando por ListController#latest como HTML
  Renderizando list/list.erb dentro de layouts/application
  Renderizado list/list.erb dentro de layouts/application (Duração: 6,1ms | Alocações: 2278)
  Renderizado layouts/_head.html.erb (Duração: 0,2ms | Alocações: 102)
  Renderizado common/_google_universal_analytics.html.erb (Duração: 0,2ms | Alocações: 79)
  Renderizado common/_discourse_stylesheet.html.erb (Duração: 0,4ms | Alocações: 200)
Concluído 500 Erro Interno do Servidor em 60ms (ActiveRecord: 0,0ms | Alocações: 17538)
ActionView::Template::Error (s3_upload_bucket)
/var/www/discourse/lib/file_store/s3_store.rb:153:in `s3_bucket'

há 5 GB de espaço livre.

Eu desabilitaria as configurações do S3 pelo console do Rails. Tentei dar um exemplo acima. Talvez você precise pesquisar aqui por mais exemplos.

Você não definiu o parâmetro s3_upload_bucket.
Basta fazer:

cd /var/discourse
./launcher enter app
rails c
SiteSetting.s3_upload_bucket = 'oNomeDoSeuBucket'

Onde você altera a última linha para que ela contenha o nome real do seu bucket S3.

Obrigado. Isso resolveu o problema. Mas por que isso aconteceu? Como eu só queria usar o S3 para backups, não configurei nenhum bucket para uploads. Isso é normal ou é um bug?

Só consigo reproduzir esse problema ao habilitar enable_s3_uploads.

Acredito que o que ocorreu foi o seguinte, resultando em uma tela de Oops:

  • você adicionou s3 access key id e s3 secret access key
  • você configurou um s3_upload_bucket
  • você habilitou enable_s3_uploads
  • você definiu backup_location como s3
  • você precisou definir um s3_backup_bucket e o configurou para o mesmo bucket
  • isso gera a mensagem de erro Você não pode usar o mesmo bucket para ‘s3_upload_bucket’ e ‘s3_backup_bucket’. Escolha um bucket diferente ou use um caminho diferente para cada bucket.
  • você limpou s3_upload_bucket para poder usar s3_backup_bucket
  • você não desabilitou enable_s3_uploads

O bug é que enable_s3_uploads exige um s3_upload_bucket, mas esvaziar essa configuração enquanto os uploads para S3 ainda estão habilitados faz o fórum travar.

Há algo que possamos fazer para corrigir o acima, @eviltrout?

Já existe uma validação em vigor para evitar isso:

Mas ela não cobre o caso em que você deixa o bucket em branco enquanto mantém os uploads habilitados.

Isso deve resolver: