in tutorials-and-examples/vector-databases/NEXT-2024-Weaviate-Demo/demo-website/app/api/upload/route.ts [5:45]
export async function POST(request: NextRequest) {
const data = await request.formData();
const file: File | null = data.get("file") as unknown as File;
if (!file) {
return NextResponse.json(
{ error: "Internal Server Error" },
{ status: 500 }
);
}
const bytes = await file.arrayBuffer();
const buffer = Buffer.from(bytes);
try {
//await uploadToGCS(file, buffer);
const { Storage } = require("@google-cloud/storage");
const storage = new Storage();
console.log("Uploading file to GCS...");
await storage
.bucket(process.env.GCS_BUCKET)
.file(file.name)
.save(Buffer.from(buffer))
console.log("File uploaded complete");
return NextResponse.json({
link:
"https://storage.googleapis.com/" +
process.env.GCS_BUCKET +
"/" +
file.name,
})
} catch (error) {
console.log(error);
return NextResponse.json(
{ error: "Internal Server Error" },
{ status: 500 }
);
}
}