Works with any backend npm install Zero dependencies

Pick files straight from Dropbox via the official Chooser

Built-in Dropbox adapter, registered out of the box. Lazy-loads dropins.js (Dropbox's official chooser) on first click, runs OAuth in a popup, and resolves with direct-download URLs your server's /import-url endpoint can fetch with NDJSON live progress. No server-side broker needed - Dropbox's direct links are publicly resolvable for 4 hours.

Setup required. Register a Dropbox app, grab the App key, then configure before instantiating:
MultipleUpload.configureRemoteSource('dropbox', {
 appKey: 'YOUR_DROPBOX_APP_KEY'
});
App registration: dropbox.com/developers/apps. Pick "Scoped access" + "App folder" or "Full Dropbox" depending on your needs; the JavaScript SDK key is what you want.
Returned RemoteFile shape
{
 url: 'https://dl.dropboxusercontent.com/s/abc.../report.pdf?dl=1',
 fileName: 'report.pdf',
 fileSize: 2_457_600 // bytes (provided by Dropbox)
}
Chooser options
// Pass options to .pick() via the source registry directly:
const dropbox = MultipleUpload.getRemoteSource('dropbox');
const files = await dropbox.pick(uploader, {
 multiselect: true,
 extensions: ['.pdf', '.docx', '.png'] // optional filter
});
// Each file flows into uploader.importFromUrl() automatically when invoked
// via the remoteSources option.
Why direct links (linkType: 'direct')
  • 4-hour TTL: long enough for server-side fetch to complete even on slow connections.
  • No OAuth roundtrip server-side: the URL itself is the bearer.
  • For long-lived archival: capture the bytes server-side before the link expires.

Same registry pattern as 'googledrive' and 'onedrive' - mix and match in the remoteSources array.