All Projects → kukhariev → node-uploadx

kukhariev / node-uploadx

Licence: MIT License
Node.js middleware for handling resumable uploads

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to node-uploadx

Bootstrap Fileinput
An enhanced HTML 5 file input for Bootstrap 5.x/4.x./3.x with file preview, multiple selection, and more features.
Stars: ✭ 5,097 (+29882.35%)
Mutual labels:  upload, resumable, chunked-uploads
Cookie Session
Simple cookie-based session middleware
Stars: ✭ 928 (+5358.82%)
Mutual labels:  middleware, expressjs
Vhost
virtual domain hosting
Stars: ✭ 686 (+3935.29%)
Mutual labels:  middleware, expressjs
Express Recaptcha
Implementation of google recaptcha v2 & V3 solutions for express.js
Stars: ✭ 104 (+511.76%)
Mutual labels:  middleware, expressjs
Cors
Node.js CORS middleware
Stars: ✭ 5,252 (+30794.12%)
Mutual labels:  middleware, expressjs
Serve Favicon
favicon serving middleware
Stars: ✭ 586 (+3347.06%)
Mutual labels:  middleware, expressjs
Serve Static
Serve static files
Stars: ✭ 1,217 (+7058.82%)
Mutual labels:  middleware, expressjs
Body Parser
Node.js body parsing middleware
Stars: ✭ 4,962 (+29088.24%)
Mutual labels:  middleware, expressjs
Cookie Parser
Parse HTTP request cookies
Stars: ✭ 1,683 (+9800%)
Mutual labels:  middleware, expressjs
Pure Http
✨ The simple web framework for Node.js with zero dependencies.
Stars: ✭ 139 (+717.65%)
Mutual labels:  middleware, expressjs
Csurf
CSRF token middleware
Stars: ✭ 2,183 (+12741.18%)
Mutual labels:  middleware, expressjs
Method Override
Override HTTP verbs.
Stars: ✭ 548 (+3123.53%)
Mutual labels:  middleware, expressjs
Kraken Js
An express-based Node.js web application bootstrapping module.
Stars: ✭ 4,938 (+28947.06%)
Mutual labels:  middleware, expressjs
Session
Simple session middleware for Express
Stars: ✭ 5,571 (+32670.59%)
Mutual labels:  middleware, expressjs
Swagger Express Middleware
Swagger 2.0 middlware and mocks for Express.js
Stars: ✭ 543 (+3094.12%)
Mutual labels:  middleware, expressjs
Express Fileupload
Simple express file upload middleware that wraps around busboy
Stars: ✭ 1,069 (+6188.24%)
Mutual labels:  middleware, upload
react-native-tus-client
React Native client for the tus resumable upload protocol.
Stars: ✭ 38 (+123.53%)
Mutual labels:  upload, tus
Express Openapi Validator
🦋 Auto-validates api requests, responses, and securities using ExpressJS and an OpenAPI 3.x specification
Stars: ✭ 436 (+2464.71%)
Mutual labels:  middleware, expressjs
Iris
The fastest HTTP/2 Go Web Framework. AWS Lambda, gRPC, MVC, Unique Router, Websockets, Sessions, Test suite, Dependency Injection and more. A true successor of expressjs and laravel | 谢谢 https://github.com/kataras/iris/issues/1329 |
Stars: ✭ 21,587 (+126882.35%)
Mutual labels:  middleware, expressjs
Apollo upload server Ruby
Stars: ✭ 124 (+629.41%)
Mutual labels:  middleware, upload

node-uploadx

npm version Build status commits since latest release

Node.js resumable upload middleware. Server-side part of ngx-uploadx Supported APIs: Google resumable v3.0, tus 1.0, multipart upload. Capable store uploads locally on disk, on Google Storage or on S3.

🌩 Installation

All-In-One:

npm install node-uploadx

Separate modules can also be used to save disk space and for faster installation process.:

  • core module:

    npm install @uploadx/core
  • Google Cloud Storage support:

    npm install @uploadx/gcs
  • S3 support:

    npm install @uploadx/s3

Usage

Express example:

const express = require('express');
const { uploadx } = require('@uploadx/core');

const app = express();
const opts = {
  directory: './files',
  onComplete: file => console.log('Upload complete: ', file)
};

app.use('/upload/files', uploadx(opts));

app.listen(3003);

Node http.Server GCS example:

const { Uploadx, GCStorage } = require('node-uploadx');
const http = require('http');
const url = require('url');

const storage = new GCStorage({ bucket: 'uploads' });
const uploads = new Uploadx({ storage });
uploads.on('completed', console.log);

const server = http
  .createServer((req, res) => {
    const pathname = url.parse(req.url).pathname;
    if (pathname === '/upload/files') {
      uploads.handle(req, res);
    } else {
      res.writeHead(404, { 'Content-Type': 'text/plan' });
      res.end('Not Found');
    }
  })
  .listen(3003);

Please navigate to the examples for more.

🛠 Options

Some available options: :

option type default value description
directory string "files" DiskStorage upload directory
bucket string "node-uploadx" S3 or GCS bucket
path string "/files" Node http base path
allowMIME string[] ["*\*"] Allowed MIME types
maxUploadSize string|number "5TB" File size limit
metaStorage MetaStorage Provide custom meta storage
metaStorageConfig MetaStorageOptions Configure metafiles storage
maxMetadataSize string|number "4MB" Metadata size limit
validation Validation Upload validation options
useRelativeLocation boolean false Use relative urls
filename Function File naming function
userIdentifier UserIdentifier Get user identity
onComplete OnComplete On upload complete callback
clientDirectUpload boolean Upload by a compatible client directly to the GCS
expiration ExpirationOptions Configuring the cleanup of abandoned and completed uploads

For Google Cloud Storage authenticate see GoogleAuthOptions. Also supported GCS_BUCKET, GCS_KEYFILE and GOOGLE_APPLICATION_CREDENTIALS environment variables.

For S3 buckets - Setting Credentials in Node.js and S3_BUCKET, S3_KEYFILE environment variable.

References

Contributing

If you'd like to contribute, please fork the repository and make changes as you'd like. Pull requests are welcome!

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].