FilesV2

Initiate a large (multipart) file upload

Changed on

Initiate a multipart upload for files up to 10 GB. The response includes an opaque upload_id and a fully populated urls array containing one pre-signed PUT URL per part the client should upload. After uploading every part, call Complete large upload at POST /v2/files/{file_id}/large-upload/complete with the resulting part etag values.

The client may optionally specify the desired number of parts (1 to 10000). If omitted, the server picks a value based on the declared size and the recommended part size — for most uploads this is the right default.

Every URL in urls expires roughly 3 hours after issue. If a part PUT fails after that window, abandon the upload and initiate a fresh session.

Once finalized, inspect the file with GET /v1/files/{file_id} and download it with GET /v1/files/{file_id}/download — no v2 read surface exists yet.

Returns 201 with the upload session details. Orphaned uploads that are not completed are eventually cleaned up.

Required scope: data:file_import or doc:file_import

post/v2/files/large-upload

Request

  • Base URL
    https://dovetail.com/api
  • URL
    https://dovetail.com/api/v2/files/large-upload
  • Auth
    HTTP bearer

Request body

namestring required

The file's original name, including extension. 1-1024 characters.

typestring required

The file's MIME type (e.g. image/png, video/mp4). Up to 255 characters.

sizeinteger required

Total size of the file in bytes. Must be between 1 and 10000000000 (10 GB).

partsinteger

Number of parts the client will split the upload into. Optional — if omitted, the server picks a value based on the declared size and the recommended part size. Must be between 1 and 10000.

Response

201

Changes

    • breaking

      added subschema #1 subschema #2 to the / response property oneOf list for the response status

    • breaking

      the / response's property type changed from object to no type for status

    • breaking

      removed the required property // from the response with the status

    • breaking

      removed the required property // from the response with the status

    • warning

      removed the optional property // from the response with the status