@pylonide/vfs-http-adapter
v0.6.0
Published
A http middleware to wrap vfs instances and expose them via a RESTful interface
Downloads
46
Readme
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('http').createServer(require('stack')(
require('vfs-http-adapter')("/rest/", vfs)
)).listen(8080);
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
totarget
. - {"copyFrom": from} - copy a file from
from
totarget
. - {"linkTo": data} - create a symlink at
target
containingdata
.