The system should be able to keep track of all the analytics related to storage and network consumption. Should we start dropping old versions, or should we stop creating newer versions, etc? Whether the total space used by each version or snapshot is calculated as the total space used by the user and in that case what should be done after the user reaches his limit. Also, how will it affect the files and folders that are shared between different users, if the user with read-write access decides to revert some changes to the file? How those changes will be copied to all other user’s devices. The first question that comes to mind is how the versioning should be performed whether it is from an update to another update or it’s a daily snapshot of all the updates. And the user should be able to recover the file to a previous version if he wants, however, this requirement is very tricky because it imposes several design constraints and questions as follow. There can be some other extended functional requirements, for example, the system should allow multiple versions of a file. When that device gets connected with the Dropbox service, then all those changes get replicated to all the other devices for the user. What it means is that while the device is offline the user can go and either modify a file or delete a file or even create a new file. Also, the system should allow offline creation of files or offline update or deletion of files and folders. And once a user has reached his file storage limit, the system should not allow any other files. The other requirement is the system should support storing files and folders up to a certain limit only. Imposing Storage Limit and Allowing Offline Updates of Files/Folder Other users can have either read-write or just read-only access to the files and folders. The owner has full access, and full access means he can read-write the files, he can delete the files, and he can share the files while the other users can just read/write or read-only. Users can also be the ones who can share the files and fold them up with other users, user can only share a file or folder which he owns user cannot share a file or folder with other users if he is not the original owner of that file or folder. Only the original owner of the file has access to it or the folder has access to it. But when a user shares files or folders with other users, he can either give them access to them, or he can give them access to them. So by file folder sharing, that means, basically the original owner of the files and folders has the desired access. Sharing the Files among other use accountsĪnother important requirement is that the user should be able to share files and folders with other users. Right now, we’re assuming the maximum file size we’re going to support is 10GB. And whatever files and folders he creates in that root folder that is get replicated to all the other user devices. The second requirement is that the user can have multiple devices and now what he can do is he can specify a root folder in any device. Similarly, the network bandwidth that we provide to the free users might be way less than the network bandwidth that we provide to the premium users. For example, they might have limited storage available as compared to the storage space that is available for the premium users. We can have free users, and we can have premium users where we can assume that the free users are using our service in a limited capacity. So, an account and what it also means is that we can have two types of users. Let’s first discuss the functional requirement the very first functional requirement is the user needs an account to use the file sharing service. It is a very tricky question, and there are so many different things that you have to consider. Before going into the requirement storage phase, you need to understand one thing about file storage service system design.
0 Comments
Leave a Reply. |