Olá,
Estou executando uma configuração do Discourse baseada em Docker, e tenho as seguintes variáveis de ambiente da AWS configuradas:
env:
AWS_REQUEST_CHECKSUM_CALCULATION: "WHEN_REQUIRED"
AWS_RESPONSE_CHECKSUM_VALIDATION: "WHEN_REQUIRED"
Quando aciono um backup pela interface para ser enviado ao S3, ele falha durante a fase de upload multipart.
O problema originates em /var/www/discourse/lib/backup_restore/s3_backup_store.rb nesta linha:
obj.upload_file(source_path, content_type: content_type)
Aqui está o erro exato dos logs:
[2026-07-11 10:18:38 UTC] /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/multipart_file_uploader.rb:186:in block (2 levels) in Aws::S3::MultipartFileUploader#upload_in_threads': undefined method downcase' for nil (NoMethodError)
k = "checksum_#{algorithm.downcase}".to_sym
Consegui corrigir temporariamente o problema passando explicitamente um checksum_algorithm para upload_file assim:
obj.upload_file(
source_path,
content_type: content_type,
checksum_algorithm: "CRC32"
)
Com essa alteração aplicada, o upload funciona perfeitamente. No entanto, como esta é uma alteração manual dentro do container, ela será perdida na próxima vez que eu reconstruir o container.
Poderiam investigar a correção desse bug na base de código principal?
Obrigado!