Files
FTP/app/api/files/[id]/download/route.ts
asabizanjo 423ce1bc6d gucci
2025-12-11 01:05:24 +00:00

30 lines
761 B
TypeScript

import { NextResponse } from "next/server";
import { prisma } from "@/lib/db";
import { getSessionUser } from "@/lib/auth";
import { getSignedDownloadUrl } from "@/lib/r2";
type Props = {
params: Promise<{ id: string }>;
};
export async function GET(_req: Request, { params }: Props) {
const session = await getSessionUser();
if (!session) {
return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
}
const { id } = await params;
const file = await prisma.file.findFirst({
where: { id, userId: session.userId },
});
if (!file) {
return NextResponse.json({ error: "File not found" }, { status: 404 });
}
const url = await getSignedDownloadUrl(file.key);
return NextResponse.json({ url, name: file.name });
}