Large files are uploaded using a multipart upload process. This makes uploads more reliable and efficient, especially for big files or unstable connections.The following repository provides reference implementations and examples showcasing how to integrate with Marvia's API upload endpoints: marvia/api-upload-examples Process Overview#
The process involves three main steps:2.
Upload each part to the pre-signed URLs returned
The sequence diagram below visually explains the expected integration flow.
1. Initialize Multipart Upload#
Call the initialize endpoint with the following file metadata:A temporary uuid
for tracking
An array of parts with { partNumber, url }
where each part must be uploaded
2. Upload Each Part#
Use the provided pre-signed URL
Upload with an HTTP PUT request
Record the ETag
from the response headers (this is required later)
3. Complete Multipart Upload#
Once all parts are uploaded and you have their ETag
s, call the complete endpoint with:An array of { partNumber, ETag }
for each uploaded part
{
"uuid": "UPLOAD-ID-FROM-INIT",
"parts": [
{ "partNumber": 1, "ETag": "etag-part-1" },
{ "partNumber": 2, "ETag": "etag-part-2" },
{ "partNumber": 3, "ETag": "etag-part-3" }
]
}
Public or signed url
to the completed file
Summary#
Use Initialize Multipart Upload to start and get pre-signed part URLs.
Upload all parts directly to storage, keeping track of each ETag
.
Call Complete Multipart Upload with the collected ETag
s.
The API responds with the final fileUuid
and accessible file URL.
Modified at 2025-09-25 10:33:24