A lightweight desktop application that uploads and downloads large files across multiple Google Drive accounts using intelligent chunking and distribution.
Fast, clean desktop app to manage multiple Google Drives. No admin required. Windows only.
Screen.Recording.2025-10-19.032943.mp4
- Multiple Google Drive accounts
- Upload/Download queues with progress
- OAuth login (supports custom Client ID/Secret)
- Clean modern UI (Flet)
- No console popups (v3.0.4)
- Download the installer (button above)
- Run and follow the wizard
- Launch from Start Menu
Requirements: Windows 10/11, internet, and rclone in PATH.
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python app_flet_restored.py
License: MIT. See LICENSE.
Important: Match remote_name values with your rclone remote names!
-
๐๏ธ Build Instructions### Step 6: Run Application
-
๐ Changelog```powershell
-
๐ง Rclone Configurationpython main.py
Version-Specific Notes:
-
Version 3.0.4 Release Notes - Terminal popup fix### Uploading Files
-
Version 3.0.3 Release Notes - Code restoration
-
Version 2 FeaturesMethod 1: Drag & Drop
- Open the application
---2. Go to the Upload tab
- Drag and drop any file onto the drop zone
| Component | Technology |Method 2: Browse
|-----------|------------|1. Click Browse for File button
| UI Framework | Flet 0.28.3 (Flutter-based) |2. Select your file
| Language | Python 3.13 |3. Upload starts automatically
| Cloud Backend | Rclone |
| Packaging | PyInstaller 6.16.0 |What happens during upload:
| Installer | Inno Setup 6.5.4 |1. File is hashed (SHA-256)
- File is split into chunks (default: 100 MB each)
---3. Chunks are distributed across drives in round-robin
- Manifest file is created in
manifests/folder
- Temporary chunks are cleaned up
-
โ ๏ธ Rclone must be installed separately and in PATH### Downloading Files -
โ ๏ธ Google Drive OAuth requires browser access -
โ ๏ธ Large file uploads may take time depending on internet speed1. Go to the Download tab
- Click Refresh to see available files
-
Bundled Rclone executable4. Click Download Selected
-
Support for OneDrive, Dropbox5. Choose save location
-
File synchronization features6. File is reconstructed automatically
-
Scheduled uploads/backups
What happens during download:
---1. All chunks downloaded concurrently
- Chunks are verified (SHA-256)
- Final file hash is verified
We welcome contributions! Here's how you can help:5. Temporary files are cleaned up
-
Fork the repository### Settings
-
Create a feature branch (
git checkout -b feature/AmazingFeature) -
Commit your changes (
git commit -m 'Add some AmazingFeature')The Settings tab shows: -
Push to the branch (
git push origin feature/AmazingFeature)- Configured rclone remotes -
Open a Pull Request- Enabled drives
- Current application settings
Click Configure Rclone Remotes to add/modify remotes.
# Clone your fork## ๐ Project Structure
git clone https://github.com/YOUR_USERNAME/jagyaa.git
cd jagyaa```
jagyaa/
# Install development dependenciesโโโ main.py # Application entry point
pip install -r requirements.txtโโโ requirements.txt # Python dependencies
โโโ README.md # This file
# Run from sourceโโโ .gitignore
python app_flet_restored.pyโ
โโโ config/
# Build executableโ โโโ drives.json # Drive configuration (user-created)
pyinstaller MultiDriveCloudManager.specโ โโโ drives.example.json # Configuration template
โ โโโ rclone.conf # Rclone config (auto-generated)
# Create installerโ
# (Requires Inno Setup installed)โโโ core/ # Core business logic
"C:\Program Files (x86)\Inno Setup 6\ISCC.exe" installer\MultiDriveCloudManager.issโ โโโ __init__.py
```โ โโโ chunker.py # File splitting/merging
โ โโโ config_manager.py # Configuration handling
---โ โโโ rclone_manager.py # Rclone operations
โ โโโ manifest.py # Manifest management
## ๐ Licenseโ โโโ uploader.py # Upload orchestration
โ โโโ downloader.py # Download orchestration
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.โ
โโโ gui/ # User interface
```โ โโโ __init__.py
MIT Licenseโ โโโ main_window.py # Main application window
โ
Copyright (c) 2025 Het Charusatโโโ manifests/ # Upload manifests (auto-created)
โ โโโ *.json
Permission is hereby granted, free of charge, to any person obtaining a copyโ
of this software and associated documentation files (the "Software"), to dealโโโ chunks/ # Temporary chunk storage (auto-created)
in the Software without restriction, including without limitation the rightsโโโ downloads/ # Default download location
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell```
copies of the Software...
```## โ๏ธ Configuration Options
---Edit `config/drives.json` to customize:
## ๐ Acknowledgments| Setting | Description | Default |
|---------|-------------|---------|
- **[Rclone](https://rclone.org/)** - The backbone of cloud operations| `chunk_size_mb` | Size of each chunk in MB | 100 |
- **[Flet](https://flet.dev/)** - Beautiful cross-platform UI framework| `max_concurrent_uploads` | Parallel upload threads | 3 |
- **[PyInstaller](https://pyinstaller.org/)** - Python to executable packaging| `upload_folder` | Folder name on remote drives | MultiDriveSplit |
- **Google Drive API** - Cloud storage integration| `manifest_folder` | Local manifest storage | manifests |
| `temp_folder` | Temporary chunk storage | chunks |
---
## ๐ง Advanced Usage
## ๐ Support & Contact
### CLI Mode (Future Enhancement)
- **Issues**: [GitHub Issues](https://github.com/hetcharusat/jagyaa/issues)
- **Discussions**: [GitHub Discussions](https://github.com/hetcharusat/jagyaa/discussions)The core modules can be used independently:
- **Email**: [Your Email Here]
```python
---from core import ConfigManager, RcloneManager, ManifestManager, Uploader
## ๐ Project Statsconfig = ConfigManager()
rclone = RcloneManager(config_path=config.get_rclone_config_path())
manifest = ManifestManager(config.get_manifest_folder())
uploader = Uploader(config, rclone, manifest)

# Upload a file
---manifest_id = uploader.upload_file("large_file.zip")
print(f"Uploaded: {manifest_id}")
## ๐ Version History```
### v3.0.4 (2025-01-19) - Current### Manifest File Structure
- ๐ง **Fixed**: Terminal window popups during operations
- โ
**Added**: Comprehensive subprocess window suppressionEach upload creates a JSON manifest in `manifests/`:
- ๐ฏ **Improved**: Silent operation on all cloud interactions
```json
### v3.0.3 (2025-01-18){
- ๐ **Restored**: Complete codebase (4,640 lines) "manifest_id": "myfile_20251018_143022",
- ๐ ๏ธ **Fixed**: Syntax errors and indentation issues "version": "1.0",
- โ
**Verified**: All features working correctly "created_at": "2025-10-18T14:30:22",
"original_file": {
### v3.0.2 (2025-01-17) "filename": "myfile.zip",
- โ ๏ธ **Attempted**: Bug fixes but broke app launch "path": "/full/path/to/myfile.zip",
- ๐ซ **Status**: Deprecated "size": 524288000,
"size_formatted": "500.00 MB",
### v3.0.1 (2025-01-16) "hash": "abc123..."
- ๐ **Initial**: Public release },
- ๐ฆ **Features**: Core functionality complete "chunks": [
{
--- "index": 0,
"filename": "myfile.part0000.zip.chunk",
<div align="center"> "size": 104857600,
"hash": "def456...",
**Made with โค๏ธ by Het Charusat** "drive": "drive1",
"remote_path": "MultiDriveSplit/myfile.part0000.zip.chunk",
โญ Star this repo if you find it useful! "status": "uploaded",
"uploaded_at": "2025-10-18T14:35:00"
[Download Latest Release](https://github.com/hetcharusat/jagyaa/releases) โข [Report Bug](https://github.com/hetcharusat/jagyaa/issues) โข [Request Feature](https://github.com/hetcharusat/jagyaa/issues) }
],
</div> "total_chunks": 5,
"status": "completed"
}To create a standalone .exe (no Python required):
pip install pyinstallerpyinstaller --name="MultiDriveSplitUploader" `
--windowed `
--onefile `
--icon=icon.ico `
--add-data="config;config" `
main.pyThe executable will be in dist/ folder.
Note: Users still need rclone installed separately.
To create a distributable package:
- Build the executable (see above)
- Create a folder structure:
MultiDriveSplitUploader/
โโโ MultiDriveSplitUploader.exe
โโโ rclone.exe (download from rclone.org)
โโโ config/
โ โโโ drives.example.json
โโโ README.txt (setup instructions)
- Zip the folder for distribution
- Ensure rclone is installed and in PATH
- Verify:
rclone version
- Configure rclone remotes:
rclone config - Update
config/drives.jsonwith correct remote names - Ensure
enabled: truefor at least one drive
- Check internet connection
- Verify rclone remotes:
rclone listremotes - Check Google Drive quotas
- Review Activity Log in the application
- Ensure PySide6 is installed:
pip install PySide6 - Check Python version:
python --version(must be 3.8+)
- Encryption - AES-256 encryption for chunks
- Compression - Optional compression before chunking
- Resume Support - Resume interrupted uploads/downloads
- Remote Manifest Backup - Store manifests on cloud
- CLI Mode - Command-line interface for automation
- Scheduling - Automated upload scheduling
- Cloud Provider Support - OneDrive, Dropbox, S3
- Multi-Language - Internationalization support
MIT License - feel free to use and modify!
Contributions are welcome! Please feel free to submit issues or pull requests.
For issues and questions:
- Check the troubleshooting section
- Review the Activity Log in the application
- Check rclone documentation: rclone.org/docs
- Rclone - Amazing cloud storage CLI tool
- PySide6 - Cross-platform Qt bindings
- Python Community - For excellent libraries
Made with โค๏ธ for efficient cloud storage management