Dropbox and its "Folder" like design

I was wondering from a programmer's point of view, preferably in C # or Java, how hard is it to manipulate a folder in the operating system to do what you want, for example to act like FTP?

image http://www.jacks-log.de/wp-content/uploads/2011/02/Dropbox-Wurmloch-1.png

Ever since I heard about Dropbox a few years ago, I've always wondered what has to do with it?

+2


source to share


1 answer


Speaking of Dropbox in particular, they don't do anything complicated - only the regular folder is controlled using mechanisms provided by the Windows User Mode API.

However, much more powerful and interesting things can be used using kernel mode drivers.

The first thing you can do is create a virtual disk and map it to a folder. This way, your code (kernel mode or user mode using our products) will be able to handle all OS requests for files in that folder. The folder will not exist on disk, but will be virtual. You can fetch data from a remote server on the fly, write it to a remote server, and more. In particular, you can map a remote SFTP server to this folder (with this FTP functionality is a little more complicated as FTP does not support partial upload). Some cloud providers do exactly what I described - they offer a virtual disk or virtual folder that is a "shutter" for their cloud service, and when you read or write data from such a virtual folder or disk,data goes from / to the cloud server.



What follows is that with a file system filter driver, you can have a real folder, but dynamically provide the contents of the file. Some folder ciphers do this (they encrypt file data when written to a real disk, and without this active encryption, you will only read encrypted "garbage" from files in this folder).

Now, using the file system filter driver, you can control who and how can access the folder, i.e. you gain control over access to the contents of the fine grain folder (combine this with encryption and you have a convenient data protection mechanism).

+2


source







All Articles