Pick files straight from Microsoft OneDrive (personal + business)
Built-in OneDrive adapter. Lazy-loads OneDrive.js v7.2 on first click and uses the official Microsoft picker UI. Returns @microsoft.graph.downloadUrl direct links - good for ~1 hour - handed straight to the existing /import-url endpoint with NDJSON live progress. Works for both personal Microsoft accounts and Entra ID (Azure AD) work/school accounts.
Setup required. Register an app in Microsoft Entra ID, grab the client ID, then configure before instantiating:
MultipleUpload.configureRemoteSource('onedrive', {
clientId: 'YOUR_ENTRA_CLIENT_ID',
scopes: 'files.read' // default; expand to 'files.readwrite' if needed
}); App registration: entra.microsoft.com -> App registrations -> New registration -> Single-page application -> Redirect URI = your site origin.
Returned RemoteFile shape
{
url: 'https://onedrive.live.com/download?cid=...&authkey=...',
fileName: 'budget-2026.xlsx',
fileSize: 158_720,
contentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
}Personal vs. business accounts
- Personal (consumers.live.net): sign up your app at portal.azure.com, supported account types = "Personal Microsoft accounts only".
- Work / school (Entra ID): same portal, supported account types = "Accounts in any organizational directory + personal Microsoft accounts" for the widest reach.
- The same picker UI is shown in both cases - the user's account auto-detects which tenant is appropriate.
Cloud picker trio at a glance
| Source | Auth | Direct URL TTL | Setup config |
|---|---|---|---|
'googledrive' | OAuth (gsi) | ~1 hour (bearer) | { apiKey, clientId } |
'dropbox' | OAuth (popup) | 4 hours | { appKey } |
'onedrive' | OAuth (popup) | ~1 hour | { clientId, scopes? } |
Mix them in one uploader
new MultipleUpload('#uploader', {
uploadUrl: '/api/upload',
remoteSources: ['googledrive', 'dropbox', 'onedrive']
});