Connected to ClickHouse server version 21.13.1 revision 54455.

```
INSERT INTO FUNCTION s3('https://s3.us-east-1.amazonaws.com/dzhuravlev/small_file.xml.gz', 'XML', 
'number UInt64', 'gz') SELECT * FROM numbers(10);

INSERT INTO FUNCTION s3('https://s3.us-east-1.amazonaws.com/dzhuravlev/large_file.xml.gz','XML', 
'number UInt64','gz') SELECT * from numbers(1e8);

aws s3api head-object --bucket  dzhuravlev  --key small_file.xml.gz
{
    "AcceptRanges": "bytes",
    "LastModified": "Mon, 24 Jan 2022 21:28:50 GMT",
    "ContentLength": 262,
    "ETag": "\"667796620f85cd6bad6957ea01d29548\"",
    "ContentType": "binary/octet-stream",
    "Metadata": {}
}

aws s3api head-object --bucket  dzhuravlev --key large_file.xml.gz
{
    "AcceptRanges": "bytes",
    "LastModified": "Mon, 24 Jan 2022 21:29:08 GMT",
    "ContentLength": 261909920,
    "ETag": "\"829dbc9697bcffd1528e8e6f55c564f4-8\"",
    "ContentType": "application/xml",                      ---<<<<<<<<<<<-- expected "ContentType": "binary/octet-stream",
    "Metadata": {}
}
```

So it seems that if the object size is bigger than 32MB then Clickhouse sets the wrong ContentType `application/xml` instead of `binary/octet-stream`.

{
    Aws::S3::Model::PutObjectRequest req;
    bool is_finised = false;
    std::exception_ptr exception;
};
WriteBufferFromS3::WriteBufferFromS3(
    std::shared_ptr<Aws::S3::S3Client> client_ptr_,
    const String & bucket_,
    const String & key_,
    size_t minimum_upload_part_size_,
    size_t upload_part_size_multiply_factor_,
    size_t upload_part_size_multiply_threshold_,
    size_t max_single_part_upload_size_,
    std::optional<std::map<String, String>> object_metadata_,
    size_t buffer_size_,
    ScheduleFunc schedule_)
    : BufferWithOwnMemory<WriteBuffer>(buffer_size_, nullptr, 0)
    , bucket(bucket_)
    , key(key_)
    , object_metadata(std::move(object_metadata_))
    , client_ptr(std::move(client_ptr_))
    , upload_part_size(minimum_upload_part_size_)
    , upload_part_size_multiply_factor(upload_part_size_multiply_factor_)
    , upload_part_size_multiply_threshold(upload_part_size_multiply_threshold_)
    , max_single_part_upload_size(max_single_part_upload_size_)
    , schedule(std::move(schedule_))
{
    allocateBuffer();
}
void WriteBufferFromS3::nextImpl()