wuyiqunLu
feat: change the upload flow (#17)
6b8f69a unverified
raw
history blame
1.09 kB
import { auth } from '@/auth';
import { getPresignedUrl } from '@/lib/aws';
import { nanoid } from '@/lib/utils';
/**
* @param req
* @returns
*/
export async function POST(req: Request): Promise<Response> {
const session = await auth();
const user = session?.user?.email ?? 'anonymous';
// if (!email) {
// return new Response('Unauthorized', {
// status: 401,
// });
// }
try {
const { fileName, fileType } = (await req.json()) as {
fileName: string;
fileType: string;
};
const id = nanoid();
const signedFileName = `${user}/${id}/${fileName}`;
const res = await getPresignedUrl(signedFileName, fileType);
return Response.json({
id,
signedUrl: res.url,
publicUrl: `https://${process.env.AWS_BUCKET_NAME}.s3.${process.env.AWS_REGION}.amazonaws.com/${signedFileName}`,
fields: res.fields,
});
} catch (error) {
return new Response((error as Error).message, {
status: 400,
});
}
}