import { NextRequest, NextResponse } from 'next/server'; import fs from 'fs/promises'; import path from 'path'; export const runtime = 'nodejs'; export const dynamic = 'force-dynamic'; export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url); const sessionId = searchParams.get('sessionId'); const slideNumber = searchParams.get('slideNumber'); if (!sessionId || !slideNumber) { return new NextResponse('Missing sessionId or slideNumber', { status: 400 }); } const storageRoot = process.env.SPACE_ID ? '/data' : path.join(process.cwd(), 'data'); const fileName = `slide_${slideNumber}.png`; const filePath = path.join(storageRoot, 'sessions', sessionId, fileName); const imageBuffer = await fs.readFile(filePath); return new NextResponse(imageBuffer, { status: 200, headers: { 'Content-Type': 'image/png', 'Cache-Control': 'public, max-age=31536000, immutable' } }); } catch (error) { return new NextResponse('Image not found', { status: 404 }); } }