Recent Posts
- đ Uppy 3.1-3.3: Improved AWS S3 Multipart, Single File Mode
- Uppy 3.0: Future-proof, conveniently easy, stable as ever
- Uppy 2.4-2.7: Image Compressor, Transloadit Rate Limiting, ESM
- đ Uppy 2.1-2.3: Audio plugin, fast and efficient streaming for Companion, production-ready Unsplash, and more
- Uppy 2.0.0: smaller, faster, modular plugins, Preact X, stricter types, and much more
- Uppy 1.30: Angular integration, granular image rotation, Google Drive shortcuts
- Uppy 1.29: Golden Retriever, disableLocalFiles, Webcam previews, uppy.logout
- Uppy 1.27: Drop Target plugin, Vue 3 support, Dashboard dynamic meta fields, âShared with meâ in Google Drive
- Uppy 1.26: Dashboard âdisabledâ, per-file headers
- Uppy 1.25: right-to-left scripts, Ukrainian translation, Companion improvements
- Uppy 1.24: đ Happy Holidays â Svelte, React hook, Auto Open Image Editor
đ Uppy 2.1-2.3: Audio plugin, fast and efficient streaming for Companion, production-ready Unsplash, and more
Last Christmas, we gave you Uppy 1.24, but this very next year, weâll take it away (since itâs outdated by now) and give you a brand-new Uppy 2.3 đ!
After the release of our latest major version, 2.0.0, weâve been busy with many things. First of all is the long-awaited Audio plugin to record and upload live audio directly. We then worked on adding a fast and efficient streaming interface to Companion and made Unsplash production ready. Housekeeping was also part of the job: we made Status Bar improvements, moved from npm to Yarn 3, did some refactoring, and updated dependencies.
Last but not least, we got the issue count down from around 110 since 2.0.0 to around 45 now.
Audio plugin
Uppy now has a new @uppy/audio
plugin for recording audio memos, sounds, jingling bells, Christmas carols, and all your holiday cheer. Check it out on the demo page.
@uppy/unsplash
is now production ready
The Unsplash plugin has received an update, providing attribution to the image authors and adding some polish to make it look better. Being fully brand compliant with Unsplash means itâs now production ready. You can demo the plugin on the website or read the docs.
New streaming interface for Companion
Companion handles the server-to-server communication between your server and file storage providers such as Google Drive, Dropbox, Instagram, and the like. This bypasses the client (so a 5 GB video isnât eating into your usersâ data plans) and files are directly uploaded to the final destination. Companion is made to be effortlessly integrate-able with Uppy.
It used to work by downloading the requested file from a remote provider on the server to then start uploading it to the destination. This did the job, but itâs wasnât ideal.
We now built streaming support into Companion, which means the download and upload can happen simultaneously. This can result in two times faster uploads, because we no longer have to wait for files to finish downloading before starting the upload process. Itâs especially useful for large files and removes the need for a lot of storage space on the server, as data will be buffered in memory.
You can enable this by setting streamingUpload
in the Companion options.
NOTE: Streaming is turned off by default. Do not turn it on yet if youâre using TUS for uploads, due to this tus-js-client bug.
Interested in using Companion? You can use Transloadit-hosted Companion on every Plan.
Status Bar error state improvements
The Status Bar plugin would get confused about upload errors in Uppy, and weâve addressed this:
- The error state is now shown in case of only one failed file instead of all failed files. The plugin used to get stuck in the uploading state when a single file failed.
- Added âX of X files uploadedâ below âUpload failedâ for extra context.
- Improved the error details button styling in the Status Bar and the file info card.
- Status Bar state is set to complete if the user manually removes the failed files.
Internal housekeeping
Yarn v3 instead of npm
Weâve switched the Uppy repo to Yarn 3 to improve package install performance. With our complex dependency graph and over thirty packages in a monorepo, we are seeing install times reduced by more than a few minutes!
We are using Corepack to make sure all Uppy contributors are using the same version of Yarn. If you are an Uppy contributor, please run the following commands to enable Corepack:
corepack -v || npm i -g corepack # install Corepack if not already installed yarn -v || corepack enable # install Yarn through Corepack if not already installed yarn || corepack yarn install # install npm dependencies using yarn |
Refactor locale scripts & generate types and docs
This is an internal change, but important nonetheless. Our locales now live in a separate locale.js
file for every plugin instead of this.defaultLocale
in the class. The docs and types are automatically updated when we add or remove new locale strings.
Automated release scripts
A lot of things need to happen when weâre publishing a new release. A complete redo of the automation script is now available for quick and secure releases.
Here are some highlights:
- Releaser runs
yarn release
and will get a series of prompts to set up a release. - A changelog will be generated.
- The contributions table will be updated.
- GitHub Actions will create a release candidate pull request.
- When approved, GitHub Actions automatically merges, publishes to the npm public registry, and creates CDN bundles.
And more
- google-drive: plugin has been updated for brand compliance (#3178)
- google-drive: sort Google Drive list by name #3069
- status-bar: now shows all details on mobile when
showProgressDetails
istrue
(#3174) - core: move
Uppy
class to its own module (#3225) - angular: fix component crash by loosening
package.json
version constraints (#3210) - drop-target: exposed events (#3238)
- companion: add
maxFileSize
option in companion for safety #3159 - companion: new AWS S3 multipart presigned URL batching endpoint #3056
- companion: improve CORS default headers #3167
- companion: use GET instead of HEAD for
getURLMeta
for better server compatibility (especially signed S3 URLs) #3048 - companion: deprecate missing
uploadUrls
option (will be required in the future) #3182 - companion: close window on auth callback error and show error to user #3143
- companion: cut off length of file names to avoid AWS error #3048
- companion: safely escape
<script>
injected code in Companionâs send-token.js #3101 - companion: upgrade aws-sdk #3334
- companion: improve logging #3103
- companion: change Provider/SearchProvider API to async and use streams instead #3159
Happy Holidays from the Uppy team! Enjoy Christmas and New Year, stay safe, take a walk outside. See you in 2022!
Star