English | 中文简体
A simple desktop GUI application for uploading files and folders to OneDrive for Business on macOS, with resume support.
Built with Python and PyQt.
- Upload files and folders to OneDrive for Business
- Resume support — continue from the last interrupted upload
- Lightweight and minimal GUI
- No command line required
- Tested on macOS 26 Tahoe (Apple Silicon)
When you sign in to OneDrive for Business for the first time, the app will request three permissions:
| Permission | Purpose |
|---|---|
Access all files you can access in OneDrive (Files.ReadWrite.All) |
Required for uploading, resuming, and managing your own files in OneDrive. |
Maintain access to data granted to OneDriveUploader (offline_access) |
Allows the app to keep your login active without re-authenticating every time. |
View your basic profile (User.Read) |
Identifies your account (name, email) so the app can store your login session securely. |
These are the minimal Microsoft Graph permissions required to implement resumable file uploads.
All permissions are granted through Microsoft's official login flow; the app itself never handles your credentials directly.
The app never uploads, stores, or shares your data with any external service other than Microsoft OneDrive.
- Download the latest
.dmgpackage from Releases. - Open the
.dmgfile — drag OneDriveUploader.app into the Applications folder. - Launch OneDriveUploader.app.
- Click Add Account, follow the Microsoft login to authorize your OneDrive for Business account.
- After authorization, select files or folders and start uploading. Uploads run in the background and can be resumed automatically if interrupted.
⚠️ macOS may warn that the app is from an unidentified developer.To open it, right-click (or Control-click) → “Open” → then confirm.
- macOS 10.15+
- Python 3.12+
git clone https://github.com/ailoha/onedrive-uploader.git
cd onedrive-uploader
python3.12 -m venv venv
source venv/bin/activate
pip install -r requirements.txtpython main.pyContributions are welcome!
You can help by:
- Reporting issues
- Submitting pull requests for bug fixes or new features
- Improving documentation or UI/UX
Please follow standard GitHub workflow:
- Fork this repository
- Create a new branch
- Commit and push your changes
- Submit a pull request
MIT License — Free to use, modify, and distribute.
