s3syncit - Ubuntu One and DropBox Replacement Written in Perl

For a while I have had two itches to scratch. Firstly, I wanted a simple set of libraries to interface to the Amazon Web Services. Secondly, by having those, I could do my own remote storage of various important files.

Almost 2 years ago I wrote the start of Project AwsSum in Perl. They are simple but they work and also come with some small command line tools which do as you want.

The itch for those interfaces has mostly gone. I do need to add some latest updates to the interfaces but they're ok in all honesty and those who want those new features would only take a few mins to add them :)

Remote Backup

The 2nd itch has been bugging me for a long time though. In the example folder of the repo there is a command line tool called s3bak and for ages I have been using it to store my files. However it has one major disadvantage, the pushing and pulling is manual.

This is next to useless and my photos and suchlike have been getting into a state of disarray since doing things manually never works.

Recently I tried to use DropBox (but hated the fact that I didn't know what it was installing) and Ubuntu One. The latter was ok since a quick command u1sync did everything I wanted. However the free 2GB is no use for me and paying $10 a month for 50GB which I won't use is also just as useless.

Especially because AWS S3 is a pay-as-you-go service. I'll be using about 10GB I think.

S3SyncIt

Finally last weekend I decided to make a sync program and make it work like u1sync. I don't use Gnome so don't need integration there. I also don't want a FUSE filesystem built on S3. I want a local and fast filesystem which syncs correctly when I tell it to (either manually or in cron).

Anyway, I now have a solution. It's called s3syncit and it's dead easy. Just go:

$ s3syncit sync

... and you're done. If you get a conflict, then just choose between the local file and the remote:

$ s3syncit resolve filename[.remote]

S3SyncIt will not resolve your conflicts but makes it easy for you to do it yourself. It only really needs those two commands (and a config file in .s3syncit/config) so it's pretty easy to set up and use.

Finally, it all looks like it is working so give it a try and let me know what you think. Of course, don't use it on your production data just yet :)

Leave a comment

About Andy Chilton

user-pic I blog about Perl.