Fma965
(Fma965)
Setembro 14, 2025, 10:42am
1
Tenho um bucket configurado, mas parece que ele está tentando usar o padrão?
Eu uso o GarageHQ como uma alternativa leve ao MinIO.
Estou na versão 3.6.0.beta1-dev
( ed6beea336 )
[2025-09-14 10:40:34] Removendo o diretório tmp ‘/var/www/discourse/tmp/backups/default/2025-09-14-104012’…
[2025-09-14 10:40:34] Enviando arquivo compactado…
[2025-09-14 10:40:35] EXCEPTION: Bucket not found: default
[2025-09-14 10:40:35] /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/seahorse/client/plugins/raise_response_errors.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/dualstack.rb:21:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/accelerate.rb:43:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/checksum_algorithm.rb:169:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:16:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/invocation_id.rb:16:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/idempotency_token.rb:19:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/param_converter.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/seahorse/client/plugins/request_callback.rb:89:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/response_paging.rb:12:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/seahorse/client/plugins/response_target.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/telemetry.rb:39:in `block in call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/telemetry/no_op.rb:29:in `in_span'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/telemetry.rb:53:in `span_wrapper'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/telemetry.rb:39:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/seahorse/client/request.rb:72:in `send_request'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/client.rb:3710:in `create_multipart_upload'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/multipart_file_uploader.rb:67:in `initiate_upload'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/multipart_file_uploader.rb:58:in `upload'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/file_uploader.rb:42:in `block in upload'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/user_agent.rb:90:in `metric'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/file_uploader.rb:40:in `upload'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/customizations/object.rb:477:in `block in upload_file'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.227.0/lib/aws-sdk-core/plugins/user_agent.rb:90:in `metric'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/customizations/object.rb:476:in `upload_file'
/var/www/discourse/lib/backup_restore/s3_backup_store.rb:48:in `upload_file'
/var/www/discourse/lib/backup_restore/backuper.rb:351:in `upload_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:41:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:9:in `backup'
/var/www/discourse/script/spawn_backup_restore.rb:31:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
O último backup foi ontem, mas agora não está mais funcionando. Outros serviços ainda conseguem fazer backup no meu S3 local sem problemas.
Alguém sabe como posso consertar isso?
pfaffman
(Jay Pfaffman)
Setembro 14, 2025, 3:07pm
2
Sim. A AWS quebrou a biblioteca S3 para muitos outros serviços.
Can't rebuild due to AWS SDK gem bump and new AWS Data Integrity Protections tem algumas soluções alternativas.
Eu criei este aws-revert-template.yml para reverter para uma versão mais antiga. Não sei se ainda funciona; meu arquivo é datado 2025-08-06T05:00:00Z
But I did for a site that’s using Backblaze. I created a template I put in /root/aws-revert-template.yml with this:
# This template reverts aws-sdk-s3 to a version that works with backblaze
params:
home: /var/www/discourse
hooks:
after_bundle_exec:
- exec:
cd: $home
cmd:
- bundle config set frozen false
- "sed -i 's/gem \"aws-sdk-s3\", require: false/gem \"aws-sdk-s3\", \"1.177.0\", require: false/' Gemfile"
- bundle update aws-sdk-s3
…
Fma965
(Fma965)
Setembro 15, 2025, 3:42pm
3
Hmm, não estou totalmente convencido de que este seja o problema, embora
a menos que eu esteja enganado, eu estava na versão 3.6 por mais de 2 dias, e ainda assim recebi um backup há 2 dias e 10 dias atrás.
pfaffman
(Jay Pfaffman)
Setembro 15, 2025, 3:50pm
4
Não muito mais. Acho que você está enganado.
Aqui está o commit em que você está:
committed 09:35AM - 13 Sep 25 UTC
Allows admins to set the `calendar_event_display` site setting to decide
how ful… l-calendar should render events.
It accepts the following values:
- auto
- block
- list-item
And will default to: auto
Mas também:
Seu bucket se chama “default”?
Fma965
(Fma965)
Setembro 15, 2025, 6:41pm
5
Sim, estou no commit agora, inicialmente não estava quando postei este problema, atualizei para descartar um bug
Fma965
(Fma965)
Setembro 15, 2025, 6:43pm
6
não, como afirmado no OP, é por isso que não acredito que seja o mesmo problema a que você está se referindo, meu bucket é especificado, tentei tanto nas configurações da UI da seção de backup quanto via variáveis de ambiente no yaml, ele ainda tenta usar o padrão, independentemente
para esclarecer, nada mudou no lado do discourse ou do garage desde que parou de funcionar, exceto por uma atualização para 3.5 e depois para 3.6
1 curtida
Fma965
(Fma965)
Setembro 15, 2025, 11:35pm
7
talvez alguém com S3 real possa verificar se ele está selecionando corretamente um bucket? o mesmo para outros terceiros como backblaze, r2 etc?
Fma965
(Fma965)
Setembro 18, 2025, 5:08pm
8
Então eu criei um bucket chamado “Default” e ele funciona como pretendido, então sim, ele não está pegando corretamente o nome do bucket que eu digo.
pfaffman
(Jay Pfaffman)
Setembro 18, 2025, 5:25pm
9
Exceto que milhares de pessoas e a hospedagem CDCK também seriam provavelmente afetadas e não estão. É muito mais provável que você tenha excluído ou adicionado um caractere a uma linha em seu app.yml.
Você pode fazer coisas como esta:
grep -i S3 /var/discourse/containers/*
docker exec -it app bash -c 'grep s3 /var/www/discourse/config/discourse.conf
E se você configurou o s3 nas configurações em vez de com variáveis de ambiente, então você pode dar uma olhada em Configurar um provedor de armazenamento de objetos compatível com S3 para uploads para ver como eles se parecem.
Fma965
(Fma965)
Setembro 18, 2025, 8:43pm
10
não há nada de errado com minha configuração, nada foi alterado exceto a atualização do discourse. Tentei a configuração no yaml e a configuração na UI, as configurações da UI literalmente a mostram como “cyanlabs-community” e, no entanto, o backup ainda tenta salvar em “default”
apesar de ter o s3 configurado na UI, o arquivo discourse.conf não contém nenhuma referência s3 conforme seu segundo comando
sam
(Sam Saffron)
Setembro 22, 2025, 12:23am
11
Isso, no entanto, significa que o bucket não existe. Você pode tentar criar um bucket e credenciais totalmente novos e ver se o upload funciona lá?
1 curtida
Fma965
(Fma965)
Setembro 22, 2025, 3:06pm
12
Obrigado, mas sinto que estou dando voltas em círculos aqui.
O bucket padrão não existia no início desta conversa, eu o criei desde então e ele usa esse bucket, apesar de ter o bucket cyanlabs-community definido nas configurações.
Fma965:
Então eu criei um bucket chamado “default” e ele funciona como pretendido, então sim, ele não está pegando corretamente o nome do bucket que eu digo.
Então isso parece ser um bug no Discourse.
Ambos cyanlabs-community e default existem na instância s3, mas o Discourse não usará cyanlabs-community não importa o que eu tente.
Novo bucket cyanlabsdiscourse
Resultado do backup
[2025-09-22 15:14:59] Finalizando backup...
[2025-09-22 15:14:59] Finalizando arquivo de dump do banco de dados: cyanlabs-official-community-2025-09-22-151437-v20250916082012.sql.gz
[2025-09-22 15:14:59] Removendo o diretório temporário '/var/www/discourse/tmp/backups/default/2025-09-22-151437'...
[2025-09-22 15:14:59] Enviando arquivo compactado...
[2025-09-22 15:15:37] Executando o hook after_create_hook para o backup...
[2025-09-22 15:15:37] Deletando backups antigos...
[2025-09-22 15:15:37] Limpando coisas...
[2025-09-22 15:15:37] Removendo arquivo compactado do armazenamento local...
[2025-09-22 15:15:37] Removendo sobras de '.tar'...
[2025-09-22 15:15:37] Marcando backup como concluído...
[2025-09-22 15:15:37] Atualizando estatísticas do disco...
[2025-09-22 15:15:37] Notificando 'CyanLabs' sobre o fim do backup...
[2025-09-22 15:15:40] Concluído!
bucket cyanlabsdiscourse
bucket default
O interessante é que ele ainda tenta fazer a conexão em bucketname.s3.domain.tld, por exemplo, cyanlabsdiscourse.s3.domain.tld, pois sem adicionar um registro DNS, não funcionaria nesse sub subdomínio. então a configuração está sendo honrada para a URL, mas parece ser ignorada pela seleção do bucket.
Fma965
(Fma965)
Setembro 26, 2025, 10:10am
13
Eu sinto que tentei de tudo, por enquanto vou usar o bucket padrão, eu acho.
A AWS pode ser misteriosa! Sinto muito que você não tenha conseguido usar o nome de bucket preferido. É difícil ajudar sem poder replicar, então acho que você terá que se contentar em usar o padrão como nome do bucket.