S3 Proxy for Google App Engine
Python JavaScript C
Failed to load latest commit information.
app Fixing using bucket name in path instead of subdomain May 13, 2010
lib Fixing last modified in json Dec 14, 2008
public Renaming Mar 8, 2010
test importing Sep 26, 2008
.gitignore fixing docs Oct 3, 2008
License.txt importing Sep 26, 2008
README.md Updating documentation Feb 21, 2009
index.yaml importing Sep 26, 2008
test.py Docs for test Feb 15, 2009



Amazon S3 Proxy for Google App Engine.

The idea is to have a proxy to act in between S3 and browsers or other devices.

Questions? See shrub-gae google group

Examples of formats that Shrub exposes are:

  • RSS
  • HTML
  • JSON
  • XSPF
  • HTML/Tape (like MuxTape/OpenTape)

  • The web app: app/

  • The main library: shrub/
  • Third party libraries: lib/
  • Static assets: public/
  • Tests: test/


To run locally:

  1. Clone the repo: git clone git://github.com/gabriel/shrub.git
  2. Start up GoogleAppEngineLauncher (Get GoogleAppEngine SDK + Launcher at http://code.google.com/appengine/)
  3. Right click on screen, and choose Add Existing
  4. Choose path to cloned repo.
  5. Hit run.
  6. Go to http://localhost:8080/

Other Libraries

Main leaf icon was purchased from iStockPhoto and is licensed by me (Gabriel Handford).


The following changes were made to libraries to handle certain features:

  • simplejson has some changes to automatically encode non-encodable data types via json method if an object responds to it.
  • id3reader has some changes to allow it to parse from a buffer, and also to be able to read truncated ID3 tag data.


To run the tests:

Copyright 2008 Gabriel Handford