apache / apache/arrow-rs-object-store

configurable request signing for AWS S3

Open
#318 2 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.