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: {
},
});