integrationspackages/integrations/uploads
uploads package
Large-file uploads — S3 / R2 multipart, Tus resumable, presigned URLs. Picks the right strategy by file size automatically.
- 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
Provider
Tigris
Latency p50
49 ms
Success rate
99%
+0.8%
Volume today
7,887
packages/integrations/uploadsprovider-agnostic
Usageuploads.ts
typescriptuploads.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);