Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

uppy-server

Package Overview
Dependencies
Maintainers
5
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

uppy-server

Almost as cute as a Puppy :dog:

  • 0.6.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
27
decreased by-15.62%
Maintainers
5
Weekly downloads
 
Created
Source

uppy-server

Uppy logo — a superman puppy in a pink suit

Build Status

Uppy-server is a server integration for Uppy file uploader.

It handles the server-to-server communication between your server and file storage providers such as Google Drive, Dropbox, Instagram, etc.

As of now uppy-server is integrated to work with:

  • Google Drive
  • Dropbox
  • Instagram
  • Local disk

Install

npm install uppy-server

Configure

Once uppy-server is insatlled you need to set the following environment variables

export UPPY_ENDPOINT="YOUR UPPY CLIENT URL"
export UPPYSERVER_DOMAIN="YOUR SERVER DOMAIN"
export UPPYSERVER_PROTOCOL="YOUR SERVER PROTOCOL"

# If used with Dropbox
export UPPYSERVER_DROPBOX_KEY="YOUR DROPBOX KEY"
export UPPYSERVER_DROPBOX_SECRET="YOUR DROPBOX SECRET"

# If used with Google Drive
export UPPYSERVER_GOOGLE_KEY="YOUR GOOGLE KEY"
export UPPYSERVER_GOOGLE_SECRET="YOUR GOOGLE SECRET"

# If used with Instagram Drive
export UPPYSERVER_INSTAGRAM_KEY="YOUR INSTAGRAM KEY"
export UPPYSERVER_INSTAGRAM_SECRET="YOUR INSTAGRAM SECRET"

If you want to store uploads on your server's local disk, please set the following env variable as well

export UPPYSERVER_DATADIR="PATH/TO/UPLOAD/DIRECTORY "

Usage

Please ensure that the required env varaibles are set before runnning/using uppy-server. See.

Plug to already existing server


var express = require('express')
var bodyParser = require('body-parser')
var uppy = require('uppy-server')

var app = express()
app.use(bodyParser.json())
...
// be sure to place this anywhere after app.use(bodyParser.json())
app.use(uppy.app())

To enable uppy socket for realtime feed to the client while upload is going on, you call the socket method like so.

...
var server = app.listen(PORT)

uppy.socket(server)

Run as standalone server

node .node_modules/uppy-server/lib/start-standalone.js

If you cloned the repo from gtihub and want to run it as a standalone server, you may also run the following command from within its directory

npm run start:production

Adding Custom Providers

As of now, uppy-server supports both Google Drive and Dropbox out of the box, but you may also choose to add your custom providers. You can do this by passing the customPrivders option when calling the uppy app method.

let options = {
    customProviders: {
        myprovidername: {
            config: {
                authorize_url: "https://mywebsite.com/authorize",
                access_url: "https://mywebsite.com/token",
                oauth: 2,
                key: "[CLIENT_ID]",
                secret: "[CLIENT_SECRET]",
                scope: ["read", "write"]
            },
            module: require('/path/to/provider/module')
        }
    }
}

uppy.app(options)

The customProviders option should be an object containing each custom provider. Each custom provider would in turn be an object with two keys, config and module. The config option would contain Oauth API settings, while the module would point to the provider module.

Development

  1. To setup uppy-server for local development, please clone the repo and install like so:
git clone https://github.com/transloadit/uppy-server && cd uppy-server && npm install
  1. Configure your enviorment variables by copying the env.example.sh file to env.sh and edit it to its correct values.
cp env.example.sh env.sh
$EDITOR env.sh
  1. To start the server simply run:
npm run start

This would get the uppy-server running on http://localhost:3020.

It also expects the uppy client to be running on http://localhost:3452

Running example

An example server is running at http://server.uppy.io, which is deployed via Frey, using the following Freyfile.

All the secrets are stored in env.infra.sh, so using env.infra.example.sh, you could use the same Freyfile but target a different cloud vendor with different secrets, and run your own uppy-server.

Logging

Requires Frey, if you haven't set it up yet type

npm run install:frey

afterwards, production logs are available through:

npm run logtail

This requires at least the FREY_ENCRYPTION_SECRET key present in your ./env.sh.

FAQs

Package last updated on 21 Jul 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc