NexusDocs Server is a storage engine designed for storing public and private files, providing simple RESTful API to manage. By written in modern javascript (by the power of Babel) and packed with the popular framework express, we can take the advantage of async coding and good concurrent performance.
NexusDocs can be used stand-alone or a proxy to multiple popular cloud storage service, This could be very helpful when you are going to store files in different cloud service.
It is also integrated with utilities for generating image thumbnail (by high performance image processing tool sharp), or converting document files into PDF (by unoconv).
This repository is a monorepo that we manage using Lerna. That means that we actually publish several packages to npm from the same codebase, including:
Package | Version | Docs | Description |
---|---|---|---|
nexusdocs-server |
NexusDocs Server | ||
nexusdocs-client |
API Client SDK |
- Providing uploading, downloading, viewing, searching, deletion operation of file (downloading and viewing will be redirected to provider URI).
- Managing different type of files by namespaces, each namespace can be associated to its own provider and bucket.
- File is uploading to NexusDocs, and then to the specified provider storage.
- When client is requesting an resource for, NexusDocs checks authority, and then redirecting to safe URI.
- Providing useful file format converting service, e.g. .doc to .pdf;
- Stores file history versions (to be done in latest future).
- Batch upload, download (supporting .zip, .rar, .tar.gz).
- Creating and snapshot and later restore from it, need not worry about data loss.
- Copying and moving files between different namespaces.
- Extracting attachment from a email body, useful for auto file receiving feature.
Provider | Driver | Description |
---|---|---|
gridfs | mongodb | Internel used GridFS provider |
alioss | ali-oss | The Aliyun OSS provider |