Unless I have missed a vital part, it seems like the current S3 implementation is quite restrictive in regards to vendors of S3-compatible buckets. For example, I initially looked at this crate hoping to make use of a cloudflare R2 bucket.
I don't see a fundamental point to have this kind of restriction, beyond sane-defaults. Therefore I think it'd be more useful and flexible to have a simple way of adding custom S3 links. This could either come with the enum serving as defaults, or by adding a Custom() element to the enum, which can be passed a function to parse parameters into a final request url.
It seems to me that the only time these actually matter, is when download_base_url and api_url are set. Even easier could be to simply set them directly, which a passed function could also just do directly if wanted.
If there aren't any problems with this, I'd be happy to submit a PR.
Unless I have missed a vital part, it seems like the current S3 implementation is quite restrictive in regards to vendors of S3-compatible buckets. For example, I initially looked at this crate hoping to make use of a cloudflare R2 bucket.
I don't see a fundamental point to have this kind of restriction, beyond sane-defaults. Therefore I think it'd be more useful and flexible to have a simple way of adding custom S3 links. This could either come with the enum serving as defaults, or by adding a
Custom()
element to the enum, which can be passed a function to parse parameters into a final request url.It seems to me that the only time these actually matter, is when
download_base_url
andapi_url
are set. Even easier could be to simply set them directly, which a passed function could also just do directly if wanted.If there aren't any problems with this, I'd be happy to submit a PR.