Multipart Uploader

A multi-file queue uploader with bounded concurrency, live per-file progress and cancel — large files chunk into a multipart upload automatically.

A heavier-duty uploader for many or large files. Queue files, upload them with bounded concurrency, watch each one's progress, and cancel everything in flight. Files large enough to warrant it are chunked into a multipart upload by the gateway transparently — the browser just streams the bytes.

"use client";import { useFiles } from "files-sdk/react";import { MultipartUploader } from "@/components/files-sdk/multipart-uploader";const Example = () => {  const files = useFiles({ endpoint: "/api/files" });  return <MultipartUploader files={files} prefix="demo/" />;};export default Example;

Installation

npx shadcn@latest add https://files-sdk.dev/r/multipart-uploader.json
pnpm dlx shadcn@latest add https://files-sdk.dev/r/multipart-uploader.json
bunx --bun shadcn@latest add https://files-sdk.dev/r/multipart-uploader.json

Usage

import { useFiles } from "files-sdk/react";

import { MultipartUploader } from "@/components/files-sdk/multipart-uploader";

export function BulkUploader() {
  const files = useFiles({ endpoint: "/api/files" });

  return <MultipartUploader files={files} prefix="uploads/" concurrency={3} />;
}

Cancel calls files.abort(), aborting every in-flight request the hook started; the queue re-arms automatically on the next upload.

Props

Prop

Type

On this page