**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.
const PocoHTTPClientConfiguration & cfg_,
        bool is_virtual_hosted_style,
        const String & access_key_id,
        const String & secret_access_key,
        bool use_environment_credentials)
    {
        Aws::Auth::AWSCredentials credentials(access_key_id, secret_access_key);
        PocoHTTPClientConfiguration client_configuration = cfg_;
        client_configuration.updateSchemeAndRegion();
        return std::make_shared<Aws::S3::S3Client>(
            std::make_shared<S3CredentialsProviderChain>(
                client_configuration,
                credentials,
                use_environment_credentials), 
            std::move(client_configuration), 
            Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy::Never, 
            is_virtual_hosted_style || client_configuration.endpointOverride.empty() 
        );
    }
    std::shared_ptr<Aws::S3::S3Client> ClientFactory::create(