A http middleware to wrap vfs instances and expose them via a RESTful interface

HTTP Adapter

This module is a connect/stack middleware module that wraps a vfs instance and serves it via a HTTP RESTful interface.

The module is a setup function that creates a middleware instance.

var root = "http://localhost:8080/rest/";
var vfs = require('vfs-local')({
  root: process.cwd(),
  httpRoot: root,
  require('vfs-http-adapter')("/rest/", vfs)
console.log("RESTful interface at " + root);

All HEAD requests are converted to GET requests internally and act identical, except there is an internal flag in the vfs layer telling it to not stream the body.

Serve a file to the client as a stream. Supports etags and range requests.

Serve a directory listing as a JSON document.

This is served as a streaming json document with a weak etag (since the order of the entries is not defined.) It supports conditional GET requests

See vfs.readdir below for the format of the JSON.

Recieve a file from the client and save it to the vfs. The file body is streamed.

Create a directory

Delete a file.

Delete a directory (not recursive)

POST /path/to/target

POST is used for various adhoc commands that are useful but don't fit well into the RESTful paradigm. The client sends a JSON body containing the request information.

Currently this includes:

  • {"renameFrom": from} - rename a file from from to target.
  • {"copyFrom": from} - copy a file from from to target.
  • {"linkTo": data} - create a symlink at target containing data.