# Storage for your site's own uploads

> When your site lets members upload photos and files, they go into storage buckets on your backend. Public versus private, size limits, and drafts.

Last updated: October 16, 2026

Source: https://www.willo.ai/docs/assets/storage-buckets

The Assets tab is for files you publish. When your site itself takes uploads (a member's profile photo, a portfolio, a gallery, a form that accepts attachments), those files go into **storage buckets** on your business's backend. Willo sets these up when it builds the feature.

## Buckets

A bucket is a named folder of files with its own rules. Each feature that takes uploads gets its own, for example `portfolio` or `submissions`. Willo creates and configures them for you, and each change to a bucket's settings asks for your approval on a card first.

Every bucket has three settings:

- **Public or private.** In a public bucket, anyone with a file's address can download it, which suits a public gallery. In a private bucket, a file can only be opened through a short-lived link your site creates for someone allowed to see it, which suits anything personal, internal or archival. Willo picks deliberately and tells you which. Switching an existing bucket between the two needs your OK first.
- **Accepted file types.** Each bucket lists exactly the types it takes, such as JPEG, PNG and MP4. "Anything" is never allowed. Public buckets also refuse web pages, SVG and XML files, because a public bucket would serve those as live pages on your backend's address.
- **A size limit per file.** Every file is capped by your backend's upload limit, 50 MB by default. A bucket can set a lower limit but not a higher one. If your business genuinely needs larger files, ask Willo support; it can be raised on request.

Your site's own images live in a separate bucket that Willo manages; it is never used for visitor uploads.

## Who can upload

Uploading normally needs a signed-in member, and each member writes only into their own folder. A public bucket makes **downloads** public, not uploads. Letting anyone upload without signing in would turn your storage into free file hosting for strangers, so anonymous submissions go through a backend function that checks them first, into a private bucket.

## Size and phone video

50 MB is roughly 20 seconds of 1080p video, or 45 seconds of 720p, from an iPhone set to Most Compatible. Willo builds upload forms that check the size in the browser and explain the limit before an upload starts, rather than failing halfway. If your feature is mainly video, say so when you ask for it.

## Buckets and drafts

Buckets live on your **live** backend, even while your business is drafting changes. While drafting, the draft backend gets a copy of each bucket with the same rules but **none of the live files**. That means:

- You can test uploads safely in the draft preview. Test files stay on the draft and are thrown away when you publish.
- A page in the draft preview that shows a file uploaded on the live site will show it as missing. That is expected, not broken. Upload a test file in the draft to try the page.

Files your site uses from the Assets tab are not affected: they have permanent addresses that work in both places.

## Usage

Stored files and downloads count toward your backend's included monthly usage. A site with heavy video uploads uses it faster than one with a few photos. See [Pricing](https://www.willo.ai/pricing) for what each plan includes.

## Cleaning up a bucket

Willo can't delete a bucket, or remove files from one, in chat. If something needs cleaning up, such as duplicate uploads, Willo lists what it found and support removes it.

Related: [Let visitors upload files](https://www.willo.ai/docs/assets/let-visitors-upload-files), [How Willo handles your files](https://www.willo.ai/docs/assets/file-handling).
