simples3 icon indicating copy to clipboard operation
simples3 copied to clipboard

Rework presign function to allow signature of clients with dedicated endpoint

Open nemunaire opened this issue 1 year ago • 0 comments

Hi,

It is not possible to use the presign function with custom endpoint (non-AWS), especially with endpoint that includes bucket name in path instead of virtual host: the hostname is systematically tweaked to add the unwanted bucket name. See https://github.com/knadh/listmonk/issues/1782

Here is a patch to allow this library to presign URL for Minio and other non-AWS S3 providers. Perhaps it lacks a force_path_style attribute something to mock the aws library behavior in this case.

As the Endpoint (in fact hostname) is redundant in presign request, I remove it in favor of the endpoint given in the s3 client.

Tested with Minio and Oracle Cloud Infrastructure, should be tested with AWS S3 (I don't have an account).

nemunaire avatar Aug 23 '24 14:08 nemunaire