We’re proud to announce an exciting new way to access all your files in Seafile — the Drive client. The Drive client maps your storage space on Seafile server as a virtual drive on your computer. It allows you to access all your files in Seafile immediately, without syncing them. Conceptually, the Drive client extends your local disk space with the massive storage capacity on your Seafile server.
Since the beginning of Seafile project, file syncing has been one of the most valuable features. However, there are still some limitation with the sync client:
- The users have to manually initiate syncing of libraries. Even though this allows the users to selectively sync what they’re interested in, it’s not the most intuitive way to use cloud storage. Many users are more used to “Windows share”. Accessing cloud storage in the same way as Windows network drive is most intuitive for many users.
- The amount of file you can sync is limited by the client computer’s disk capacity. If you have huge amount of files on your server (true for large organizations), it’s not possible to access them all on your client computer.
How it works
After installation and setting up up your Seafile account, a virtual drive will appear in your Windows explorer (labeled as ‘S:’ and named ‘SeaDrive’). You can also choose a different drive letter. The Drive client then fetches the file list from Seafile server and cache them on your local disk. No file contents are downloaded so it would finish quickly. Then you can see all your libraries and files inside the ‘S:’ drive. You could open/edit any files. File contents will be downloaded on demand. That’s it!
But wait, does it just work like Windows share or WebDAV? No, the Drive client works differently.
- Supports offline mode. You can still access the folders and cached files even there is no network connections. Your changes will be uploaded to the server after network is accessible again.
- No network delay when you browse folders, as file list are loaded during initialization and synced periodically.
- No network delay when you move, delete or create new file or folders. Metadata changes are first written to local cache then synced with the server in the background.
- No network delay when you update files, even large files. Files are first written to local cache and uploaded to the server in the background.
- Reading files works like “streaming”. You read file contents as the contents are being downloaded from the server. This reduce the delay of opening files.
Windows share doesn’t have offline mode and doesn’t work well in WAN environment. Mapping WebDAV server as local drive is usually slow, because the OS sees it as local disk and sends many redundant requests to the server.
There could be many use cases for the Drive client:
- Replace Windows Share (SMB) or Samba with Seafile.
- Access files on workstations with small local disk.
- Writing large scientific data directly to Seafile server.
- Better enforcement of company data access regulations. Users access files from Seafile server exclusively. The locally cached files can be removed on logout. In the future we’ll implement encryption for the virtual drive. Companies don’t need to worry about data leak after computer lost.
Under the hood
The Drive client works like a sync client with a FUSE like virtual file system interface. The client still use the syncing protocol for upload/download files in the background. But it also implements some “smart” caching algorithm that fetches and caches local copy of files. Then it presents the files/folders to end users as a virtual file system.
On Windows, we use Dokany, an open source user-mode file system driver and library to implement virtual drive. On Mac and Linux, we’re going to use FUSE for the task.
Where can I get it?
The Drive client is currently in beta. You can download it from this link. Note that the Drive client requires Seafile server 6.0.
Currently there are sill some limitations on the beta version:
- Mac and Linux clients are under development.
- Encrypted libraries are not supported yet.
- File locking is not supported.
- Lack of an option to allow the user to keep some folders always synced to local disk.
We’re rapidly developing the Drive client, so you’ll see new version very soon. Below is our road map:
- Mac and Linux client
- File locking support
- Polished UI
- Encrypted libraries
- Enable keeping a folder sync
Side Note: Compared to Dropbox’s “project Infinite”
While we were developing the Drive client, we saw the news that Dropbox is also going to release something similar, named project Infinite. But it raises many concerns because it will use its own “kernel extensions”, other than standard and open source mechanisms like FUSE. The concerns are about both privacy and security. A kernel extension will give Dropbox even deeper access to all information on your computer. Not using standard mechanisms also introduce potential security and stability concerns.
Unlike “project Infinite”, Seafile Drive client uses open source FUSE-like mechanism to implement virtual drive. And we believe that the Drive client will have even more use cases in private cloud environment, where the network is much faster than WAN.