Dropbox Clone

Dropbox is a great idea with nice GUIs for multiple platforms, as well as a web interface. The problem is, if you’re a business you have to pay for a decent amount of storage – even 100GB isn’t enough sometimes. Plus, if your data is client confidential, the last thing you want to do is store it on a server out of your control. You could put it in a truecrypt vault, but backing up a binary blob isn’t great considering it will need an update for each slight change (this may be negated somewhat by Dropbox using rsync style technology for only transfering binary differences, not the whole file).

There is a project in it’s early stages, as I write this (Oct 2010), that can solve some of the problems – SparkleShare. It allows you to use your own server to store the files, removing the problems of insufficient storage space and using untrusted servers to store your confidential data.

That’s it right? Just wait for SparkleShare to reach a production level product? Well maybe … but I have more requirements for the environment I work in. We use a very large amount of disk space as we deal with video files, amongst other things. Employees tend to syncronise the parts of the remote storage they require to their local machine. Changes are re-synchronised on a ‘updated files only’ basis, but this is hardly full proof and only works at the moment due to the small number of employees with access. There is also no ability to backtrack changes, apart from resorting to the nightly backups. So, what would I like from a dropbox clone?

Requirements

  • Dropbox style folder on local machine that automatically stays in sync with the server
  • File versioning with the ability to backtrack changes (binary blob only, no subversion style change tracking)
  • Web interface for remote file access
  • File/folder filtering to allow the local directory to only synchronise part of the remote storage, while keeping the folder structure (remember it may be huge!)
  • Remote storage accessed over common file transfer protocols, such as FTP, or more likely SFTP

Implementation

  • Local file system change monitoring using JNotify
  • Hand crafted flat file DB system on remote storage to remove the need for a DB or server software. The clients will understand how to interpret the meta files stored alongside the actual data files/folders.

Progress

Planning – not started

Leave a Reply

Your email address will not be published. Required fields are marked *

Security Question * Time limit is exhausted. Please reload the CAPTCHA.