From 02b654917bb8877dc470f15ac3bc85dab42be5b1 Mon Sep 17 00:00:00 2001 From: tonyrewin Date: Wed, 21 Dec 2022 08:40:26 +0300 Subject: [PATCH] fix-s3 --- src/pages/api/upload.ts | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/pages/api/upload.ts b/src/pages/api/upload.ts index 3113894b..d7dd8db1 100644 --- a/src/pages/api/upload.ts +++ b/src/pages/api/upload.ts @@ -1,8 +1,20 @@ // pages/api/upload.ts -import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3' +import { S3Client, PutObjectCommand, PutObjectCommandInput } from '@aws-sdk/client-s3' import { createPresignedPost } from '@aws-sdk/s3-presigned-post' +export async function putToS3(fileObject, presignedUrl) { + const requestOptions = { + method: 'PUT', + headers: { + 'Content-Type': fileObject.type + }, + body: fileObject + } + const response = await fetch(presignedUrl, requestOptions) + return await response +} + export default async function handler(req, res) { const s3Client = new S3Client({ region: process.env.S3_REGION || 'eu-west-1', @@ -11,8 +23,7 @@ export default async function handler(req, res) { secretAccessKey: process.env.S3_SECRET_KEY } }) - - const post = await createPresignedPost(s3Client, { + const presignedUrl = await createPresignedPost(s3Client, { Bucket: process.env.S3_BUCKET_NAME || 'discours-io', Key: req.query.file, Fields: { @@ -24,6 +35,7 @@ export default async function handler(req, res) { ['content-length-range', 0, 22 * 1048576] // up to 22 MB ] }) - - res.status(200).json(post) + const result = await putToS3(req.query.file, presignedUrl) + console.debug(result) + res.status(200).json(presignedUrl) }