Keeping Each Customer's Files in Their Own Space

By Sharon C
Dec 29, 2025 5 min read 6 views
Keeping Each Customer's Files in Their Own Space
Images, documents and exports are some of the most personal data a customer stores. Here is how our media library keeps every file in the right account and website.
Share:

Every organization that uses our platform uploads files: logos, photos, sermon notes, product images, course downloads, exported reports. Files are often more personal than database rows. A photo of a member, a signed document or a financial export can be sensitive in ways a simple record is not.

So files get the same care as data, with a few extra rules of their own.

One media library for every upload

In VoVo, almost every upload goes into one place: the account's media library, which we call the Hub. Whether a file arrives through a page builder, a blog editor, a settings screen or an import, it becomes a Hub item that belongs to that account and records which website within the account it is for.

That single home has practical benefits. Owners can find every file they ever added. Images can be reused instead of uploaded again. Backups know where to look. And there is exactly one set of rules to get right.

Paths that name their owner

Files are stored under paths that begin with the account they belong to. An account's images do not sit in a shared folder next to everyone else's. Even if a mistake elsewhere exposed a folder listing, the structure itself keeps customers apart.

The database record for each file also stores the owning account and website, its type, size and a fingerprint of its contents. The record is what screens and permissions check; the path is a second layer of order.

Quote card: A file is not just bytes on a disk. It belongs to someone, and the system should never forget who.

Duplicates are recognized, not repeated

When the same file is uploaded twice to the same account, we recognize it by its fingerprint and reuse the existing item instead of storing a second copy. That keeps libraries tidy and storage costs down. The check is limited to the same account: an identical image uploaded by two different organizations stays as two separate items, each belonging to its own owner. Our post on deduplicating media uploads explains how fingerprints work.

Public and private are different places

Most website images are public by nature; they appear on pages anyone can visit. Some files are not: private exports, account documents, attachments in accounting. Those are stored with private visibility, outside the public folder, and are served only through checks that confirm who is asking.

Fields that hold private files say so explicitly in our code, so a private document can never be dropped into the public library by accident.

Imports bring their files home

When we move a website into our platform from another provider, the old site will eventually be shut down. Any image or font still loaded from the old host would break on that day. So our importers download every asset into the customer's own library and rewrite every reference to point at it. We never leave a page depending on someone else's server. You can read more in our importers never hotlink.

Uploaded files are checked before they are trusted

A file's name says very little about what is inside it. Before an upload is stored, we check its real type against an allowed list, enforce size limits for each kind of file and clean file formats that can carry hidden scripts. Images in the SVG format, for example, are text files that can contain code, so they are sanitized before they can ever appear on a page. Where scanning is turned on, uploads are also checked for malware before they are kept.

These checks protect the account that uploaded the file and every visitor who later sees it. You can read more in sanitizing uploaded files.

Processing happens in the background

After an image is uploaded, we create smaller versions for faster pages and read details such as dimensions. That work runs in the background so uploads feel quick. The job remembers which account the image belongs to before it touches anything, following the pattern described in background jobs that remember their context.

Deleting with care

Files referenced by pages, posts or products should not vanish because someone tidied the library. Our media system records where items are attached, such as a post's featured image, which helps us avoid removing files that are still in use. Deletions follow the same recoverable approach we use for pages wherever possible, so a mistake can be undone.

Frequently asked questions

Where are my uploaded files stored on VoVo?

Uploads go into your account's media library, stored under paths that belong to your account and recorded with the website they are for.

Are my private files visible to the public?

No. Files marked private are stored outside the public folder and are only served after checking who is asking.

What happens if I upload the same image twice?

Within the same account, the existing copy is recognized by its fingerprint and reused, so your library does not fill with duplicates.

Comments (0)

No comments yet. Be the first to share your thoughts!