mongo-db-filesystem-ex

1.0.1 • Public • Published

mongo-db-filsystem module creates a "window like explorer" tree structure of files and folders in Atlas MongoDB database.

Installation

This is a Node.js module available through the npm registry. Installation is done using the npm install command:

$ npm install mongo-db-filsystem

Usage

Environment variables

The following environment variables are required.

Evironment Variable Name Description
FILESYSTEM_DATABASE_URL URI connection string could reference a local database during development
ACCESS_TOKEN_SECRET A string generated by running require('crypto').randomBytes(64).toString() in the terminal will work as a secret
REFRESH_TOKEN_SECRET A string generated by running require('crypto').randomBytes(64).toString() in the terminal will work as a secret

Simple usage

const port = process.env.PORT || 3000;
const express = require('express');
const app = express();

require('mongo-db-filsystem')(app);

app.use(fileSystem);
app.use(express.json({ limit: "140mb", extended: true }));

app.listen(port, function () {
  console.log("Listening on port " + port);
})

Configuring mongo-db-filsystem

Options:

  • white_list: "http://127.0.0.1:5500, http://localhost:5000", //cors whitelist. The default: undefined
  • access_token_expiry: "15s", //default: 900s
  • cookie_max_age: 1000*60*60, //default: 1000*60*60*24 (1 day)
  • cookie_secure: false, //default: true

Simple usage with options

const port = process.env.PORT || 3500;
const express = require('express');
const app = express();

const options = {
  white_list: ["http://127.0.0.1:5500", "http://localhost:3000/"],
  access_token_expiry: "15s",
  cookie_max_age: 1000 * 60 * 60,
  cookie_secure: false
};
require('mongo-db-filsystem')(app, options);

app.use(fileSystem);
app.use(express.json({ limit: "140mb", extended: true }));

app.listen(port, function () {
  console.log("Listening on port " + port);
})

REST API Endpoints

mongo-db-filsystem REST API provides many documented endpoints, but also allows you to customize your own.

See endpoints doc for a full documentation of the endpoints.

Here are the endpoints provided by mongo-db-filsystem that perform CRUD operations on resources in REST style.

Method Endpoint Description
POST /connect Connects a registered user to mongo-db-filsystem
POST /re-connect Re-connects a previously connected user to mongo-db-filsystem
POST /disconnect Dis-connects a connected user from mongo-db-filsystem
POST /refresh_token Renew the access and refresh tokens of a connected user
POST /registerFs Register a new user to mongo-db-filsystem
POST /readFile Connects a registered user to mongo-db-filsystem
POST /readStream Re-connects a previously connected user to mongo-db-filsystem
POST /writeFile Dis-connects a connected user from mongo-db-filsystem
POST /appendFile Renew the access and refresh tokens of a connected user
POST /copyFile Register a new user to mongo-db-filsystem
POST /rename Connects a registered user to mongo-db-filsystem
POST /createFile Re-connects a previously connected user to mongo-db-filsystem
POST /access Dis-connects a connected user from mongo-db-filsystem
DELETE /removeFile Renew the access and refresh tokens of a connected user
DELETE /removeFolder Register a new user to mongo-db-filsystem
POST /stat Dis-connects a connected user from mongo-db-filsystem
POST /mkdir Renew the access and refresh tokens of a connected user
GET /config Renew the access and refresh tokens of a connected user
POST /config Renew the access and refresh tokens of a connected user
POST /tree Register a new user to mongo-db-filsystem

Customizing mongo-db-filsystem REST API

...
const app = express();

const { router, getFileSystem, authenticateToken } = require("./file-system-routes")(app);

router.get("/custom", authenticateToken, (req, res) => {
  const username = req.user.username;
  const fsPromises = getFileSystem(username).promises;
  console.log(fsPromises);
});

app.use(router);
...

Readme

Keywords

none

Package Sidebar

Install

npm i mongo-db-filesystem-ex

Weekly Downloads

1

Version

1.0.1

License

MIT

Unpacked Size

108 kB

Total Files

13

Last publish

Collaborators

  • cah12