transloadit / uppy

The next open source file uploader for web browsers :dog:
https://uppy.io
MIT License
28.57k stars 1.96k forks source link

companion: PostObject incompatibility with S3-compatible solutions #5052

Open nerg4l opened 3 months ago

nerg4l commented 3 months ago

Initial checklist

Problem

@uppy/companion supports S3-compatible object storage options like DigitalOcean Spaces. Companion uses createPresignedPost from @aws-sdk/s3-presigned-post which presigns a PostObject operation. One of the S3-compatible options are Cloudflare R2 and Backblaze B2 which doesn't support PostObject operation.

Solution

The same (or at least similar) can be achieved with PutObject which is supported.

Alternatives

A configuration value could be added to fall back to PutObject.

Murderlon commented 3 months ago

Hi, we wrote this specifically for S3 and only test against that. We implicitly support providers who have a strict compatibility with S3. So I'm not sure if we want to dive into this, as it opens the gate to supporting multiple providers with an almost compatible API.

If you want to increase chances of this being worked on, perhaps include some references or proof that this wouldn't be a big change and that there is no degraded experience for S3.

Murderlon commented 3 months ago

Related issue: https://github.com/transloadit/uppy/issues/4505 Another related issue: https://github.com/transloadit/uppy/issues/4649