Bug:S3 多部分备份上传失败,提示 nil 对象没有 'downcase' 方法

你好,

我正在运行一个基于 Docker 的 Discourse 环境,并配置了以下 AWS 环境变量:

env:
AWS_REQUEST_CHECKSUM_CALCULATION: "WHEN_REQUIRED"
AWS_RESPONSE_CHECKSUM_VALIDATION: "WHEN_REQUIRED"

当我从 UI 触发备份以上传到 S3 时,它在分块上传阶段失败。

该问题源于 /var/www/discourse/lib/backup_restore/s3_backup_store.rb 中的这一行:

obj.upload_file(source_path, content_type: content_type)

以下是日志中的确切错误信息:

[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

我通过向 upload_file 显式传递 checksum_algorithm 暂时解决了这个问题,如下所示:

obj.upload_file(
source_path,
content_type: content_type,
checksum_algorithm: "CRC32"
)

应用此更改后,上传工作完美。然而,由于这是容器内的手动更改,下次重建容器时将被清除。

能否请您查看并修复核心代码库中的此错误?

谢谢!