Erlang bindings for Amazon S3 storage web service
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


s3erl: an erlang wrapper for Amazon's S3 storage service

Author:  Andrew Birkett <>

Version: 0.1
Date:    2007/12/07

What is it?

Amazon's S3 storage service is a "pay as you go" service for storing
files.  You can use it to serve web content, backup your files, etc.

This s3erl library provides easy access to S3 for erlang applications.

More info at:


- OTP-R12B (released on 2007/12/05).  Required due to a bug in inets'
  handling of the HTTP 204 code [bug OTP-6982] which is heavily used by
  S3.  Get it at

- An Amazon Web Services account - see

Installation and test

$ tar zxvf s3erl-0.1.tar.gz
$ cd s3erl-0.1
$ make
$ echo "code:add_pathz(\"$PWD/ebin\")." >> ~/.erlang

$ erl
1> s3test:run( "Your Access Key Id", "Your Secret Access Key", "A name for a bucket test").
2> q().

The test will execute the following steps

 - list all of your buckets
 - create the test bucket (the name is the 3rd argument)
 - create a new object in that bucket
 - list all the objects in that bucket
 - delete the object
 - delete the bucket.

S3 has a single namespace for buckets, so you need to choose a unique
bucket name for this test.  

Version History

v0.1 - 2007/12/07

  - First release, "works for me" (tm)
  - Bucket operations: list, create, delete
  - Object operations: read, write, list, delete

 Missing features:
  - Improved error handling
  - Support for EU-based S3 buckets
  - Support for streaming objects to/from disk (inets supports streaming
    to disk, but not from disk just now) (harder)


Released under the GNU General Public License v2.


Patches, bug reports and general feedback to please!