wazproxy

an HTTP proxy that automatically signs Windows Azure storage requests

npm install wazproxy
10 downloads in the last month

Wazproxy is an HTTP proxy written in Node.js that automatically signs requests to Windows Azure blob storage for a given account. This is useful for developers who want to try out the Windows Azure REST API without having to deal with authentication. By running wazproxy and proxying web requests through it, you can use simple tools like curl or even a web browser to interact with Windows Azure storage.

Wazproxy is also useful for adapting existing apps to work with Windows Azure storage. For example, if you have an application that can consume a generic OData feed but doesn't support Windows Azure storage authentication, you can start wazproxy, change your proxy settings, and use the application as-is.

Installation

npm install wazproxy -g

Usage

Usage: wazproxy.js [options]

  Options:

    -h, --help               output usage information
    -V, --version            output the version number
    -a, --account [account]  storage account name
    -k, --key [key]          storage account key
    -p, --port [port]        port (defaults to 8080)

Examples

The following will list all the tables in the given account:

wazproxy -a <account> -k <key>
set http_proxy=127.0.0.1:8080
curl <account>.table.core.windows.net/tables

On Linux or OS X, use export instead of set.

The following will create a container (private, by default), upload a text blob into it, retrieve the blob, and finally delete the container.

curl <account>.blob.core.windows.net/testcontainer?restype=container -X PUT -d ""
curl <account>.blob.core.windows.net/testcontainer/testblob -X PUT -d "hello world" -H "content-type:text/plain" -H "x-ms-blob-type:BlockBlob"
curl <account>.blob.core.windows.net/testcontainer/testblob
# output: "hello world"
curl <account>.blob.core.windows.net/testcontainer?restype=container -X DELETE

The following will peek at a queue message:

curl <account>.queue.core.windows.net/myqueue/messages?peekonly=true

For the full details of the Windows Azure storage API, see the "Windows Azure Storage Services REST API Reference" on MSDN.

Notes

Wazproxy only proxies HTTP requests (not HTTPS). Any request that's not addressed to <account>.(blob|table|queue).core.windows.net is simply passed through unmodified, so you can proxy all traffic through wazproxy (including, for example, traffic from other browser tabs).

Wazproxy does not support the storage emulator, but pull requests are welcome.

npm loves you