Skip to content
A Restful front-end to a vfs instance
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
test-multipart.js Move from vfs to it's own repo Sep 20, 2012

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);

HEAD /any/path

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.

GET /path/to/file

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

GET /directory/path/with/slash/

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.

PUT /path/to/file

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

PUT /directory/path/with/slash/

Create a directory

DELETE /path/to/file

Delete a file.

DELETE /directory/path/with/slash/

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.
You can’t perform that action at this time.