/cURLServer

Code for an AWS based cURL command server.

Amazon Web Services EC2 based cURL Server  (Most recent AMI: US-West, ami-1e32625b)

To see detailed documentation, launch the above AMI on a EC2 micro instance and view the Public DNS home page.
(or download http://github.com/mjhm/cURLServer/blob/master/cURLServer/var/www/html/index.html and view as HTML.)

The cURL Server is a web based tool that is most useful for patching protocol mismatches for file transfers among web
services.  For example Google App Engine can't directly read S3 buckets into it's Blobstore.  The cURL Server can patch
this by reading the S3 items into local files and posting those items to the GAE Blobstore.  Since the cURL Server is a
web service itself, this can all be done at the direction of the GAE application. 

Although the cURL Server was written with GAE as the most important use case, it is entirely independent of GAE.  Also
since the underlying cURL program has so much functionality, I can see a cURL Server instance being used for most any
situation where file communication between web services is awkward or impossible.

Key features of the cURL Server are:

1. Exposes all the functionality of command line cURL (from http://curl.haxx.se) as a web service.
2. Asynchronous as well as synchronous modes.
3. Web Client UI for constructing and testing requests.
4. Nothing to install.  Just start the instance.
5. GAE unit tests and usage examples. (curl_test.py)
6. Live accessible examples of JSON-RPC requests, python daemon, YUI3 JavaScript tools, request signing, etc.