Hallo,
Ich betriebe eine Docker-basierte Discourse-Installation und habe die folgenden AWS-Umgebungsvariablen konfiguriert:
env:
AWS_REQUEST_CHECKSUM_CALCULATION: "WHEN_REQUIRED"
AWS_RESPONSE_CHECKSUM_VALIDATION: "WHEN_REQUIRED"
Wenn ich über die Benutzeroberfläche ein Backup auslöse, das in S3 hochgeladen werden soll, schlägt es in der Phase des Mehrteil-Uploads fehl.
Das Problem entsteht in /var/www/discourse/lib/backup_restore/s3_backup_store.rb in dieser Zeile:
obj.upload_file(source_path, content_type: content_type)
Hier ist der genaue Fehler aus den 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
Ich konnte das Problem vorübergehend beheben, indem ich explizit einen checksum_algorithm an upload_file übergab, wie hier:
obj.upload_file(
source_path,
content_type: content_type,
checksum_algorithm: "CRC32"
)
Mit dieser Änderung funktioniert der Upload einwandfrei. Da es sich jedoch um eine manuelle Änderung innerhalb des Containers handelt, wird sie beim nächsten Neuaufbau des Containers verworfen.
Könnten Sie bitte untersuchen, diesen Fehler im Kern-Code zu beheben?
Vielen Dank!