Diseña un servicio de almacenamiento y sincronización de archivos (como Dropbox).
Respuesta
- Divide los archivos en chunks (por ejemplo 4 MB) y calcula un hash de cada uno; sube solo los que cambian (deduplicación, subidas reanudables).
- Chunks en object storage (S3); una base de metadatos guarda archivos, versiones, listas de chunks y permisos.
- Sube directamente al almacenamiento con URLs pre-firmadas.
- Sincronización: los clientes mantienen un cursor; un servicio de notificaciones (long polling / WebSocket) anuncia los cambios; los clientes descargan los metadatos nuevos.
- Conflictos: conserva ambas copias, o historial de versiones.
- Compartir con ACLs y enlaces; CDN para las descargas; cifrado en reposo.
Practica esta pregunta en Repaso