Skip to main content

Uppy 4.0 is here: TypeScript rewrite, Google Photos, React hooks, and much more.

πŸŽ„ Uppy 3.1-3.3: Improved AWS S3 Multipart, Single File Mode

Β· 3 min read

πŸŽ…πŸΆ Ho-ho-ho, we are about to wrap up another year for Uppy! Three minor releases ago we’ve introduced Uppy 3.0. It’s time to give you an update on what’s been cooking in the Uppy-Transloadit headquarters (besides cranberry sauce) for the past couple of months.

In short: AWS S3 Multipart stability improvements, Single File Mode for the Dashboard, more tests and bugfixes, new locales.

Safer AWS S3 Multipart uploads on slow connections​

@uppy/aws-s3-multipart has been serving well for people who prefer a client-to_s3 setup with Uppy. However, some uploads could occasionally fail in poor network conditions. It turned out, simultaneously signing and uploading many chunks at once saturated the HTTP/1.1 connection limit, which lead to signatures expiring by the time Uppy started uploading the next chunk.

We’ve refactored our internal queue mechanism to sign chunks right before we begin uploading them to the remote server. When the upload is paused, the queue is emptied and re-populated again on resume. The default limit for this plugin has been set to 6 and the default S3 signature expiry has been lifted from 300 to 800 seconds.

Single File Mode​

Often times people only want to upload a single file (most commonly an image) via Uppy. But the Dashboard UI is tailored to handling many files at once, and it used to display the single image as a small, sad-looking block in the corner. This ends now! (Actually, it ended a few releases ago, figure of speech).

With only one file selected, we’ll display it large and centered, and make sure to re-generate the image preview so it’s 600px wide, looking nice and sleek on modern displays.

See PR #4188 for more screenshots.

Bug fixes and Upgrades​

We’ve upgraded Typescript to v4.8 and Jest to v29, among other tools and packages.

We are now additionally testing that Uppy packages are correctly bundled with the latest Rollup, Webpack, Parcel, Vite, and ESBuild.

Notable bug fixes:

  • XHR Upload: Queue requests for socket token for remote files
  • Core: Prevent crashes when a file is removed before the upload starts
  • Golden Retriever: Fixed upload retries
  • AWS S3 and XHR Upload: Fixed Cannot mark a queued request as done in MiniXHRUpload
  • Webcam: Set default videoConstraints
  • Image Editor: Fix controls in small Dashboard

See the full list in the changelog.


And of course, this festive season we are not forgetting Companion under the tree:

  • Throttle progress by time
  • Added workaround for S3 accelerated endpoints
  • Send expire info for non-multipart uploads
  • Send expiry time alongside S3 signed requests
  • Added support for AbortSignal
  • Prevent preflight race condition


Uzbek language pack was added, while Polish and Ukrainian language packs were updated.

That’s it for our updates! Stay tuned for more in 2023 and happy holidays (if you are celebrating)! Cheers. In the meantime, we are driving home, driving home for Christmas. Yeah.