Skip to content
All features
integrationspackages/integrations/uploads

uploads package

Large-file uploads — S3 / R2 multipart, Tus resumable, presigned URLs. Picks the right strategy by file size automatically.

Open docs
Stability
Stable
Scope
Global
Boundary
packages/integrations/uploads
uploadspackages/integrations/uploads
Provider-agnostic
Available providers
S3standby
R2standby
TigrisActive
Tusstandby
Inbound requestuploads
{ key: "demo.mp4", size: 18432000 }
Adapter resolve4ms
uploads Dispatch40ms
Acked2ms
x

Provider

Tigris

Latency p50

49 ms

Success rate

99%

+0.8%

Volume today

7,887

packages/integrations/uploadsprovider-agnostic
Usageuploads.ts
typescript
uploads.ts
1import { getUploadProvider } from "@nebutra/uploads";
2
3const uploads = await getUploadProvider();
4
5// Small file — presigned PUT.
6const { url, headers } = await uploads.createPresignedUpload({
7  bucket: "nebutra-uploads",
8  key: `docs/${file.name}`,
9  contentType: file.type,
10  tenantId: org.id,
11});
12
13// Large file — resumable multipart.
14const mp = await uploads.createMultipartUpload({ bucket, key }, 10);