error handling + file size

This commit is contained in:
asabizanjo
2025-12-11 19:12:00 +00:00
parent ffd65ebca1
commit 237b34ac4f
3 changed files with 18 additions and 1 deletions

View File

@@ -3,6 +3,9 @@ import { prisma } from "@/lib/db";
import { getSessionUser } from "@/lib/auth";
import { uploadToR2 } from "@/lib/r2";
// Route segment config for App Router - extend timeout for large uploads
export const maxDuration = 300; // 5 minutes
const MAX_UPLOAD_SIZE = 10 * 1024 * 1024 * 1024; // 10GB in bytes
function serializeFile(file: Awaited<ReturnType<typeof prisma.file.create>>) {

View File

@@ -15,6 +15,13 @@ export async function middleware(req: NextRequest) {
}
export const config = {
matcher: ["/dashboard/:path*", "/api/files/:path*"],
matcher: [
"/dashboard/:path*",
// Match all /api/files routes EXCEPT /api/files/upload (which handles large bodies)
"/api/files/list",
"/api/files/delete-all",
"/api/files/:id/download",
"/api/files/:id/delete",
],
};

View File

@@ -4,6 +4,13 @@ const nextConfig: NextConfig = {
// Disable server/dev sourcemaps to avoid Windows source map parse warnings
productionBrowserSourceMaps: false,
// Allow large file uploads (up to 10GB)
experimental: {
serverActions: {
bodySizeLimit: "10gb",
},
},
webpack: (config, { dev, isServer }) => {
if (dev && isServer) {
config.devtool = false;