advanced
File upload service
Design resumable upload, object storage, metadata, virus scanning, access control, and CDN delivery. Объясняйте API, data model, bottlenecks и trade-offs.
Сервис загрузки больших файлов — direct-to-object-storage через pre-signed URL или multipart API, метаданные в БД и асинхронное антивирусное сканирование. Клиент грузит chunk параллельно; сервер собирает ETag и помечает файл готовым после scan.
Контроль доступа связывает object key с пользователем или tenant. CDN для публичных assets; приватные — signed download URL. Возобновляемая загрузка требует состояния сессии и учёта частей.
На интервью: multipart upload flow, схема метаданных, scan pipeline и CDN для публичных изображений.
Типовые ошибки: проксирование всего файла через API; нет scan до публичной ссылки; слабая проверка content-type и XSS через SVG.
Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.
Чеклист:
- Pre-signed или multipart direct upload.
- Метаданные отдельно от blob.
- Async scan до публичной доступности.
- Signed URL для приватного доступа.