📦 EqualifyEverything / equalify-v2-api

📄 uploadImage.ts · 17 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17import { event, getMimeExtension, isStaging } from "#src/utils";
import { randomUUID } from 'crypto'
import { S3 } from "@aws-sdk/client-s3";
const s3 = new S3();

export const uploadImage = async () => {
    const ContentType = event.body.base64.split(';')[0].split('data:')[1];
    const key = `${randomUUID().replaceAll('-', '')}.${getMimeExtension(ContentType)}`;
    await s3.putObject({
        Bucket: `${process.env.S3}-files${isStaging ? '-staging' : ''}`,
        Key: `${key}`,
        ContentEncoding: 'base64',
        ContentType,
        Body: Buffer.from(event.body.base64.replace(/^data:.+;base64,/, ""), 'base64'),
    });
    return JSON.stringify(key);
}