Here is what I got from boto3 implementation so far.
They have a signing type standard, presign-url, presign-post
When singing a request you send the signing type e.g
The signing type is then converted into a signature version e.g.
that signing version is then used to define which authentication will be used see https://github.com/boto/botocore/blob/55d64656e635ced908f7ba9f427a7c9f42ce8739/botocore/auth.py#L832
To implement only generate_presigned_url() we only need to add presign-url if we also want to do generate_presigned_post() we will also need presign-url
I am fairly new with rust and rusoto but if I read the code correctly the request are always signed the same way.
Before implementing generate_presigned_url() or generate_presigned_post() I would modify the signature flow to allow multiple auth mechanisms.
I'll try to look at the differences between the auth mechanisms tomorrow.
We needed this feature for a project so I made a working, very basic implementation that needs cleaning up. I'll try to submit a pull request soon.
There's a PR open, but it's proving hard to implement cleanly.
I believe this is done in https://github.com/rusoto/rusoto/pull/1018 and https://github.com/rusoto/rusoto/pull/1078 . 馃憤
Most helpful comment
We needed this feature for a project so I made a working, very basic implementation that needs cleaning up. I'll try to submit a pull request soon.