Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Simple Amazon S3 Library for Google App Engine for Java
Branch: master
Pull request Compare This branch is even with handstandtech:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


======= About This Project =======
This project is a Java library for connecting to Amazon S3 from Google App Engine.

This project will possibly be updated, but will not be supported or maintained.  It's purpose on here is to "share the love" just as @ogrodnek did, where we were able to fork from.

More information available at:

======= Other Java Amazon S3 Libraries =======
The code is a mix of these libraries:
s3-simple (forked) ->
s3-shell ->
Java Base64 ->
jets3t ->

Commentary on other libraries:
jets3t and Amazon's SDK are great but they use the Apache Commons http client which doesn't work 100% on Google App Engine.  This is due to restrictions... namely, no threads, no sockets, and... other restrictions...

Amazon SDK for Java was also tried, but was unable to run on Google's App Engine due to the restrictions mentioned above. ->

======= Changes =======
- Added in the Ability to Create and Sign Policy Documents

- Initial Changes

======= Features =======
/** Create an S3Store Object and Set the Current Bucket **/
S3Store s3 = new S3Store(Constants.S3_DEFAULT_HOSTNAME, ACCESS_KEY, SECRET_KEY);

/** Sign an S3 URL **/
String signedUrl = s3.createSignedGETUrl(objectKey, validForInSeconds, isHttps);

/** Upload Binary Data to S3 (i.e. From the AppEngine Blobstore, etc) - App Engine Limits Uploads to 1MB **/
final Map<String, List<String>> headers = new HashMap<String, List<String>>();
headers.put("Content-Type", contentType);
s3.storeItem(key, bytes, Constants.ACL_PUBLIC_READ, headers);
Something went wrong with that request. Please try again.