PUT the bytes directly to Google Cloud
Storage, then you tell us you’re done. No bytes ever traverse our
origin.
Why three steps
- Cost: signed URLs are free; piping 200MB videos through Vercel functions is not.
- Speed: GCS regional edge upload beats round-tripping through us.
- Security: we never see the file bytes; you never see our service account.
Flow
fileId on designUrls[].fileId or
comparisonPairs[].sideAFileId when creating an evaluation.
Step 1 — initialise
Step 2 — PUT the bytes
Use the headers from step 1 verbatim. Adding extra headers will void the signature.204 No Content.
Step 3 — finalise
Reading a file
Limits
Files are retained for the life of the evaluation. Deleting an
evaluation deletes its files.