-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Describe the feature
We are currently using the hadoop-aws module with a self-implemented signer for our Spark/Hadoop applications. (reference: https://hadoop.apache.org/docs/r3.4.1/hadoop-aws/tools/hadoop-aws/index.html#Advanced_-_Custom_Signers)
Now we're moving from the java s3 client to the c++ client that provided in the aws-sdk-cpp library. The base client class AwsClient
provides a constructor that accepts a signer/signer provider, which allows to use a custom signer implementation.
/**
* Configuration will be used for http client settings, retry strategy, throttles, and signing information.
* Pass a signer provider to determine the proper signer for a given request; AWS services will use
* SigV4 signer. errorMarshaller tells the client how to convert error payloads into AWSError objects.
*/
AWSClient(const Aws::Client::ClientConfiguration& configuration,
const std::shared_ptr<Aws::Auth::AWSAuthSignerProvider>& signerProvider,
const std::shared_ptr<AWSErrorMarshaller>& errorMarshaller);
However, the S3Client
currently does not expose this option.
Use Case
Currently the only way to use the custom signing process in our application with the cpp sdk is to add a patch to the AwsAuthV4Signer
that modifies the signing process. This approach brings extra effort for maintenance when upgrading the aws-cpp-sdk library.
Proposed Solution
Supporting creating S3Client with the custom singer or singer provider would allow applications to integrate self-implemented signers in a consistent way across AWS SDKs, rather than being constrained to the default signer.
Other Information
No response
Acknowledgements
- I may be able to implement this feature request
- This feature might incur a breaking change