Create a robust online file-sharing system that allows users to store, sync, and share files across multiple devices and with other users. The system should handle large file uploads, provide efficient storage and retrieval, maintain file versioning, and ensure data security and access control.