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 для приватного доступа.