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
| Type | Max size | Notes |
|---|---|---|
image/png | 25 MB | Recommended for static design captures. |
image/jpeg | 25 MB | |
application/pdf | 100 MB | One PDF, multiple pages OK. |
video/mp4 | 500 MB | H.264 / H.265. |