shared-uploads
Create Intent
Step 1: client requests permission to upload a file.
Server validates against the policy and returns a presigned POST with strict
conditions (bucket, key, content-type, content-length). The upload row is
created in pending state.
POST
Create Intent
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Previous
FinalizeStep 3: client tells the server "S3 PUT done, please verify and proceed".
Server HeadObject's the bucket, asserts size matches the declared size from
intent, transitions row pending → uploaded, and returns the current state.
Idempotent: re-calling on a non-pending row returns the current state.
Next
Create Intent