espace-paie-odentas/app/api/pdf-proxy/route.ts
odentas 59749d481b feat: Migration Cloudinary vers Poppler pour conversion PDF→JPEG
- Remplacer Cloudinary (US) par solution 100% AWS eu-west-3
- Lambda odentas-sign-pdf-converter avec pdftoppm
- Lambda Layer poppler-utils v5 avec dépendances complètes
- Trigger S3 ObjectCreated pour conversion automatique
- Support multi-pages validé (PDF 3 pages)
- Stockage images dans S3 odentas-docs
- PDFImageViewer pour affichage images converties
- Conformité RGPD garantie (données EU uniquement)
2025-10-28 10:22:45 +01:00

45 lines
1.1 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server';
export async function GET(request: NextRequest) {
try {
const { searchParams } = new URL(request.url);
const pdfUrl = searchParams.get('url');
if (!pdfUrl) {
return NextResponse.json(
{ error: 'URL du PDF requise' },
{ status: 400 }
);
}
// Décoder l'URL si elle est encodée
const decodedUrl = decodeURIComponent(pdfUrl);
// Fetcher le PDF depuis S3
const response = await fetch(decodedUrl);
if (!response.ok) {
return NextResponse.json(
{ error: `Erreur S3: ${response.status}` },
{ status: response.status }
);
}
const buffer = await response.arrayBuffer();
// Retourner le PDF avec les headers CORS appropriés
return new NextResponse(buffer, {
headers: {
'Content-Type': 'application/pdf',
'Cache-Control': 'public, max-age=3600',
'Access-Control-Allow-Origin': '*',
},
});
} catch (error) {
console.error('Erreur proxy PDF:', error);
return NextResponse.json(
{ error: 'Erreur serveur' },
{ status: 500 }
);
}
}