These settings are available in system.settings and are autogenerated from source.
s3_upload_checksum_algorithm
The checksum algorithm used when ClickHouse uploads data to S3. CRC32 and SHA256 are sent as flexible x-amz-checksum-* headers, while MD5 is sent as a Content-MD5 header.
By default the value is empty and ClickHouse lets the AWS SDK compute Content-MD5. In FIPS mode MD5 is unavailable, so the SDK silently omits it and the upload carries no checksum at all: set CRC32 or SHA256 to attach a flexible checksum instead. Where this setting applies, an explicit MD5 is then rejected.
It takes effect when the S3 client is created, so it applies to query-scoped uses such as the s3 table function and BACKUP ... TO S3; a later per-query SET does not reconfigure an already-created long-lived client such as an S3 disk.
S3Express buckets require a flexible checksum and do not accept Content-MD5: an explicit CRC32 or SHA256 is honored, an empty value uses CRC32, and an explicit MD5 is rejected.
GCS endpoints (storage.googleapis.com) ignore this setting entirely and keep the SDK’s Content-MD5 behavior, because GCS rejects SigV4-signed requests carrying the AWS x-amz-checksum-* headers.
Server-side copies ignore this setting.
s3_upload_part_size_multiply_factor
Multiply s3_min_upload_part_size by this factor each time s3_multiply_parts_count_threshold parts were uploaded from a single write to S3.
s3_upload_part_size_multiply_parts_count_threshold
Each time this number of parts was uploaded to S3, s3_min_upload_part_size is multiplied by s3_upload_part_size_multiply_factor. Last modified on September 13, 2026