s3_upload_checksum_algorithm
خوارزمية الـ checksum المستخدمة عند رفع ClickHouse للبيانات إلىS3. تُرسل CRC32 وSHA256 في صورة headers مرنة من نوع x-amz-checksum-*، بينما تُرسل MD5 في صورة header باسم Content-MD5.
القيمة فارغة افتراضيًا، ويترك ClickHouse لـ AWS SDK مهمة حساب Content-MD5. وفي وضع FIPS تكون MD5 غير متاحة، فيتخطاها الـ SDK بصمت دون إشعار ولا تحمل عملية الرفع أي checksum على الإطلاق؛ لذا عيّن CRC32 أو SHA256 لإرفاق checksum مرن بدلًا من ذلك. وحيث ينطبق هذا الإعداد، تُرفض قيمة MD5 الصريحة.
ويسري مفعوله عند إنشاء client الـ S3، لذا ينطبق على الاستخدامات المحدودة بنطاق الاستعلام مثل الـ table function s3 وBACKUP ... TO S3؛ أما استخدام SET لاحقًا على مستوى الاستعلام فلا يعيد تهيئة client طويل العمر تم إنشاؤه مسبقًا مثل قرص S3.
وتتطلب الـ buckets من نوع S3Express وجود checksum مرن ولا تقبل Content-MD5: فتُعتمد قيمة CRC32 أو SHA256 الصريحة، وتؤدي القيمة الفارغة إلى استخدام CRC32، وتُرفض قيمة MD5 الصريحة.
وتتجاهل endpoints الـ GCS (storage.googleapis.com) هذا الإعداد تمامًا وتحافظ على سلوك Content-MD5 الخاص بالـ SDK، لأن GCS يرفض الطلبات الموقّعة بـ SigV4 التي تحمل headers الـ x-amz-checksum-* الخاصة بـ AWS.
وتتجاهل عمليات النسخ على جانب الـ server هذا الإعداد.