Moving the media library to object storage solves disk and solves delivery. It also means every image on the site now depends on a rewrite rule being right.
Once uploads live off the server, most media problems become questions about which copy a URL points to.
Media URLs are rewritten to the bucket at render time, and those rules are the first thing a site move breaks. Migration handles them deliberately rather than as a database search and replace.
Object storage is public by default and that default has leaked more customer documents than any exploit. Restricted media is delivered with signed, expiring URLs rather than obscure ones.
Moving an existing library of a hundred thousand files is a long job. It runs as a resumable batch, so the initial migration completes rather than stalling half way through the media table.
Deleting local files reclaims disk and removes your fallback. The trade-off is set deliberately per site, and backups cover the library either way.
Derivative sizes are generated on the server and offloaded together, so a page never asks the bucket for a size that was never created.
Nothing about object storage is fragile. What breaks is the layer that decides whether an image URL points at the server or at the bucket, and it breaks quietly.
The reason to offload is that media stops competing with the application for disk and bandwidth. That only holds if every URL actually points away.
Every row is about the seam between the site and the bucket, because that seam is where offloading fails.
| Setting | What we do | Why |
|---|---|---|
| URL rewriting | Preserved explicitly through any migration | Media URLs are rewritten at render time, and a blunt database replace during a site move points every image at a bucket path that no longer applies. |
| Private media | Delivered with signed, expiring URLs | Object storage is public unless told otherwise, and an unguessable filename has never been an access control. |
| Initial offload | Resumable batches with progress kept | Moving an existing library of a hundred thousand files takes far longer than any request allows, and a stalled run leaves the library split between two places. |
| Local copies | Retention decided per site rather than defaulted | Removing local files reclaims disk and removes the fallback at the same time, which is a trade worth making on purpose. |
| Derivative generation | Completed on the server before offloading | A page requesting a size that was never generated gets a missing image from the bucket rather than a resize, because nothing there can create one. |
Every plan includes free migration, daily backups, SSL and 24/7 support.
Move the site across — migration is free, media rewrites checked.