UNPKG

elfinder-node

Version:

A NodeJS connector/backend for elFinder file manager

82 lines (58 loc) 2.49 kB
## elFinder NodeJS Connector [![Tests](https://github.com/dkyeremeh/elfinder-node/actions/workflows/int-test.yml/badge.svg)](https://github.com/dkyeremeh/elfinder-node/actions/workflows/int-test.yml) [![cov](https://dkyeremeh.github.io/elfinder-node/badges/coverage.svg)](https://github.com/dkyeremeh/elfinder-node/actions) This package allows you to use [elFinder file manager](https://github.com/Studio-42/elFinder) with Nodejs. It currently implements LocalFileStorage only. Work is being done to allow ftp, ssh and cloud storage compatibility. ## Demo https://studio-42.github.io/elFinder/ ## Installation ```sh npm install elfinder-node --save ``` or ```sh yarn add elfinder-node ``` ## Usage This package should be implemented as a middleware for Express server. You can see an example of how this package is used [here](/tests). Below is a summary of how it is used: ```javascript const express = require('express'); const app = express(); const elFinder = require('elfinder-node'); const roots = [ { driver: elFinder.LocalFileStorage, URL: '/uploads/', //Required path: '/path/to/dir', //Required permissions: { read: 1, write: 1, lock: 0 }, }, { driver: elFinder.LocalFileStorage, URL: '/404/', //Required path: 'private', //Required permissions: { read: 1, write: 0, lock: 1 }, }, ]; app.use('/connector', elFinder(roots)); app.listen(process.env.PORT || 8000); ``` ## Configuration The connector takes an array of volumes. All volumes are local files and must be created before the connector is initiated - `driver` [optional] - The volume driver to use. Only LocalFileStorage is implemented at the moment and is the default - `URL` [Required] - the url which will be used to resolve files - `path` [Required] - The location of the folder - `permissions` [optional] - An object containing the file permissions. The permissions will apply to everyone if you use an object as shown in the example above. You can also use a custom function which returns an object containing the permissions. This is useful for a multi-user system. ```javascript permissions: function (path) { if (user.canAccess(path)) { return { read: 1, write: 1, lock: 0 }; } else return { read: 0, write: 0, lock: 1 }; }; ``` ## Contributing There is more work to be done to make this project great. View the [ROADMAP](/ROADMAP.md) for a list of tasks to be done ## Credits Most of the work was done by [@quantv](https://github.com/quantv)