|
%!s(int64=6) %!d(string=hai) anos | |
---|---|---|
.. | ||
examples | %!s(int64=6) %!d(string=hai) anos | |
infra | %!s(int64=6) %!d(string=hai) anos | |
src | %!s(int64=6) %!d(string=hai) anos | |
test | %!s(int64=6) %!d(string=hai) anos | |
.dockerignore | %!s(int64=6) %!d(string=hai) anos | |
.eslintrc.json | %!s(int64=6) %!d(string=hai) anos | |
.gitignore | %!s(int64=6) %!d(string=hai) anos | |
ARCHITECTURE.md | %!s(int64=6) %!d(string=hai) anos | |
Dockerfile | %!s(int64=6) %!d(string=hai) anos | |
Dockerfile.test | %!s(int64=6) %!d(string=hai) anos | |
KUBERNETES.md | %!s(int64=6) %!d(string=hai) anos | |
LICENSE | %!s(int64=6) %!d(string=hai) anos | |
Makefile | %!s(int64=6) %!d(string=hai) anos | |
README.md | %!s(int64=6) %!d(string=hai) anos | |
docker-compose-dev.yml | %!s(int64=6) %!d(string=hai) anos | |
docker-compose-test.yml | %!s(int64=6) %!d(string=hai) anos | |
docker-compose.yml | %!s(int64=6) %!d(string=hai) anos | |
env.test.sh | %!s(int64=6) %!d(string=hai) anos | |
env_example | %!s(int64=6) %!d(string=hai) anos | |
nodemon.json | %!s(int64=6) %!d(string=hai) anos | |
package.json | %!s(int64=6) %!d(string=hai) anos | |
tsconfig.json | %!s(int64=6) %!d(string=hai) anos |
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
npm install @uppy/companion
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:
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)
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 GitHub and want to run it as a standalone server, you may also run the following command from within its directory
npm start
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
Companion can also be deployed to Heroku
mkdir uppy-companion && cd uppy-companion
git init
echo 'export COMPANION_PORT=$PORT' > .profile
echo 'node_modules' > .gitignore
echo '{
"name": "uppy-companion",
"version": "1.0.0",
"scripts": {
"start": "companion"
},
"dependencies": {
"@uppy/companion": "^0.17.0"
}
}' > package.json
npm i
git add . && git commit -am 'first commit'
heroku create
git push heroku master
Make sure you set the required environment variables.