Multipart Upload Planner for Large Files
Plan a Multipart Upload: Part Size, Parallel Upload, Retries, Resume
Size the parts, the parallel upload width, and the retry cost before you write the client — then ship it against a large file upload API with resumable multipart built in.
Free multipart upload planner
A multipart upload is not one big request — it is a file cut into numbered parts, each uploaded on its own, then reassembled server-side into a single object. That buys you three things a single PUT cannot: parallel upload of several parts at once so a slow uplink is not idle waiting on latency, a retry that re-sends one part instead of the whole file, and a resumable upload that survives a laptop lid closing mid-transfer.
The planner above turns that into numbers for your file: how many parts, how big the last one is, how many parallel rounds it takes, roughly how long it runs, and exactly what one failed part costs you to send again.
Chunk sizing is the decision people get wrong. Every part except the final one must be at least 5 MB, and no upload may exceed 10,000 parts, so the part size sets a hard ceiling on the file size you can move. Small parts mean more round-trips, more presigned URLs, and more bookkeeping in your client; large parts mean a single network blip re-sends more bytes. cdn22.net does not make you guess — the multipart endpoint presigns fixed 100MB parts, which puts a 10GB upload at 103 parts and keeps a 1TB file inside the 10,000-part ceiling.
Set the planner to 100MB to see what our API will actually do with your file, or change it to plan a client against any other S3-compatible large file upload API.
Retries, resumability, and integrity are the rest of the job. Retry an individual part with exponential backoff rather than restarting the transfer; hold on to the upload id and the part numbers you have already completed and the session is resumable. Each part carries an ETag, and the completion call validates the assembled object, so a truncated part fails the commit instead of landing as a silently corrupt file — but if the bytes genuinely matter, checksum the source before upload and verify after download, because that is the only end-to-end guarantee.
And abort what you abandon: an orphaned multipart session leaves parts in storage that still cost money. cdn22.net presigns part URLs for 24 hours, exposes an explicit abort endpoint, and sweeps sessions that can no longer be resumed.
The API is three calls with your raw API key in the Authorization header, no SDK: POST /v1/files/multipart/{folderId}/initiate returns an upload id, a file id, and one presigned URL per part; you PUT the part bytes yourself, in parallel, straight to storage; POST /v1/files/multipart/complete commits it, and POST /v1/files/multipart/abort cancels it. If your files are small enough not to need any of this, the simpler three-call flow on the file upload API page is the one to build against, and the cloud file storage API page covers the full endpoint surface.
What happens after the last part lands is the part most upload guides skip. The assembled file is stored as one object, and in a public folder it already has its permanent CDN link — no publish step, no separate copy into a delivery bucket. Private files stay private and are read through short-lived signed URLs your backend mints.
So the same pipeline that ingests a 40GB master or a nightly build artifact also serves it globally, which is the whole reason to put large-file ingestion and CDN delivery behind one API instead of stitching a bucket to a distribution yourself. For sending those files onward see large file transfer; to allow clients to upload files to you without building an uploader, see file request links.
Benefits With No Complexity
Global CDN delivery
Edge-cached worldwide
Signed-URL security
What You Get
Unlimited files
Unlimited storage
Public + Private storage
CDN ready links
Prepaid credits
More coming soon
How cdn22.net Works
1. Upload
2. Copy
3. Use Anywhere
Why Developers Choose cdn22.net
A Better Way to Store & Deliver Files
| Google Drive | Dropbox | cdn22.net | |
|---|---|---|---|
| Built for developers & businesses | |||
| Global CDN Delivery | |||
| Signed URLs for secure access | |||
| Prepaid Credits | |||
| Simple REST API |
Multipart Upload Planner
Size a multipart upload before you write the client: enter the file size, a target part size, how many parts you want in flight, and your uplink. You get the part count, the final part size, how many parallel rounds it takes, the wall clock, and what a single failed part costs you to re-send. Deterministic, no login, and nothing is uploaded.
On cdn22.net, the multipart endpoint presigns parts for you at a fixed 100 MB, so this file would upload as 103 parts whatever you pick above. The part size control is here for planning your own client against any S3-compatible large file upload API.
Planning estimate only. Wall clock assumes your uplink is the bottleneck and ignores TLS handshakes, server-side commit time, and retries — parallel uploads hide per-part latency, they do not create bandwidth. Nothing here uploads a file or contacts an API.
The six decisions behind a large file upload
Decide whether you need multipart at all
Under a few hundred megabytes on a stable connection, a single presigned PUT is less code and fewer failure modes. Multipart earns its complexity when a dropped connection would otherwise cost you the whole transfer, or when the file is large enough that one PUT would sit open for many minutes.
Pick a part size
Every part except the last must be at least 5 MB, and no upload may exceed 10,000 parts. Small parts mean more requests and more bookkeeping; large parts mean a single failure re-sends more bytes. cdn22.net settles this for you at 100 MB per part.
Choose a parallel upload width
Parallel upload is what makes multipart fast: several parts in flight keep the pipe full while others wait on latency. It does not add bandwidth, so past roughly 4–8 concurrent parts you are usually just adding memory pressure and retry surface.
Plan retries and resumability
A failed part is one part re-sent, not the file. Retry the individual part with backoff and keep the upload id — that is what makes this a resumable upload. cdn22.net presigns part URLs for 24 hours, so a paused transfer can pick up the same session the next day.
Verify integrity, then commit
S3-compatible multipart records an ETag per part and the API validates the assembled object on completion, so a truncated part fails the commit instead of landing silently. Keep your own checksum of the source file if the bytes matter — a hash you computed before upload is the only end-to-end check.
Abort what you abandon
An abandoned multipart upload leaves parts in storage that you are still paying for. Call the abort endpoint when a user cancels. cdn22.net also sweeps unresumable multipart sessions automatically, but an explicit abort stops the meter immediately.
The cdn22.net multipart upload API, end to end
Three calls, authenticated with your raw API key in the Authorization header — no Bearer prefix, no SDK. Initiate returns an upload id and one presigned URL per part; you PUT the bytes for each part yourself, in parallel, straight to storage.
POST /v1/files/multipart/{folderId}/initiate
{ "fileMetadata": { "name": "release.tar.gz", "size": 10737418240 } }
-> { "success": true, "data": { "uploadId", "fileId", "bucket", "key", "parts": [...] } }
PUT <presigned part URL> # one per part, run these in parallel
POST /v1/files/multipart/complete
{ "bucket", "key", "uploadId", "fileId", "partCount": 103 }
POST /v1/files/multipart/abort # same identifiers, when the user cancelsWhen the upload completes, a file in a public folder already has its permanent CDN URL — the same bytes you just uploaded are served from the edge with no publish step. Private files stay private and are reached through short-lived signed URLs your backend mints.
Upload a Large File the Multipart Way
- Global CDN delivery
- Edge-cached worldwide
- Signed-URL security
- Unlimited files
- Unlimited storage
- Public + Private storage
- No subscription — prepaid credits keep spend predictable