A collection of Google App Engine web services
Pull request Compare This branch is even with benjaminpearson:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
appimagedemo
appmaildemo
libs/php
README

README

RELEASE HISTORY
------------------------------------------------------------------------------------------------------------

Update - Released Jan 4th 2011
------------------------------------------------------
- AppMail: Added support for HTML emails with plain text fallback. Instead of passing "body" param, you now pass "plain" and optionally "html" POST params.

AppImage Update: On December 2nd, the GAE team released a significant update that now allows for images upto 32MB to be sent to your GAE apps. This basically renders AppImage no longer necessary. The code was originally written as a work around for the old 1MB limit. See Google's blog post about the newest updates to GAE: http://googleappengine.blogspot.com/2010/12/happy-holidays-from-app-engine-team-140.html


AppImage Version 2.0 - Released Feb 16th 2010
------------------------------------------------------
- GAE: Includes support for working with files larger than 1mb (using GAE Blobstore - Billing enabled accounts only)
- GAE: XML now used in request responses making it easier to check success and failure
- GAE: Examples added to illustrate storage of multiple thumbnail sizes
- GAE: Logging added to make it easier to see how the application is running in GAE Dashboard (should be removed for production environments)
- PHP: Upload method now requires a filesize argument to be passed (not backwards compatible with previous release)
- PHP: REST helper POST method updated to follow redirections during CURL operation in order for Blobstore calls to work
- PHP: XML helper added to read responses
- PHP: Tests updated to include both a small and large image and assertions to check image md5 hashes

Corresponding blog post: http://developinginthedark.com/posts/large-image-resizing-for-google-app-engine


PROJECT DETAILS
------------------------------------------------------------------------------------------------------------

About
------------------------------------------------------
A collection of Google App Engine web services for outsourcing common tasks for web applications to a larger service provider - in this case Google's App Engine infrastructure. Currently the collection includes an Email app and Image Manipulation app with PHP/CakePHP libraries for interacting with them.

Current Web Services
------------------------------------------------------
AppImage - A Google App Engine app that allows you to store, view and manipulate images.
AppMail - A Google App Engine app that simply allows you to send emails.

Setup
------------------------------------------------------
If you haven't already change the name of the folders from "appimagedemo"/"appmaildemo" to the names of your GAE apps. You'll also need to modify app.yaml "application:" config variable to the same name.

You'll need to set the "AUTH" constant in main.py to include your IP address and API Key. The API Key is just a random string, you just need to ensure that in your requests you pass the same random string to the App Methods that require it.

Authentication
------------------------------------------------------
Both applications include an authentication aspect to stop others using the app, data, and bandwidth. The authentication works by requiring an API Key to be passed when making requests to certain application methods. This API Key is then looked up in the "AUTH" dictionary in main.py which has a corresponding IP Address. If the requesters IP Address matches the one corresponding the API Key provided then the request will continue, if they don\'t match an exception is raised and the request is denied.

Libraries
------------------------------------------------------
Currently a PHP library is included for both web services. These libraries were designed as CakePHP vendors but should work fine in any PHP project. It would be great to see some more libraries for other languages, so please feel free to contribute new libraries and/or modify the existing ones.

References
------------------------------------------------------
For more info, check out the corresponding blog post at http://developinginthedark.com/posts/revving-with-google-app-engine
Information about AppImage Version 2.0: http://developinginthedark.com/posts/appimage-updated-large-image-support-for-google-app-engine

AppImage is based on Appspotimage: http://code.google.com/p/appspotimage/
They have an excellent tutorial and show how a Google App Engine app can be integrated with 3Scale (an SaaS API Management tool)

Also check out Google's docs
Google App Engine Mail Docs: http://code.google.com/appengine/docs/python/mail/sendingmail.html
Google App Engine Image Docs: http://code.google.com/appengine/docs/python/images/imageclass.html
Google App Engine Quotas Information: http://code.google.com/appengine/docs/quotas.html