Project Name
Odoo Attachment Storage Optimisation: Migrating 70 GB of Client Data to AWS S3
![]()
Our client operates a growing enterprise using Odoo 18 as their primary ERP system. Daily operations involve users uploading customer documents, vendor contracts, product images, purchase and sales attachments, HR records, accounting files, and a wide range of business documents into the platform.
Over time, the organisation had accumulated approximately 70 GB of attachment data stored directly on the Odoo application server, a model that had worked at a smaller scale but was now creating operational constraints across backup operations, maintenance cycles, and infrastructure cost trajectories that could not be sustained as the business continued to grow.
Seventy gigabytes of binary files on an application server, expanding backup windows, limiting maintenance, and creating a storage ceiling that growth would breach.
- Seventy Gigabytes of Binary Files on the Application Server: Over 70GB of attachments on the application server was expanding backup windows, limiting maintenance efficiency, and creating a storage ceiling that would soon hinder growth.
- Storage Bottleneck on the Application Server: Application server storage was nearing capacity, with every new attachment reducing available space and pushing the organisation closer to costly infrastructure expansion.
- Backup Complexity From Large Filestore Size: The growing filestore significantly increased backup windows, raising operational risk and slowing disaster recovery.
- Performance Impact During System Maintenance: A large file volume on the application server extended maintenance cycles, making routine operations slower and more complex.
- Rising Infrastructure Costs With No Natural Ceiling: The server-based storage model drove rising infrastructure costs, requiring continual expansion instead of leveraging scalable cloud storage.
- Scalability Constrained by Storage Architecture: The existing attachment storage model limited future growth, making it harder to support increasing documents, users, and business processes.
Ksolves, an AI-first Odoo development company, designed and implemented a custom Odoo–AWS S3 integration using a Python-based Odoo module that redirects attachment storage to a private AWS S3 bucket while Odoo stores only lightweight file references and metadata.
- Phase 1 - Setup: Configured a secure AWS S3 bucket with server-side encryption, created least-privilege IAM access, and developed a custom Odoo module to route attachments to S3 without changing existing workflows.
- Phase 2 - Migration: Migrated over 70 GB of historical attachments to AWS S3 using automated batch processing with integrity validation, ensuring every file and reference was transferred accurately.
- Phase 3 - Integration Activation: Enabled automatic S3 storage for all new attachments, allowing every uploaded file to be stored directly in AWS S3 without manual intervention.
- Phase 4 - Validation: Conducted comprehensive testing for uploads, retrieval, security, and performance, confirming seamless functionality and enterprise-grade reliability.
Technology Stack
| Category | Technology |
|---|---|
| Platform | Odoo 18 |
| Backend | Python + Boto3 SDK |
| Cloud Storage | AWS 3 |
| Security | AWS IAM |
From 70 GB of binary files on an application server with limited capacity and growing backup windows to virtually unlimited cloud storage, faster backups, predictable costs, and a seamless user experience.
- Application Server Storage Freed - Capacity Ceiling Eliminated: Over 70 GB of attachment data was moved from the Odoo application server to AWS S3, eliminating storage constraints and removing the need for near-term infrastructure expansion.
- Faster Backups and Improved Disaster Recovery: With binary files stored in S3, backups now focus on the Odoo database and file references, reducing backup windows and improving disaster recovery efficiency.
- Unlimited Scalability Without Infrastructure Expansion: AWS S3 provides virtually unlimited storage capacity, eliminating server provisioning and allowing attachment storage to scale automatically as the business grows.
- Predictable Pay-Per-Use Infrastructure Costs: The organisation replaced costly server storage upgrades with a scalable, pay-as-you-go cloud storage model, improving cost predictability and long-term efficiency.
- Enterprise-Grade Security for Stored Documents: AWS IAM least-privilege access controls and server-side encryption protect all stored attachments, strengthening document security beyond application-level controls.
- Zero Workflow Disruption for Users: The migration was completely transparent, with no changes to the Odoo interface, attachment workflows, or day-to-day user experience.
As attachment volumes continued to grow, the organisation needed a storage architecture that could scale without increasing infrastructure complexity or costs. By implementing a custom AWS S3 integration for Odoo, Ksolves successfully migrated over 70 GB of historical attachments to secure cloud storage while preserving a seamless user experience. The solution reduced application server storage, streamlined backups, improved scalability, strengthened security, and established a cost-efficient, cloud-native foundation for future business growth.
Is Your Odoo Filestore Becoming the Most Expensive Part of Your Infrastructure?