Monday, January 15, 2007

Amazon S3 Tools

We ftp our client's database's back to our office nightly. This gives them an off site backup and it gives us quick access to their data to help support them. The problem is that as our client base has grown we have run into bandwidth limits at our office.

We could use a hosted ftp site, but I thought it might be worth trying Amazon's Simple Storage Service (S3).

The catch is that authentication is done with HMAC-SHA1 which we've never implemented for Suneido. So instead of writing our own interface to S3 I figured we could simply call someone else's command line tool.

There are quite a few available tools for S3. Here are some that I tried:

s3cmd - Ruby

#Sh3ll - C#

jSh3ll - Java

s3tools - Python

s3curl - Perl

I wanted something that would be easy to deploy on our clients, preferably without installing a language run-time. The best for this appeared to be #Sh3ll which was an exe that only required .Net 1.1 which should be installed on most recent Windows machines. However, there are tools to turn Perl, Python, or Ruby programs into standalone executables so that might be a deployment solution.

But the only one I could get to work consistently for large files was jSh3ll which requires Java 5. All the other tools give timeout errors. I'm not sure what jSh3ll is doing different, or whether Java just has better network support.

The question is whether it's practical to require the Java runtime to be installed on our customers servers. It doesn't seem unreasonable to me, but some people are touchy about it.

PS. There is a nice Firefox extension for S3

4 comments:

GiBo said...

Hi there. I've found yet another tool called s3cmd :)

It's a Python package from amazon s3 tools project. I've been using the Ruby s3cmd.rb before but months ago found the Python s3cmd and never looked back.

Anonymous said...

You have 2 others tools in Java:
s3 upload applet with resume, policy and MD5 support.

And s3 explorer applet which allows to delete, upload, download, rename, copy and update ACL.

S3 Browser said...

Hi,

You can also use S3 Browser - freeware Amazon S3 client for Windows.

website: http://s3browser.com

Alexey said...

Another alternative would be to use S3fm, a online file manager for Amazon S3.

http://s3.amazonaws.com/s3fm/index.html

Really slick and fast app with plenty of usable features.

Another good thing its way more secure than all other online alternatives, since it runs entirely in your browser and communicates with S3 directly with no intermediary web sites.