Re:Dropbox Project Infinite
by jorangreef on Tuesday April 26, 2016 @08:13AM
(#11571147)
How is this implemented on Windows vs OS X?
[ Parent
| on HN ]
From a first look on Windows, this is implemented with NTFS sparse files [1] and a file system minifilter. The sparse files act as placeholders so that you can browse your entire Dropbox structure. When you access a file, the minifilter sees that and starts fetching the data from Dropbox servers in the background. You can think of it as HSM [2]
[1] https://msdn.microsoft.com/en-us/library/windows/desktop/aa3...
[2] https://en.wikipedia.org/wiki/Hierarchical_storage_managemen...
My first guess is decoupled drivers with an abstraction that the actual dropbox client service uses. One driver for windows, one for mac. Though I don't know if you can do user mode filesystems on those, but there is this: https://dokan-dev.github.io/ Or else they may have used some fs event notification library to intercept access to files, but I think that would be harder (impossible? IDK win32/mac) to do than a filesystem.
It can't.
This is the type of features that have to be developed for each OS separately.
Re:Dropbox Project Infinite
by jorangreef on Tuesday April 26, 2016 @08:35AM
(#11571285)
Yes, that's what's I meant, how would you develop it on Windows vs OS X etc? What options are available on those platforms?
I don't know how dropbox has actually implemented this, and I'm not sure about OSX,
But on windows you might use a kernel file system filter driver or a shell namespace extension:
https://msdn.microsoft.com/en-us/library/windows/desktop/cc1...
This looks like an open source project that provides something similar for google drive: https://github.com/google/google-drive-shell-extension
On linux this could probably be even easier, just mounting a directory to a remote NFS server.