My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Featured
Downloads
Wiki pages
Links

Description

baltic-avenue is an open source clone of the Amazon S3 REST API that runs on Google App Engine

Purpose

This project allows you to host a "private instance of S3" on top of Google's infrastructure (big table, etc), leveraging existing client S3 libraries and applications - no need to reinvent the wheel.

Getting Started

Download the project (or get the very latest from source) and run your own instance via the SDK dev server or on production GAE (see FrequentlyAskedQuestions: How do I host my own instance?)

or

Try out the public sandbox instance (see ClientSpecificConfiguration)

Status

Although the core S3 operations are implemented, this project is still very much in the proof-of-concept phase. i.e. ...

Currently Implemented

  • GET service (list buckets)

  • PUT/DELETE/HEAD bucket (create/delete bucket)
  • GET/PUT bucket acl
  • GET bucket (list bucket contents, including delimiter requests where delimiter = '/')
  • PUT/DELETE object (create/delete objects)
  • GET/HEAD object (get object contents and metadata)
  • Multiple user accounts per instance
  • User-based ACL operations (and "All Users" group to support public reads)
  • Log record info captured and saved to datastore
  • Realistic-looking error responses

Limitations

Still Pending

  • Support authenticated-read canned-access policy and authenticated-users group
  • Query string authentication
  • Request time too skewed
  • COPY object
  • Testing on non-ascii (and difficult chars) in bucket/keys
  • Conditional gets/range queries
  • POST object
  • Testing on concurrent access/transactions+entity groups
  • Performance tweaks - delayed imports and memcache
  • Location constraints?
  • Bucket access logging? (once/if GAE supports async processing)
  • Include object-size in log-record

Client Support

The following S3 client libraries/apps can be configured to use a baltic-avenue instance (see ClientSpecificConfiguration)

More Info

Powered by Google Project Hosting