12

Looking for online resources to implement a virtual drive functionality similar to ones implemented in products listed here

The solution should be cross OS (win, pc, linux) preferably using a well behaving framework. Currently the answer to this question is widely dispersed with no clear option on what to use:

Current suggestions I've found:

  1. Fuse (not really sure on the status of various windows ports)
  2. Dokan library
  3. Custom namespace extensions (windows only, sources in various CodeProject articles)
  4. Commercial frameworks (windows) - LogicNP, Eldos
  5. WebDav

Please list one suggestion per answer and I'll update the question accordingly. The purpose of the question is to create the best reference point for such questions...

It seems WebDav would be easiest to implement cross OS so further information on this would be appreciated.

Community
  • 1
  • 1
Goran
  • 6,798
  • 9
  • 41
  • 57
  • What a virtual drive means? What it will be used for? – Kazimieras Aliulis Mar 09 '09 at 07:28
  • I was looking for a framework to help me implement something akin to zumodrive or dropbox. I'll check back periodically and update the question. It's community wiki so others can do so as well. – Goran Mar 09 '09 at 11:49
  • My opinion - WebDAV is the way to go, it is perfect for files management. Probably you would not need to program the client side in this case, instead you can use built-in Windows and Mac OS WebDAV clients. As a server side framework I would recommend IT Hit WebDAV Server Engine for .Net and for Java: http://www.webdavsystem.com/server –  Sep 05 '10 at 21:27
  • Looking for the same (ideally above rudimentary C hacking). An answer should be burried in [VeraCrypt's source code](https://veracrypt.codeplex.com/wikipage?title=Downloads), which allows you to mount drives both on Windows, Mac and Linux... – Frank N Dec 09 '15 at 16:38

10 Answers10

8

A simple solution is to use the native SMB client for each of your target platforms, then use that to mount a custom Samba filesystem implemented using Samba's VFS API. Custom NFS servers have been used to implement cross platform Unix virtual file systems, but SMB is a much better choice to support Windows and Linux.

If you need the VFS to access client-side resources, you must run the Samba server with your VFS on the client and then use a loopback or localhost network to mount the drive. Samba is widely ported including a port to Win32 using Cygwin as an adapter.

Ken Fox
  • 1,649
  • 8
  • 12
  • This is as close to an answer as I got. Still no simple solution exists so I guess we're back to reinventing the wheel. – Goran Mar 09 '09 at 11:50
5

WebDAV. In a heartbeat. It's cross-platform by nature, and there's a substantial amount of client support, as well as decent open source server code. Apache mod_dav is your friend.

Check out WebDAV client support on Mac, Windows, and Linux:

Open source WebDAV servers:

And don't forget to look at WebDAV resources.

Anirvan
  • 6,214
  • 5
  • 39
  • 53
  • 1
    I wrote a custom WebDAV file system and supporting all the various buggy clients is a huge task. My company eventually limited support to just a few clients (Windows web folders, MS Office) that had bugs we knew. If I did it again, I'd write a Samba VFS plug-in. – Ken Fox Mar 04 '09 at 03:28
2

I use jungledisk on all of the mentioned platforms to backup and share files. If you look at their download page, you'll see all of the platforms it's compatible with. I backup my webserver (CentOS x64), a mac OSX 10.5, and a dual-boot pc (Vista/Fedora) all under one license!

  • All versions use WebDav
  • Linux version also has FUSE capability
  • Uses Amazon's affordable S3 storage platform
  • Soon to add Cloud Files support (Mosso) at 15¢/gb no charge for I/O.

JungleDisk

Blaine
  • 1,107
  • 4
  • 12
  • 23
1

VirtualBox' VDI. It's Open Source.

vartec
  • 131,205
  • 36
  • 218
  • 244
  • VirtualBox is a whole virtual machine, not just a virtual disk. To answer the question, you'd need a guest OS serving SMB, WebDAV or something like that. And that would be a pretty big waste of disk and performance. – Chris Dolan Mar 05 '09 at 02:42
1

SSHFS (requires SFTP on the host side). There are some bugs with it, but we've had good luck with it overall.

Mitch Haile
  • 11,716
  • 2
  • 28
  • 25
1

You can use Alfresco JLAN. JLAN is a Java-Client and Java-Server Implementation of the protocols CIFS, NFS und FTP. With JLAN can files be shared over the network, which are available via a network drive.

The download is at http://sourceforge.net/project/showfiles.php?group_id=143373&package_id=248550

Horcrux7
  • 23,758
  • 21
  • 98
  • 156
0

Fuse won't work on Windows.

My choice would be:

  • FUSE for Unix/Mac
  • EldoS Callback File System or Filter (we're currently using Filter) for Windows (http://www.eldos.com/)

Regards

Eugene Mayevski 'Callback
  • 45,135
  • 8
  • 71
  • 121
0

Jungle disk

Laserallan
  • 11,072
  • 10
  • 46
  • 67
0

What about simple FTP? Or NAS? Stick with a standard protocol and you shouldn't have any problems integrating with it. I wrote a Linux SFTP filesystem extension once Back In The Day, but with most OSes supporting user-mode filesystems nowadays, it shouldn't be too hard to integrate with whatever you might choose.

TMN
  • 3,060
  • 21
  • 23
-1

Microsoft Live Mesh will give you synchronized folders across Windows, Mac, your online Mesh storage, and Windows Mobile phones.

David
  • 34,223
  • 3
  • 62
  • 80