covetfs
v1.1.1
Published
CovetFS is a distributed file system for Node.js. It comes with a JWT-protected API, with 24-hours tokens for file access.
Downloads
8
Maintainers
Readme
CovetFS - The Node.js File Vault
CovetFS is a distributed file system for Node.js. It comes with a JWT-protected API, with 24-hours tokens for file access.
Support us on Patreon to get priority updates on our development plan and voting power on new features.
Installation
Add CovetFS to your project with yarn or npm:
yarn add covetfs
npm install covetfs
Usage & Examples
You can spawn a server with:
const covet = require('covetfs');
covet.init({
name: 'my-server', // whatever you like
key: 'secret', // very long random secret key that only you will know
port: 26017, // server will listen on this port
url: 'http://yourdomain.tld:26017', // will be used to build your url, you can use a reverse proxy here
})
To connect a client:
const covet = require('./index');
covet.connect({
url: 'http://localhost:27020', // replace with your server address (careful with http or https)
key: 'REPLACE', // replace with the master access key that the server will console log on start
})
Add a file to the vault (client must be connected first):
let result;
try {
result = await covet.add({
path: __dirname + '/MYFILE.JPEG', // replace with your file
extra1: 'abc',
extra2: '123', // extra fields
});
} catch (e) {
return console.log('could not add file');
}
console.log('add', result); // result.id is the id of the file
Get a file from the vault (client must be connected first):
let result;
try {
result = await covet.get(FILE_ID);
} catch (e) {
return console.log('could not get file');
}
console.log('get', result); // result.url is the tokenized url for the file, valid for 24 hours
Remove a file from the vault (client must be connected first):
let result;
try {
result = await covet.remove(FILE_ID);
} catch (e) {
return console.log('could not remove file');
}
console.log('remove', result);
Contributing
Feel free to open an Issue or send us a direct message.
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
Author
- Honeyside - Honeyside
License
This project is licensed under the MIT License - see the LICENSE.md file for details.