Request upload ticket
request_uploadUpload tickets for the creator's OWN material (a recorded interview, a product photo, drone footage, a recorded voice) so it can be kept in the personal library and placed in a piece. Three forms: one file (filename + size_bytes); a batch (files: one ticket per file, and a file that is refused carries its reason without stopping the others); or handle alone, which resumes an upload in parts — it returns the parts that arrived, the ones missing and signed URLs for the missing ones. The bytes travel outside this tool, straight to storage: a ticket's upload is one signed PUT (url + headers) or, with resumable, a list of parts — consecutive slices of partSizeBytes, each sent by PUT to its own url with its headers — that can be continued after an interruption until expiresAt (the session, about a day); each signed part url is valid until upload.partsExpireAt (about 1 h), and a 403 on a part past that is an expired url, not a failed upload: request_upload with only the handle re-signs the missing parts for free. The declared size is part of the signature. A video container that only carries sound (a browser recorder) is declared as audio/webm or audio/mp4 and is registered as audio. Each ticket states the limit per file in force (maxBytes) and the space in use (quota); a refusal says which limit was reached and with which numbers. Accepted: gif/heic/heif/jpeg/jpg/png/webp images, mov/mp4/webm video and aac/m4a/mp3/wav audio. $0.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| files | No | A batch: one ticket per file, in the same order. | |
| handle | No | Resumes an upload in parts: the `handle` of its ticket, with nothing else. | |
| filename | No | One file: its original filename with extension (the extension decides image, video or audio). | |
| resumable | No | Default false. True asks for an upload in parts that can be resumed, for the single file or for every file of the batch; a file that fits in one part still gets one PUT. | |
| size_bytes | No | Exact size of that file in bytes. Required with `filename`: the upload is signed for that size. | |
| content_type | No | Optional MIME type of that file, accepted when it matches the extension. |