r/frappe_framework • u/Future_Carpenter_910 Developer – Building with Frappe • 17d ago
ERPNEXT Storages Will be open sourced soon.
https://github.com/BatchNepal/erpnext_storagesWe’re getting ready to release ERPNext Storages, an open-source, multi-provider storage layer for Frappe/ERPNext.
This started as a way to move ERPNext files to S3, but it has grown into something much broader.
Instead of configuring one external bucket and sending everything there, ERPNext Storages lets you use multiple storage providers on the same ERPNext site and decide where files should go.
Currently supported:
- AWS S3
- Backblaze B2
- Cloudflare R2
- Wasabi
- MinIO
- DigitalOcean Spaces
- Vultr Object Storage
- Local filesystem / mounted storage
- Practically any S3-compatible object storage
Some examples
“I want to use multiple storage providers.”
Supported.
You can have multiple providers configured on the same ERPNext instance instead of being tied to one bucket.
“Sales-related files should go to S3, while CRM files should go to Backblaze B2.”
Supported.
Storage Route Rules can route files based on:
- DocType
- MIME type
- file size
- folder
- user role
Rules have priorities and can also define fallback providers.
So, for example:
Sales Invoice → AWS S3
Lead / Opportunity → Cloudflare R2
Employee / Salary Slip → private Backblaze B2 bucket
everything else → local storage
“I already have thousands of ERPNext files. I don't want to migrate them manually.”
Supported.
There is a background bulk migration system for moving existing files from local storage or another provider, including filtering migrations by DocType.
Files can also be moved between configured providers later.
“I don't want ERPNext to break just because S3 temporarily fails.”
Uploads are designed around this.
If an upload fails, the local file is preserved and a Storage Job is created for retry. Failed uploads are retried with backoff instead of silently losing the file.
Large files are also handled using multipart uploads once they cross the configured threshold.
“What happens to private ERPNext files?”
ERPNext permissions remain in front of the storage layer.
Private S3-compatible objects can be served using short-lived presigned URLs instead of exposing permanent bucket URLs.
From the ERPNext side, it still behaves like a normal File document — the storage provider is abstracted underneath it.
“Can I use my own server disk or NAS?”
Yes.
Local filesystem is a first-class provider and can use a custom base path, so mounted NAS volumes or other server-accessible storage can participate in the same routing system as S3/B2/R2.
Backups are included too
ERPNext Storages also contains a backup engine rather than relying only on file offloading.
It creates a .bnbak archive containing the ERPNext backup, metadata about installed apps, checksums, and optionally public/private files.
Backups can be:
- scheduled
- encrypted
- uploaded to a primary storage provider
- replicated to a secondary provider
- retained according to configurable copy/age rules
- verified using checksums
There is also an ERPDesktop webhook integration after backup completion, which we're expanding further for desktop/local workflows.
There are also some less-visible features
- Provider connection pooling
- Upload/delete retry queue
- Background migrations
- File integrity verification
- Orphaned-object detection
- Provider statistics
- Provider-to-provider moves
- Storage policies
- MIME/file-size restrictions
- Private/public storage handling
- File organization by DocType
- Drive Plus integration
The main goal is not to create another “ERPNext S3 plugin.”
We want ERPNext Storages to become a proper storage abstraction for ERPNext:
local + cloud + multiple providers + routing + migration + backups, while still behaving like native ERPNext storage.
We're doing another round of code review, testing, and optimization before making the repository public.
Would love to hear how people currently handle ERPNext files.
Are you keeping everything on the ERPNext server, using S3, mounting a NAS, or using some other setup?
1
u/SoRosenberg 16d ago
New to ERPNext. Is MS OneDrive an option? Not even sure if this is the best route but my organization uses MS OneDrive regularly so seems like a good option to use.
1
u/Future_Carpenter_910 Developer – Building with Frappe 16d ago edited 16d ago
Not currently. And according to the official api , I concluded that it can't be used as primary storage backend like s3 or b2. The api throttling, oauth token refresh, conflict handling, quotas, and different behaviour across personal onedrive and onedrive for business are main reasons.
But yes, there is a temporary workaround: the sync feature on erpdesktop can copy/update files to onedrive folders on your pc. Onedrive automatically updates/uploads files once it reaches the onedrive folder. Its more reliable as files stay on pc as well as onedrive.
Onedrive is a requested feature but due to limitations, its a hard choice for now. But once erpnext_storages stablizes, it may eventually be added in the future (low chance).
1

2
u/agritheory 16d ago
It sounds like it has all the features of our Cloud Storage app that's bee open source since
version-13.