2.1.6 • Published 6 hours ago
castor v2.1.6
Content addressable storage - castor
An ES7 CAS designed file storage for nodejs with a simple API and robust implementation.
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
- idjem
- 131
- beaver drawing by Lincung Studio
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