Skip to main content
POST
Start or finish a multipart upload
Send its SHA-256 in X-Content-SHA256 and its total byte length in X-Content-Length; the answer is the upload_id. Older clients may omit the total length; their parts reserve quota cumulatively. With upload_id, finishes it: the body lists the parts and the file’s size, and the assembled file must match that size and SHA-256. Repeating the same start or completion is safe after a lost response. Keep the upload ID and query its status to resume. At most 16 unfinished uploads belong to one run; uploads idle for 24 hours are aborted and their quota released. Publication temporarily keeps both the staging object and the replacement: leave room for one additional file copy. A quota refusal preserves the upload so you can free room and retry, or DELETE the upload to release its reservation.

Authorizations

Authorization
string
header
required

Your Abstract API key. Get it with abstract login, pass it as $(abstract token).

Headers

X-Content-SHA256
string

Required to start. The whole file's SHA-256, 64 hex digits.

Pattern: ^[0-9a-f]{64}$
X-Content-Length
integer

Recommended at start. Reserves the whole file's byte length before accepting parts.

Required range: 0 <= x <= 2147483648

Path Parameters

robot
string
required

Your robot's name, for example t800.

Pattern: ^[a-z0-9][a-z0-9._-]{0,63}$
run
string
required

The run's name, its start time as YYYYMMDD-HHMMSS.

Pattern: ^\d{8}-\d{6}$
path
string
required

The file's path in the run. It may hold /; up to 8 segments of letters, digits, ., _ and -, each starting with a letter or digit, 512 bytes in all. manifest.json at the top is the server's.

Query Parameters

upload_id
string

Body

application/json
parts
object[]
required
size
integer
required

Response

Started (upload_id), or finished (path, size, sha256).

upload_id
string
required