visio / app /api /image /route.ts
mrlectus's picture
Upload 54 files
adf1923 verified
raw
history blame contribute delete
790 Bytes
import { NextRequest, NextResponse } from "next/server";
import { ListObjectsCommand, PutObjectCommand } from "@aws-sdk/client-s3";
import { s3 } from "@/lib/s3";
const Bucket = process.env.AWS_BUCKET_NAME;
export async function GET() {
const response = await s3.send(new ListObjectsCommand({ Bucket }));
return NextResponse.json(response?.Contents ?? []);
}
export async function POST(request: NextRequest) {
try {
const formData = await request.formData();
const file = formData.get("image") as File;
const Body = (await file.arrayBuffer()) as Buffer;
await s3.send(new PutObjectCommand({ Bucket, Key: file.name, Body }));
return NextResponse.json({
key: process.env.AWS_S3_URL + file.name,
});
} catch (e) {
console.error("error", e);
}
}