Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Branch: master
Pull request Compare This branch is 19 commits behind feedhenry:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
config
examples
lib
test
.gitignore
LICENSE
README.md
makefile
package.json

README.md

openstack-storage

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.

Installation

npm install openstack-storage

Example usage 1

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

var authFn = async.apply(authenticate.getTokens, config);
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.addFile("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.

Tests

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.