Artur Paikin 6a5c25f7ab Merge pull request #1376 from transloadit/fix/progress-again 6 anos atrás
..
examples 9a841f693a refactor: rename service-dog -> companion 6 anos atrás
infra 17b7b29938 Change type to secret (#1387) 6 anos atrás
src 6a5c25f7ab Merge pull request #1376 from transloadit/fix/progress-again 6 anos atrás
test 46509d307a set separate auth cookie for each provider 6 anos atrás
.dockerignore 8367cb643e Attempt at fixing docker build /cc @kiloreux 6 anos atrás
.eslintrc.json 96388449f6 refactor: use single eslint command 6 anos atrás
.gitignore 9a841f693a refactor: rename service-dog -> companion 6 anos atrás
ARCHITECTURE.md 67af833fdb More uppy server -> companion renames (#1037) 6 anos atrás
Dockerfile 771baab716 companion: install git so we can fetch tus-js-client fork (#1404) 6 anos atrás
Dockerfile.test 771baab716 companion: install git so we can fetch tus-js-client fork (#1404) 6 anos atrás
KUBERNETES.md 67af833fdb More uppy server -> companion renames (#1037) 6 anos atrás
LICENSE 9a841f693a refactor: rename service-dog -> companion 6 anos atrás
Makefile 9a841f693a refactor: rename service-dog -> companion 6 anos atrás
README.md 116865284e Also cover the case when installing companion without a JS project /thx @canvasbh 6 anos atrás
docker-compose-dev.yml 9cd8c519b1 Update and fix docker-compose (#1076) 6 anos atrás
docker-compose-test.yml 9a841f693a refactor: rename service-dog -> companion 6 anos atrás
docker-compose.yml 9cd8c519b1 Update and fix docker-compose (#1076) 6 anos atrás
env.test.sh 67af833fdb More uppy server -> companion renames (#1037) 6 anos atrás
env_example 9cd8c519b1 Update and fix docker-compose (#1076) 6 anos atrás
nodemon.json 9a841f693a refactor: rename service-dog -> companion 6 anos atrás
package-lock.json 5a5e54fd0f Update lockfile [test] 6 anos atrás
package.json 459abae480 Merge branch 'master' into ig-uploads 6 anos atrás
tsconfig.json 9a841f693a refactor: rename service-dog -> companion 6 anos atrás

README.md

Companion

Build Status

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

If you don't have a Node.js project with a package.json you might want to install/run Companion globally like so: [sudo] npm install -g @uppy/companion@0.30.0.

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 GitHub 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

Deploy to heroku

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.

See full documentation