Uploading files
How uploads work in Mauvely Cloud, size limits, what happens to file names and thumbnails, and how quota is enforced.
Uploading
Drag files onto the file list, or use the upload button. Uploads happen in your browser and you can watch each one progress.
Limits
| Limit | Value |
|---|---|
| Maximum file size | 5 GB |
| Total storage | Your plan — 2 GB Free, 200 GB Pro, 1 TB Max |
Files are encrypted and uploaded in 4 MiB chunks, so a large file does not have to be held in memory all at once.
What gets encrypted
Everything that describes your file, not just its bytes:
| Encrypted before upload | Also encrypted |
|---|---|
| File contents | The file name |
| Its MIME type | |
| Its thumbnail | |
| Folder names |
The server never learns any of them.
The size of each file is visible to the server — encrypted data is roughly the same length as the original, and quota has to be counted somehow. See what the server can see.
Thumbnails
For images, Cloud generates a small preview in your browser, encrypts it, and stores it alongside the file. Grid view decrypts thumbnails as you scroll.
Thumbnails are generated locally, so the server never receives an unencrypted version of any image — including the small one.
Quota
Your usage counts the encrypted bytes, which is what is actually stored. Authentication data adds about 0.0004% over the original size, which is close enough that the interface shows one number.
If an upload would exceed your allowance it is refused before anything is transferred, rather than part-way through. Two uploads running at once cannot both slip past the limit.
Version history counts against your quota as well, and the storage panel breaks out how much of your usage is history — see Version history.
Duplicate names
Two files cannot have the same name in the same folder, and Cloud enforces that without ever learning either name: your browser computes an opaque value from the name and the folder’s key, and the server only ever compares those values for equality.
Because the value is keyed on the parent folder, the same filename in two different folders produces two unrelated values — nothing leaks across folders either.
Downloading
Select a file and download it. Chunks are fetched, verified and decrypted in your browser, then assembled into the file you get.
Each chunk is bound to its position in the file, so a truncated, reordered, or substituted download fails cleanly rather than producing a corrupted file that looks fine.
Previewing without downloading
| Type | Preview |
|---|---|
| Images | ✅ Inline |
| Video | ✅ Inline |
| Audio | ✅ Inline |
| Text | ✅ Inline, up to 2 MB |
| ❌ Download instead | |
| Everything else | ❌ Download instead |
Files above 150 MB are not previewed inline regardless of type.
Uploading from Compose or Snap
Not yet. Automatic syncing from the desktop apps is designed but not built, so uploading a .course
file or a capture is something you do yourself through the browser today.