apache / apache/arrow-rs-object-store
configurable request signing for AWS S3
- Dominant language
- Rust
- Stars
- 322
- Forks
- 212
- Avg merge
- 5d 2h
- Merged PRs (30d)
- 10
Description
**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**
I need to customize request signing when talking to S3-compatible APIs.
**Describe the solution you'd like**
Be able to provide a signer implementation to AmazonS3Builder that is used by AwsAuthorizer / replaces AwsAuthorizer, similar to https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-core/src/main/java/com/amazonaws/auth/Signer.java#L24
It can be a small part of authorizer or all of it, but I'm curious how you think about the design of this crate and if this is or isn't something you'd consider.
AwsAuthorizer supports overriding session token name
```
/// Overrides the header name for security tokens, defaults to `x-amz-security-token`
pub(crate) fn with_token_header(mut self, header: HeaderName) -> Self {
self.token_header = Some(header);
self
}
```
but this struct is very deep in the design, so this isn't configurable to a user. Even just being able to configure the token name could work for me.
**Describe alternatives you've considered**
There are some discussions in OpenDAL to support customizable signer, backed by reqsign crate.
**Additional context**
I'd be happy to propose a refactor in the PR as long as there is a chance to get it merged - don't want to waste time if this goes against your design principles for the crate. Thank you.
Contributor guide
Research direction
Start by reading AmazonS3Builder and tracing how AwsAuthorizer applies request signing, including the internal with_token_header path. Review the linked OpenDAL reqsign discussions for design context. Done means the project has an agreed, user-configurable signing boundary or token-header configuration that supports S3-compatible APIs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, rust
- Domain
- authentication, cloud
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100