Aarkam / Aarkam Wiki / References / Multipart Upload API Reference
REST API References

Multipart Upload API Reference

High-throughput multipart upload endpoints for multi-gigabyte and multi-terabyte data objects.

Last updated: Sep 23, 2026

For large objects (typically greater than 100MB), Aarkam.Gateway supports the S3 Multipart Upload protocol. This allows files to be uploaded concurrently in independent byte parts, maximizing parallel network throughput and providing pause/resume resilience.


1. Supported Multipart Operations

Operation HTTP Method URI Path Description
CreateMultipartUpload POST /{bucket}/{key}?uploads Initiates a multipart upload session and returns an UploadId.
UploadPart PUT /{bucket}/{key}?partNumber={N}&uploadId={ID} Uploads a discrete part (5MB to 5GB).
CompleteMultipartUpload POST /{bucket}/{key}?uploadId={ID} Assembles all uploaded parts and commits the final object.
AbortMultipartUpload DELETE /{bucket}/{key}?uploadId={ID} Cancels upload session and shreds partial chunks.
ListParts GET /{bucket}/{key}?uploadId={ID} Lists successfully uploaded parts for an active session.

2. API Operation Details

Step 1: Initiate (`POST /

POST /seismic-data/geophysical-survey.raw?uploads HTTP/1.1
Host: s3.aarkam.io
x-amz-server-side-encryption: AES256

Response (XML)

<InitiateMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Bucket>seismic-data</Bucket>
    <Key>geophysical-survey.raw</Key>
    <UploadId>mp-84029482-901847192847</UploadId>
</InitiateMultipartUploadResult>

Step 2: Upload Part (`PUT /

Parts can be uploaded concurrently across multiple client worker threads.

Response Headers

HTTP/1.1 200 OK
ETag: "1b2cf535f27731c974343645a3985328"
Date: Wed, 24 Sep 2026 12:00:00 GMT

Step 3: Complete (`POST /

Commits all uploaded parts into the unified object record.

Request Body (XML)

<CompleteMultipartUpload xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Part>
        <PartNumber>1</PartNumber>
        <ETag>"1b2cf535f27731c974343645a3985328"</ETag>
    </Part>
    <Part>
        <PartNumber>2</PartNumber>
        <ETag>"ee9c459b1f77b22cd603f0040a4e329d"</ETag>
    </Part>
</CompleteMultipartUpload>

Response

HTTP/1.1 200 OK
Content-Type: application/xml

<CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Location>https://s3.aarkam.io/seismic-data/geophysical-survey.raw</Location>
    <Bucket>seismic-data</Bucket>
    <Key>geophysical-survey.raw</Key>
    <ETag>"3a5c789b1f77b22cd603f0040a4e329d-2"</ETag>
</CompleteMultipartUploadResult>