Package Exports
- @uppy/companion
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@uppy/companion) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Companion
Companion 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. Companion is not a target to upload files to. For this, use a https://tus.io server (if you want resumable) or your existing Apache/Nginx server (if you don't). See here for full documentation
Install
npm install @uppy/companion
Usage
companion may either be used as pluggable express app, which you plug to your already existing server, or it may simply be run as a standalone server:
Plug to already existing server
var express = require('express')
var bodyParser = require('body-parser')
var session = require('express-session')
var uppy = require('@uppy/companion')
var app = express()
app.use(bodyParser.json())
app.use(session({secret: 'some secrety secret'}))
...
// be sure to place this anywhere after app.use(bodyParser.json()) and app.use(session({...})
const options = {
providerOptions: {
google: {
key: 'GOOGLE_KEY',
secret: 'GOOGLE_SECRET'
}
},
server: {
host: 'localhost:3020',
protocol: 'http',
},
filePath: '/path/to/folder/'
}
app.use(uppy.app(options))
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, options)
Run as standalone server
Please ensure that the required env variables are set before runnning/using companion as a standalone server. See.
$ companion
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 start
Run as a serverless function
Companion can be deployed as a serverless function to AWS Lambda or other cloud providers through serverless
. Check this guide to get started.
After you have cloned the repo go inside examples/serverless
:
cd examples/serverless
You can enter your API Keys inside the serverless.yml
file:
INSTAGRAM_KEY: <YOUR_INSTAGRAM_KEY>
INSTAGRAM_SECRET: <YOUR_INSTAGRAM_SECRET>
When you are all set install the dependencies and deploy your function:
npm install && sls deploy