Облачное хранилище — это не просто upload: нужно разделить файлы, metadata, права доступа и фоновые операции.
1. Клиент
Web/mobile интерфейс отвечает за навигацию, выбор файлов, drag & drop, прогресс загрузки и предпросмотр.
2. Metadata отдельно от файла
Имя, владелец, папка, размер, права и статусы хранятся отдельно от бинарного содержимого. Это упрощает поиск и контроль доступа.
3. Фоновая загрузка
Крупный файл не должен блокировать интерфейс. Клиент показывает прогресс, а сервер проверяет тип, размер и целостность.
4. Совместный доступ
Ссылка должна иметь срок, права и возможность отзыва. Внутренние роли проверяются на каждом запросе.
5. Масштабирование
При росте продукта storage, metadata и API масштабируются независимо.