CoreUpload vs FineUploader
FineUploader was for years the reference implementation of "serious" browser uploading — chunking, retries, concurrent parts and direct-to-S3 long before they were common. A lot of upload code in the wild still descends from it.
If you are already running FineUploader successfully, there is no urgency to move. The common reasons teams look for a replacement are maintenance status and newer transports — tus, direct-to-Azure and direct-to-GCS were not part of its world.
CoreUpload covers the same core ideas (chunking, concurrency, retries, S3) and adds the protocol/transport breadth plus the ASP.NET Core endpoints. Before switching, check the feature you actually rely on — the table below is a good starting point.
Side by side
| Dimension | FineUploader | CoreUpload |
|---|---|---|
| Chunking & concurrency | Yes — a core strength, with concurrent chunk uploads. | Yes, plus adaptive (AIMD) concurrency and a circuit breaker. |
| Direct-to-cloud | S3 (and Azure in later versions). | S3 multipart, Azure Blob, GCS resumable — with server-verified resume. |
| tus 1.0 | Not part of its transport set. | Yes, including the checksum extension. |
| Resume after reload | Session resume for S3-style uploads. | IndexedDB blob persistence + a server chunk-status probe before resuming. |
| Scaled renditions | Yes — generating multiple sizes on upload is a notable FineUploader feature. | Yes — the renditions option uploads scaled versions (e.g. thumbnail + WebP medium) alongside the original, linked via renditionOf. Demo. |
| Instant upload (dedupe) | Not built in. | Opt-in SHA-256 dedupe (instantUpload): content the server already stores completes instantly with zero bytes transferred; the server hashes stored uploads itself. |
| Blazor | JavaScript library - no Blazor component. | Ships a native <CoreUploader /> Blazor component (Server + WebAssembly) with typed C# events, in the same NuGet package. |
| Server side | Example server implementations; you own the endpoint. | Endpoints ship with the package. |
Feature parity note
FineUploader's signature scaled renditions feature (thumbnail + original in one pass) is now matched by CoreUpload's renditions option, including format transcoding (e.g. WebP). See the live demo.
Migration notes
- If you upload direct to S3 today, the pre-signed-part model is the same — see the S3 demo.
- Chunk size, concurrency and retry counts map onto
asp-chunk-size,asp-chunk-concurrencyand the retry policy. Retry demo. - Server-side,
app.MapCoreUploadEndpoints()replaces the example endpoint you likely forked. Integration guide.