خطأ: فشل رفع النسخ الاحتياطي متعدد الأجزاء لـ S3 بسبب طريقة 'downcase' غير المحددة لـ nil

مرحباً،

أقوم بتشغيل إعداد Discourse يعتمد على Docker، وقد قمت بتكوين متغيرات البيئة التالية الخاصة بـ AWS:

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

عندما أقوم ببدء عملية النسخ الاحتياطي من واجهة المستخدم لرفعها إلى S3، تفشل العملية خلال مرحلة الرفع متعدد الأجزاء (multipart upload).

تنشأ المشكلة في الملف /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

تمكنت من إصلاح المشكلة مؤقتاً عن طريق تمرير checksum_algorithm بشكل صريح إلى upload_file على النحو التالي:

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

مع تطبيق هذا التغيير، يعمل الرفع بشكل مثالي. ومع ذلك، نظراً لأن هذا تعديل يدوي داخل الحاوية، فإنه سيُفقد في المرة التالية التي أعيد فيها بناء الحاوية.

هل يمكنك الرجاء النظر في إصلاح هذا الخطأ في قاعدة الكود الأساسية؟

شكراً لك!