Support custom signer for S3Client
- Lingua principale
- C++
- Stelle
- 2.2k
- Fork
- 1.2k
- Merge medio
- 4g 11h
- PR unite (30g)
- 13
Descrizione
### 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& signerProvider,
const std::shared_ptr& 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
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia dai costruttori di S3Client e confrontali con il costruttore di AwsClient che accetta AWSAuthSignerProvider; esamina come viene utilizzato attualmente AwsAuthV4Signer. Il lavoro è completo quando le applicazioni possono creare S3Client con un signer personalizzato o un provider di signer senza modificare AwsAuthV4Signer e il comportamento è coperto dai test client esistenti pertinenti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- aws, cpp
- Ambito
- api, cloud, security
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 38/100