Skip to content
No description or website provided.
JavaScript Makefile
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
LICENSE Update Feb 14, 2014

openstack-storage NPM version

A node.js client library for interacting with Openstack Storage (Swift)

Copyright 2012, FeedHenry Ltd. Licensed under the MIT license, please see the LICENSE file. All rights reserved.


npm install openstack-storage

Example usage 1

var async = require('async');
var storage = require('storage');
var authenticate = require('authenticate');

## get an authentication function. config formats are described in lib/authenticate.js
## use one of these:
var authFn = async.apply(authenticate.getTokensKeystone, config); // for keystone auth
var authFn = async.apply(authenticate.getTokensNative, config); // for native auth (swauth or tempauth)

var storageSwift = new storage.OpenStackStorage (authFn, function(err, res, tokens) {
  console.log('Storage constructor - err: ', err, ', tokens: ', tokens);
  var containers = storageSwift.getContainers(function(err, containers) {
    console.log('getCOntainers - err: ', err, ', containers: ', containers);
    // containers is an array of objects [{name: "Name1"...}, ...]

Example usage 2

// Create a container called "EngTest"
storageSwift.createContainer("EngTest", function (err, statusCode) {});

// upload a local file test.png to a container called "EngTest" naming the remote file: file1.png 
storageSwift.putFile("EngTest", {remoteName:'file1.png', localFile:'./test.png'}, function(err, statusCode) {});

// delete a remote file: file1.png from a container called "EngTest"
storageSwift.deleteFile("EngTest", 'file1.png', function (err, statusCode) {})

// delete a container
storageSwift.deleteContainer("EngTest", function (err, statusCode) {});

See the examples folder for more sample API usage.


The tests use mocha and require access to an Openstack compliant Identity/Storage service. The tests load a config file called testconfig.json in the config directory, there is a sample provided as testconfig-sample.json, but the user credentials will have to be entered. The timeout for the tests has been specified at 10 seconds in the package.json file, to allow for testing against a slow remote server.

"test": "mocha --ui tdd --globals writeln --reporter spec --timeout 10000"
Something went wrong with that request. Please try again.