Skip to content
This repository

A client implementation for Rackspace CloudFIles in node.js

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.md

node-cloudfiles

A client implementation for Rackspace CloudFiles in node.js

Installation

Installing npm (node package manager)

  curl http://npmjs.org/install.sh | sh

Installing node-cloudfiles

  npm install cloudfiles

Getting Rackspace Account

Usage

The node-cloudfiles library is compliant with the Rackspace CloudFiles API. Using node-cloudfiles is easy for a variety of scenarios: authenticating, creating and working with both containers and storage objects.

Getting Started

Before we can do anything with cloudfiles, we have to create a client with valid credentials. Cloudfiles will authenticate for you automatically:

  var cloudfiles = require('cloudfiles');
  var config = {
    auth : {
      username: 'your-username',
      apiKey: 'your-api-key'
    }
  };
  var client = cloudfiles.createClient(config);

Working with Containers

Rackspace Cloudfiles divides files into 'Containers'. These are very similar to S3 Buckets if you are more familiar with Amazon. There are a couple of simple operations exposed by node-cloudfiles:

  // Creating a container
  client.createContainer({ name: 'myContainer' }, function (err, container) {
    // Listing files in the Container 
    container.getFiles(function (err, files) {
      
    });
  });

Uploading and Downloading Files

Each Container has a set of 'StorageObjects' (or files) which can be retrieved via a Cloudfiles client. Files are downloaded to a local file cache that can be configured per client.

  // Uploading a file
  client.addFile('myContainer', 'remoteName.txt', 'path/to/local/file.txt', function (err, uploaded) {
    // File has been uploaded
  });
  
  // Downloading a file
  client.getFile('myContainer', 'remoteName.txt', function (err, file) {
    // File has been downloaded
    
    // Save it to a location outside the cache
    file.save({ local: 'path/to/local/file.txt' }, function (err, filename) {
      // File has been saved.
    });
    
  });

Roadmap

  1. Implement Storage Object metadata APIs.

Run Tests

All of the node-cloudfiles tests are written in vows, and cover all of the use cases described above.

  vows test/*-test.js --spec

Author: Charlie Robbins

Contributors: Fedor Indutny

Something went wrong with that request. Please try again.