Monday, April 24th, 2006

S3 Javascript Bindings

There’s a new open-source project to access Amazon’s S3 storage service from Javascript. Creator Les Orchard explains:

  • There’s a SHA1 implementation for JavaScript.
  • The authentication scheme for Amazon’s S3 requires SHA1.
  • JavaScript-based apps can be served up from the S3 domain as files stored via S3.
  • All of this adds up to JavaScript apps hosted on S3 with AJAX-based read/write access to S3 itself.
  • Also: Imagine GreaseMonkey scripts using S3 as a universal configuration pool and long-term data store. (The configuration pool idea, by the way, came from Dave Winer.)

    We’ve talked in the past about offline data storage, whether via Flash or future browser enhancements. Holding data in the user’s own third-party store is a third option for storage, an alternative to conventional online storage as well as offline storage that allows the user to control their own data without having to maintain it locally.

    The service is ideal for Client-SOA apps, where the browser runs the entire UI and makes REST or RPC calls to the server, which responds with raw data. The app itself could presumably load from another URL, your local hard drive, a bookmarklet, or a plugin/extension/GM script (with varying levels of security risk involved).

    There’s already a nice demo app: S3 Ajax Wiki. In this case, the app loads from S3 itself, which is also possible in certain situations:

    Of course, since my demo wiki is sitting in an S3 bucket with a public-write ACL, everything’s open to vandalism and subversion (of the bad variety)- documents and application both. S3Ajax does allow authentication through your S3 credentials, though, so a private group with restrictive S3 ACLs could use this wiki successfully.

    Documentation on the S3 library is currently limited, but you can read more about the S3 Ajax Wiki here.

    Update: As mentioned in the comments below, there’s also a new online API,, that lets you access your own S3 file store from the browser. Right now, the service acts as a proxy, but it looks like they have plans for direct access to S3 in the future.

    Posted by Michael Mahemoff at 4:35 am

    3.6 rating from 22 votes


    Comments feed TrackBack URI

    Cool and Scary New AJAX Technology…

    I just read this article on Ajaxian about the new S3 Javascript Bindings.  Very cool!  They…

    Trackback by Jay Kimble -- The Dev Theologian — April 24, 2006

    A shameless plug in the context of this post:
    Last week we released a Ajax powered S3 app, which basically allows uploading, downloading, tagging, renaming, and sharing files through our site directly to a personal Amazon S3 account. There’s even an undocumented api, which exposes the files and meta data in to 3rd party projects. To us it was basically a web 2.0 proof-of-concept that went overboard, but the application should be fully workable even if there are still some items left on the todo list.

    The web site is, and you can test the application without registering by logging in with demo/demo as username and pwd.

    And there’s much more info about the application and the current status on our blog:

    Comment by Steffen Christensen — April 24, 2006 looks pretty interesting, though I was a little squicked out by submitting my S3 credentials to a 3rd party site.

    I suppose that’s hard to avoid, though it’s something I’ve tried to do with S3Ajax. I’ve been playing with Dojo’s storage module to retain the ID and key. Since the authentication signing happens in the browser, and I’m not using cookies, the credentials never leave the local machine. The other nice thing about S3Ajax is that the only servers you need are the S3 servers themselves.

    On the other hand, the one thing I’ve not been able to do in S3Ajax is actually upload a file from a user’s local filesystem.

    Comment by l.m.orchard — April 24, 2006

    Oh, and thanks for the mention, Michael!

    Comment by l.m.orchard — April 24, 2006

    Michael (and anyone else I guess),

    The giving over of S3 key (and id) is something that we’ve been struggling with. Luckily, Amazon’s ACL system means that we don’t need to store the user’s secret key, but it’d be better to avoid this all together. I guess Amazon isn’t really targeting services like ours, but hopefully, in time, they’ll let people sign requests with a few http redirects so even won’t have to ask for the secret key. Much like other api’s such as the flickr api is working now. (This would also help alleviate the complexity of signing up to a service, which is powered by personal S3 accounts.)

    One thing to look at for S3Ajax could be Mozilla’s build in support for reading the user’s local files (an example: If S3Ajax is used for very specifik purposes, this may be a workable method.

    Comment by Steffen Christensen — April 24, 2006

    […] mentions in the context of a discussion of the possibilities for using S3 together with JavaScript. […]

    Pingback by blog » Ajaxian: S3 JavaScript binding — April 24, 2006

    Yep, people have thought of storing greasemonkey data in S3 before:

    Comment by arantius — April 24, 2006

    Experiments with Amazon S3 Storage

    Some very cool experimentation going on with Amazon S3 Storage. Just check out
    Jeff must…

    Trackback by Alex Barnett blog — April 24, 2006

    Amazon S3 Roundup

    Amazon’s Simple Storage Service (S3 for short) is really hot lately. From the site:”Amazon S3 provides a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the…

    Trackback by Full Speed — April 25, 2006

    arantius: The link Jeremy mentions there points at my first thinking-out-loud about S3Ajax, FYI.

    Comment by l.m.orchard — April 25, 2006

    […] Ajaxian » S3 Javascript Bindings a new open-source project to access Amazon’s S3 storage service from Javascript (tags: javascript ajax amazon s3 web2.0 online storage) […]

    Pingback by Werner blogt » links for 2006-04-29 — April 29, 2006

    […] Ajaxian » S3 Javascript Bindings I just read this article on Ajaxian about the new S3 Javascript Bindings. … Ajaxian » S3 Javascript Bindings a new open-source project to access Amazon’s … […]

    Pingback by Harmonic Bindings - My Blog — May 4, 2006

    […] Ajaxian » S3 Javascript Bindings I just read this article on Ajaxian about the new S3 Javascript Bindings. … Ajaxian » S3 Javascript Bindings a new open-source project to access Amazon’s … […]

    Pingback by Ajaxian » S3 Javascript Bindings - Bindings — May 9, 2006

    […] Amazon’s S3 storage service has definitely changed the game. Storage and bandwidth seem to drop in price year over year (thanks to the build up and ultimate fall out of the dot-com era) but it has never reached such a level of commiditization. And there are plenty of players there to piggy back of Amazon’s new creation (heck, there are even Javascript bindings for the darn thing), but you knew it wouldn’t be long before someone took it to the next level. Enter Jungle Disk. A smart, easy to install, works like a mapped drive no matter where you are at software system piggy backing off the MOSS (massively-online-storage-system) and you have a match made in heaven – and there’s even a mac client of the software so you can do your drag and drop just like your windows counterparts. This software can have an immediate and direct impact on how you work. If all the marketing speak holds true then this really will be *the* backup and sync solution everyone has hoped for – no more duplicate drives, scheduled backups or RAID systems – just drag and drop and sync – no fuss. There’s even an encryption layer for those who’d like the extra privacy. I’m downloading it now and will provide further information here later on if this utility fits the bill. […]

    Pingback by Where storage goes to play. at EdgeCloud.__init__() — May 19, 2006

    […] Ajaxian S3 Javascript BindingsMonday, April 24th, 2006. S3 Javascript Bindings. There s a new open-source project to access Amazon s S3 storage service from Javascript. Creator Les Orchard explains […]

    Pingback by Ajaxian S3 Javascript Bindings - Bindings — July 23, 2006

    I read SH1 is already marked as unsafe to use, SH2 or other SH should be used.

    Comment by Nilesh — December 4, 2006

    I was looking for something like this but this is a little old but eventually found what I was looking for – – these guys are using S3 and the implementation is pretty slick. They are also talking about letting you use your own S3 Keys:

    Comment by theneteffect — May 15, 2008

    Leave a comment

    You must be logged in to post a comment.