GithubHelp home page GithubHelp logo

isabella232 / vfs-http-adapter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from c9/vfs-http-adapter

0.0 0.0 0.0 82 KB

A Restful front-end to a vfs instance

License: MIT License

JavaScript 100.00%

vfs-http-adapter's Introduction

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 to target.
  • {"copyFrom": from} - copy a file from from to target.
  • {"linkTo": data} - create a symlink at target containing data.

vfs-http-adapter's People

Contributors

creationix avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.