2.1.6 • Published 6 hours ago

castor v2.1.6

Weekly downloads
32
License
MIT
Repository
github
Last release
6 hours ago

Content addressable storage - castor

An ES7 CAS designed file storage for nodejs with a simple API and robust implementation.

Build Status Coverage Status NPM version License Code style

API

const Storage = require('castor');
  // castor internal index file path
var store = new Storage('./some/path/index.json');

  // return an *index* to write and fetch file into
var index = store.getIndex('medias');

async Index.checkEntry(file_name, file_url, file_md5)

  // download, if needed, the requested file, store it in CAS and reference it into current index
  // file_url can be an url.parse'd object
await index.checkEntry("some/storage/path/file.mp4", "http://remoteurl.com/20320930293", "[CURRENT_MD5]");

Index.get(file_name)

// retrieve a file information from current index
index.get("some/storage/path/file.mp4") 
/* retrieve {
  file_size : (an integer),
  file_path : './some/path/00/1/[FULL_MD5]',
  file_md5 : '[FULL_MD5]',
 }
*/

Index.send(req, res, next)

// expose an http/express middleware to delivers content from an existing path
server.use(index.send.bind(index)) // (req, res, next)

Advanced usage

Storage.warmup

// move all existing (and non indexed files) files to CAS design
await store.warmup();

Index.reset()

//reset a local index file_path => hash mapping (no files are deleted at this time)
index.reset();

async Storage.purge()

//remove all unlinked file (files not referenced in any index) from storage folder
await storage.purge();

References

Credits

2.1.1

7 hours ago

2.1.6

6 hours ago

1.3.4

7 months ago

1.5.1

7 months ago

1.4.0

7 months ago

2.0.3

7 months ago

2.0.2

7 months ago

2.0.1

7 months ago

2.0.0

7 months ago

1.3.2

11 months ago

1.3.1

12 months ago

1.3.0

12 months ago

1.2.0

2 years ago

1.1.11

3 years ago

1.1.10

3 years ago

1.1.8

4 years ago

1.1.7

5 years ago

1.1.6

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.3

5 years ago

0.0.3

12 years ago

0.0.2

12 years ago

0.0.1

12 years ago