Start an upload
Starts an upload of one file into the project’s input/ folder; your client sends the bytes straight to S3, two ways.
One PUT, for a file of 5 GB or under that is not replacing one: PUT the whole file to url, with no other header needed, and you are done. The file appears in input/ when the PUT completes. url is absent for a larger file, and when a file of that name is already in input/ (delete it first, or send parts). A project that stopped itself after its last file starts again within a minute (unless its startOnNewFiles is false); any other stopped project is not started by it: POST …/start afterwards.
Parts, for any size, resumable: cut the file into partCount parts of partSize bytes (the last one shorter), sign each with GET …/uploads/{uploadId}/parts/{partNumber}, PUT its bytes to the URL, keep the ETag header S3 answers, and send them all to POST …/uploads/{uploadId}/complete. The file appears in input/ only once complete.
Either way a running project never picks up half a file. An upload left unfinished is discarded after three days.
Guide: Upload through the API
Authorizations
A token from POST /token/create, made with your API key pair.
Path Parameters
The project id, a lowercase ULID.
^[0-9a-z]{26}$Body
The file’s name under input/; season 2/episode 01.mp4 puts it in a subfolder. It needs a media extension, and must not contain ${.
Its size in bytes; it decides partSize and partCount.
1 <= x <= 5497558138880Its media type, stored with the file by a parts upload. A one-PUT upload stores the Content-Type header the PUT sends, if any.
Replace a file of the same name. The new file is processed, and billed, again. Replace a failed file under a new name instead: its old content would be processed again.
Response
Started