**Use case**
With S3, you have to send the header `x-amz-server-side-encryption-customer-key` and `x-amz-server-side-encryption-customer-key-md5` if the resource is server side encrypted.

https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeysSSEUsingRESTAPI.html
https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html

**Describe the solution you'd like**
Ability to set this in the query.
{
        Aws::Utils::Logging::ShutdownAWSLogging();
        Aws::ShutdownAPI(aws_options);
    }
    ClientFactory & ClientFactory::instance()
    {
        static ClientFactory ret;
        return ret;
    }
    
    std::shared_ptr<Aws::S3::S3Client> ClientFactory::create( 
        const String & endpoint,
        bool is_virtual_hosted_style,
        const String & access_key_id,
        const String & secret_access_key,
        bool use_environment_credentials,
        const RemoteHostFilter & remote_host_filter,
        unsigned int s3_max_redirects)
    {
        PocoHTTPClientConfiguration client_configuration(remote_host_filter, s3_max_redirects);
        if (!endpoint.empty())
            client_configuration.endpointOverride = endpoint;
        return create(client_configuration,
            is_virtual_hosted_style,
            access_key_id,
            secret_access_key,
            use_environment_credentials);
    }
    std::shared_ptr<Aws::S3::S3Client> ClientFactory::create(