0.1.11 • Published 9 years ago

rest-fs v0.1.11

Weekly downloads
3
License
MIT
Repository
github
Last release
9 years ago

rest-fs

restful interface to a filesystem

usage

npm install rest-fs

to install

npm start

starts fileserver on port 3000

npm test

runs various file and folder test

npm start

starts server on port 3000 of your entire system

LOG=true for access log

DEBUG=* for debug info

app = require('express')();
restfs = require('rest-fs')
restfs(app);
app.listen(3000)

To use programmatically, pass in the app into restfs and it will add the routes. you can attach a function to modifyOut to manipulate file output. the function has one argument which is the full filepath and should return path to return

ETags

rest-fs supports ETags by default. Each api endpoint will return a strict ETag header that clients can utilize when making subsequent requests. Please see http://en.wikipedia.org/wiki/HTTP_ETag(this article) for more information on using ETags.

API

GET /path/to/dir/

list contents of directory

optional ?recursive = list recursively default false

returns: list of full file or folder paths (trailing slash tells if dir)

res.body = [ { "fullDirPath" }, ... ]

File Stats

?stats = Return file stats for the directory instead of file listing.

res.body = {
  dev: 16777220,
  mode: 16877,
  nlink: 31,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 604862,
  size: 1054,
  blocks: 0,
  atime: Thu Mar 05 2015 11:38:47 GMT-0800 (PST),
  mtime: Thu Mar 05 2015 10:52:41 GMT-0800 (PST),
  ctime: Thu Mar 05 2015 10:52:41 GMT-0800 (PST)
}

GET /path/to/file

returns contents of file if dir, redirect to dir path

optional ?encoding = default utf8

returns: res.body = { "file content" }

File Stats

?stats = Return file stats for the file instead of file's contents.

res.body = {
  dev: 16777220,
  mode: 16877,
  nlink: 31,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 604862,
  size: 1054,
  blocks: 0,
  atime: Thu Mar 05 2015 11:38:47 GMT-0800 (PST),
  mtime: Thu Mar 05 2015 10:52:41 GMT-0800 (PST),
  ctime: Thu Mar 05 2015 10:52:41 GMT-0800 (PST)
}

POST /path/to/file/or/dir

creates or overwrites file creates dir if it does not exist. renames or moves file if newPath exists

optional body.newpath = if exist, move/rename file to this location. body.clobber = if true will overwrite dest files (default false) body.mkdirp = if true will create path to new location (default false) body.mode = permissions of file (defaults: file 438(0666) dir 511(0777)) body.encoding = default utf8

optional for stream query.clobber = overwrite if exist query.mode = permissions of file (defaults: file 438(0666) dir 511(0777)) query.encoding = default utf8

returns: modified resource. (trailing slash tells if dir)

req.body = { "fullFileOrDirPath" }

PUT /path/to/file

creates file

optional body.mode = permissions of file (438 default 0666 octal) body.encoding = default utf8

returns: modified resource (trailing slash tells if dir)

req.body = { "fullFilePath" }

DEL /path/to/dir/

deletes folder if file returns error

returns:

req.body = {}

DEL /path/to/file

deletes file if folder returns error

returns:

req.body = {}
0.1.11

9 years ago

0.1.10

9 years ago

0.1.9

10 years ago

0.1.8

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.9

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.0

10 years ago