azure-cdn
v1.0.0
Published
Deploy assets to an azure cdn (blob)
Downloads
35
Maintainers
Readme
azure-cdn
Deploy static assets to azure blob storage for consumption via cdn.
var uploadToAzure = require('azure-cdn');
uploadToAzure({
blobService: [ ... ], // arguments for azure#createBlobService
container: null, // the container name
containerOptions: {publicAccessLevel: 'blob'}, // container creation options (createContainerIfNotExists)
folder: '', // prefix for all blobs
metadata: {cacheControl: 'public, max-age=31556926'}, // applied to each blob
concurrency: 10 // number of active network requests with azure
erase: true, // erase all blobs in container/folder before uploading
zip: true, // gzip all blobs (use smallest)
test: true, // test run
log: function () {}, // log current operations
files: [ // file list
{ cwd: './public',
path: '/user/test/project/public/index.html' } // => cdn.com/myContainer/folder/index.html
...
]
})
.then(function () { ... })
.catch(function (error) { ... });
Grunt
An example grunt task. Where files are provided by the src
field in grunt options
var upload = require('azure-cdn');
var path = require('path');
module.exports = function (grunt) {
grunt.registerMultiTask('azure-cdn', 'Copy files to an azure storage blob', function () {
var asyncTask = this.async();
var options = this.options();
options.log = grunt.log.debug;
options.files = Array.prototype.concat.apply([], this.files.map(function (glob) {
return glob.src.map(function (file) {
return {path: path.resolve(glob.cwd, file), cwd: glob.cwd};
});
}));
upload(options).then(asyncTask)
.catch(function (err) {
grunt.log.error('Error while copying files to azure ' + err);
asyncTask(false);
});
});
};