Client-side chunking
The browser slices a file into upload chunks and hashes them outside the main UI path. The server validates each chunk before it enters storage, then assembles a manifest when the file becomes visible.
Cotton's upload path is built so file size mostly changes the number of chunks, not the shape of the memory problem. That is the difference between streaming storage and a UI that stalls during finalization.
The browser slices a file into upload chunks and hashes them outside the main UI path. The server validates each chunk before it enters storage, then assembles a manifest when the file becomes visible.
A common bad experience is fast upload followed by a long server-side finalization phase. Cotton shifts the expensive shape toward incremental chunk work, so the final visible file operation can stay small.
Compression and encryption run as streaming stages. They do not require the whole file to be present in memory before useful work starts, and they do not need to write a huge temporary plaintext object first.
Even protocol uploads through WebDAV can land in the same chunk storage model. WebDAV PUT is not as resumable as Cotton's native chunk protocol, but it does not need a separate whole-file storage design.
The same idea applies on read: a seekable stream can assemble bytes from encrypted chunks. Downloads, video seeking, preview extraction, and HTTP range responses do not need to rebuild the whole object first.
This is not only about huge files. Avoiding full-file buffering also helps normal folders, uploads from weaker devices, NAS deployments, low-memory VMs, and multi-user instances under concurrent load.
The no-buffering story depends on client chunking, worker hashing, incremental server validation, streaming compression, streaming AES-GCM, manifest assembly, and seekable chunk reads for download and preview paths.
Cotton treats big files as more chunks, not a special emergency path. That is the practical difference between a file cloud built for archives and one that only looks good on small uploads.
No full-file buffering does not remove every deployment limit. Operators still need sane request limits, storage capacity, network reliability, browser compatibility, and quota policy.
The architecture is chunk-first, so very large files are represented as more chunks and a manifest. Real limits still depend on deployment settings, browser behavior, storage backend, and network conditions.
No. WebDAV PUT is a long-lived protocol request, so retry behavior is naturally narrower than Cotton's native chunk protocol. It still enters the same chunked storage pipeline once received.
Yes. Downloads, previews, media seeking, range requests, and WebDAV reads can be assembled from chunks as streams instead of rebuilding a whole temporary file first.