storage icon indicating copy to clipboard operation
storage copied to clipboard

Can not integrate Lock Objects S3 with Supabase

Open FeliisraCeleri opened this issue 1 year ago • 2 comments

Bug report

  • [X] I confirm this is a bug with Supabase, not with my own application.
  • [X] I confirm I have searched the Docs, GitHub Discussions, and Discord.

Describe the bug

I am using S3 integrated with supabase to save my files. I want to configure Lock Objects in my S3 Bucket, but i fails when try to save files via Supabase SDK.

I have this error message:

{"error":{"raw":"{\"name\":\"Content-MD5 OR x-amz-checksum- HTTP header is required for Put Object requests with Object Lock parameters\",\"httpStatusCode\":400,\"userStatusCode\":400,\"originalError\":{\"name\":\"InvalidRequest\",\"$fault\":\"client\",\"$metadata\":{\"httpStatusCode\":400,\"requestId\":\"KQ7VK13MMPSQH89E\",\"extendedRequestId\":\"fWidPboCY3akHUhFakfzno/A7zsV40ek6f2dNka+wRB02WC/F2NiuAJTD2PU71tQDCfSGpSum0A=\",\"attempts\":1,\"totalRetryDelay\":0},\"Code\":\"InvalidRequest\",\"RequestId\":\"KQ7VK13MMPSQH89E\",\"HostId\":\"fWidPboCY3akHUhFakfzno/A7zsV40ek6f2dNka+wRB02WC/F2NiuAJTD2PU71tQDCfSGpSum0A=\",\"message\":\"Content-MD5 OR x-amz-checksum- HTTP header is required for Put Object requests with Object Lock parameters\"}}","name":"Content-MD5 OR x-amz-checksum- HTTP header is required for Put Object requests with Object Lock parameters","message":"InvalidRequest","stack":"Content-MD5 OR x-amz-checksum- HTTP header is required for Put Object requests with Object Lock parameters: InvalidRequest\n    at StorageBackendError.fromError (/app/dist/storage/errors.js:46:16)\n    at S3Backend.uploadObject (/app/dist/storage/backend/s3.js:113:48)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async Uploader.upload (/app/dist/storage/uploader.js:55:36)\n    at async ObjectStorage.uploadNewObject (/app/dist/storage/object.js:30:35)\n    at async Object.<anonymous> (/app/dist/http/routes/object/createObject.js:42:46)"},"msg":"celeri-qa | POST | 400 | 10.241.2.76 | req-1 | /object/CELERI_AR/7f2e93a4-d7fb-44ff-a2b6-1d5e6e240d35_core-front_git_flow.png | undici"}

Something similar to this issue --> https://github.com/aws/aws-sdk-php/issues/1694

To Reproduce

Try to integrate S3 Lock Objects with Supabase and save a file.

Expected behavior

I have Lock Objects configurated in S3 and still can save files via Supabase.

Screenshots

image

You can add here the header that is missing from Lock Objects S3 integration.

FeliisraCeleri avatar Jan 18 '24 15:01 FeliisraCeleri

@FeliisraCeleri uploading files with LockObjects is not currently supported in Supabase Storage

It is not something on the roadmap at the moment, however, feel free to draft a PR if you'd like

fenos avatar Jan 18 '24 15:01 fenos

The reason this doesn't work out of the box is because the server will need to compute the checksum of the file before uploading. This means that the file needs to be saved on disk first, to be able to compute the checksum, then uploaded to S3, currently, the upload is streamed directly to S3

fenos avatar Jan 18 '24 15:01 fenos

Closing this, as this feature is not on our current radar

fenos avatar Apr 17 '24 11:04 fenos