Rusoto: Support generated presigned S3 URLs

Created on 9 Jun 2017  路  4Comments  路  Source: rusoto/rusoto

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.

All 4 comments

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

  • Normal request => standard
  • Pre signed url => presign-url
  • Pre signed post => presign-post

The signing type is then converted into a signature version e.g.

  • presign-url => s3v4-query
  • presign-post => s3v4-presign-post

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.

Was this page helpful?
0 / 5 - 0 ratings