It's tempting to just save uploaded files — profile pictures, product images, PDFs — directly onto the same server that runs your application. It works, for a while. Then you scale to more than one server, redeploy and wipe the disk, or simply run out of space, and the cracks show. Object storage exists specifically to avoid that class of problem.
What object storage actually is
Instead of a traditional filesystem (folders and files on a specific machine's disk), object storage treats each file as an independent "object" — data plus metadata plus a unique key — stored in a flat structure and accessed over HTTP(S), completely decoupled from any single server. Amazon S3 popularized the model; the same basic idea now exists across essentially every cloud provider.
Why this matters practically
- Servers become stateless — any server instance can serve any request, since uploaded files aren't tied to a specific machine's disk. This is what makes horizontal scaling and zero-downtime deployments actually work cleanly.
- Built-in durability — S3 replicates data across multiple facilities automatically; a single server's disk failure was never something you wanted to be your only backup strategy anyway.
- Direct-to-browser uploads — using pre-signed URLs, a user's browser can upload a file straight to S3 without routing the file's bytes through your application server at all, saving bandwidth and server load.
- CDN-friendly by design — files stored as independent objects with their own URLs are trivial to put behind a CDN for fast global delivery.
How we use it
For client projects — blog cover images, portfolio galleries, document uploads — files go straight to an S3 bucket via a pre-signed upload URL, and get served back through a CDN or an image-optimization layer rather than through the application server. The app server's job becomes generating the temporary upload permission and storing the resulting reference, not handling file bytes directly.
The moment "where do uploaded files live" has an answer other than "on the server that happens to be running," a whole category of scaling and deployment problems disappears before they start.
When local storage is still fine
For a genuinely single-server, low-traffic internal tool with no scaling ambitions, local disk storage isn't wrong — it's simpler, and simplicity has real value at small scale. The switch to object storage matters once you have more than one server, care about durability, or expect to scale — which, for most real client-facing products, is closer to day one than it looks.

