Upload infrastructure

File ingestion your team stops thinking about.

Vaultframe takes over resumable uploads, storage placement, and delivery — one endpoint, no queues to babysit, no half-finished files at 2am.

99.98%
upload completion rate, including flaky connections
6
storage regions, routed automatically by origin
<40ms
median time to first byte on retrieval

How a file moves through Vaultframe

Three calls. The client never talks to storage directly, and a dropped connection resumes from the last confirmed chunk instead of starting over.

1

Request an upload slot

Your backend asks Vaultframe for a signed upload target tied to a user and a content policy. No storage credentials touch the client.

2

Client streams the file

The SDK chunks and streams directly to the slot, retrying only the chunk that failed rather than the whole transfer.

3

Vaultframe confirms and places it

Once every chunk lands, the file is checksummed, stored in the nearest region, and a webhook fires back to your service.

Built for the failure cases, not the demo

Resumable by default

Every upload is chunked. A dropped connection on a train or spotty hotel wifi resumes from the last acknowledged byte.

Region-aware placement

Files land close to where they were uploaded from, and get replicated toward where your users actually read them.

Signed, scoped access

Every upload slot and download link is scoped to one object and expires — nothing durable ever reaches the client.

Delivery included

A CDN edge sits in front of every stored object automatically. You don't wire up a separate delivery layer.

One endpoint to integrate

Request a slot, hand the response to the SDK, done. The example below is the entire integration for most apps.

// server: mint a scoped upload slot const slot = await vaultframe.slots.create({ owner: user.id, maxBytes: 200_000_000, accept: ["image/*", "video/mp4"], }); // client: hand the slot to the SDK await Vaultframe.upload(file, slot.token);