1
1
//
2
2
// Mécanisme de routage pour les pages de l'application.
3
3
//
4
+ import mime from "mime" ;
4
5
import { Prisma } from "@prisma/client" ;
5
6
import createIntlMiddleware from "next-intl/middleware" ;
6
7
import { NextRequest , NextResponse } from "next/server" ;
@@ -39,7 +40,7 @@ export default async function middleware( request: NextRequest )
39
40
new URL (
40
41
`${ process . env . __NEXT_ROUTER_BASEPATH } /api/file/${ identifier } /${ request . nextUrl . search } ` ,
41
42
request . url
42
- ) ,
43
+ ) . href . replace ( "https" , "http" ) ,
43
44
{ headers : request . headers }
44
45
) ;
45
46
@@ -59,8 +60,8 @@ export default async function middleware( request: NextRequest )
59
60
const content = await fetch (
60
61
new URL (
61
62
`${ process . env . __NEXT_ROUTER_BASEPATH } /files/${ file . userId } /${ file . id } /${ file . versions [ 0 ] . id } .${ extension } ` ,
62
- request . url
63
- ) . href ,
63
+ data . url
64
+ ) ,
64
65
{ headers : request . headers }
65
66
) ;
66
67
@@ -92,7 +93,7 @@ export default async function middleware( request: NextRequest )
92
93
// Une fois récupérés, on déchiffre le contenu du fichier
93
94
// avec son vecteur d'initialisation et on retourne le
94
95
// résultat comme une réponse classique.
95
- return new NextResponse (
96
+ const response = new NextResponse (
96
97
await crypto . subtle . decrypt (
97
98
{
98
99
iv : buffer . subarray ( 0 , 16 ) ,
@@ -102,6 +103,12 @@ export default async function middleware( request: NextRequest )
102
103
buffer . subarray ( 16 )
103
104
)
104
105
) ;
106
+ response . headers . set (
107
+ "Content-Type" ,
108
+ mime . getType ( file . name ) ?? "application/octet-stream"
109
+ ) ;
110
+
111
+ return response ;
105
112
}
106
113
catch
107
114
{
0 commit comments