Introduction

Uplo

Handle file uploads to various storage services like Amazon S3, Google Cloud or etc. It also supports various type of ORM adapters, like Prisma.

Features

  • TypeScript ready
  • Direct uploads
  • Supports multiple services
  • Multiple ORM adapters
  • File analyzers

Getting started

Add @uplo/server (or @uplo/node if using Node) to your package.json

npm i @uplo/server

Install Adapter (for example Prisma)

npm i @uplo/adapter-prisma dataloader

Install Service (for example S3)

npm i @uplo/service-s3

Define uplo instance

import Uplo from '@uplo/server';
import PrismaAdapter from '@uplo/adapter-prisma';
import S3Service from '@uplo/service-s3';
 
const config = {
  privateKey: process.env.APPLICATION_SECRET, // Used to sign direct upload keys
  signedIdExpiresIn: 60 * 60, // Time how long a Signed ID is valid
};
 
const uplo = Uplo({
  config,
  adapter: new PrismaAdapter({ prisma }),
  services: {
    s3: S3Service({
      isPublic: false,
      region: process.env.AWS_REGION,
      bucket: process.env.AWS_BUCKET,
      accessKeyId: '*****',
      secretAccessKey: '*****',
    }),
  },
  attachments: {
  },
});