![Dependencies](https://david-dm.org/larvit/larvitfiles.svg)
larvitfiles
Installation
npm i larvitfiles;
Usage
Load library
const LFiles = require('larvitfiles'),
db = require('larvitdb'),
fs = require('fs');
let lFiles;
db.setup(conf);
lFiles = new LFiles({
'db': db,
'storagePath': '/tmp/larvitfiles',
'log': new (new (require('larvitutils'))).Log(),
'mode': 'noSync',
'intercom': new (require('larvitamintercom'))('loopback interface'),
'exchangeName': 'larvitfiles',
'prefix': '/dbfiles/',
'amsync_host': null,
'amsync_minPort': null,
'amzync_maxPort': null
});
Add file from buffer
fs.readFile('/some/file.txt', function (err, data) {
let file;
if (err) throw err;
file = new lFiles.File({
'slug': 'slug/foo/bar.txt',
'data': data,
'metadata': {'metadata1': 'metavalue1', 'metadata2': ['multiple', 'values']}
}, function (err) {
if (err) throw err;
file.save(function (err) {
if (err) throw err;
console.log('file saved with uuid: ' + file.uuid);
console.log('metadata: ' + JSON.stringify(file.metadata));
console.log('slug: ' + file.slug);
});
});
});
Get file from storage
file = new lFiles.File({'slug': 'slug/foo/bar.txt'}, function (err) {
if (err) throw err;
console.log('file saved with uuid: ' + file.uuid);
console.log('metadata: ' + JSON.stringify(file.metadata));
console.log('slug: ' + file.slug);
});
Remove a file from storage
file = new lFiles.File({'slug': 'slug/foo/bar.txt'}, function (err) {
if (err) throw err;
file.rm(function (err) {
if (err) throw err;
console.log('File is now removed from storage');
});
});
List files in storage
List all files
files = new lFiles.Files();
files.get(function (err, result) {
if (err) throw err;
console.log(result);
});
Filter list based on metadata
files = new lFiles.Files();
files.filter.metadata.foo = 'bar';
files.filter.metadata.zoo = true;
files.filter.operator = 'and';
files.get(function (err, result) {
if (err) throw err;
console.log(result);
});
And if several values should exist on a single metadata do this:
files = new lFiles.Files();
files.filter.metadata.foo = ['bar', 'baz'];
files.get(function (err, result) {
if (err) throw err;
console.log(result);
});