The Node.js packages for Azure are fun to work with. Here’s a little walkthrough for building an Express app to display the blobs in an Azure storage container.
1. Create an application with Express.
2. Install the Windows Azure Client Library for node (npm install azure)
3. When Express created the application, it should have added a route to send a request for the root of the site to routes.index. In other words, the app.js file will look like the following.
var express = require('express')
, routes = require('./routes')
, path = require('path');
var app = express();
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(app.router);
app.get('/', routes.index);
app.listen(app.get('port'), function(){
console.log('Listening on ' + app.get('port'));
});
4. The index function is where the code consumes the Azure API and connects to the blob service, fetches a list of all the blobs in a container, and renders a view to display the blobs.
var azure = require('azure');
exports.index = function(request, response) {
var accessKey = 'yourKey';
var storageAccount= 'yourName';
var container = 'yourContainerName';
var blobService = azure.createBlobService(storageAccount, accessKey);
blobService.listBlobs(container, function(error, blobs) {
response.render('index', {
error: error,
container: container,
blobs: blobs
});
});
}
You can pass the storage account name and the access key to createBlobService, or pass no parameters and define the environment variables AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_ACCESS_KEY.
5. Finally, the Jade view to dump blob information into the browser.
extends layout
block content
h1 Blob listing for #{container}
if error
h3= error
if blobs
h3= container
table
tr
th Name
th Properties
- each blob in blobs
tr
td= blob.name
td
ul
- each value, name in blob.properties
if value
li= name + ":" + value
Coming soon – Node.js and Azure Table Storage
OdeToCode by K. Scott Allen