fix(admin): ensure uploads dir exists before writing (resilient upload)
The upload route only relied on the startup mkdir; if the dir is removed while the server runs, writes failed with ENOENT. Now mkdir -p before each write. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
62b536cc2b
commit
9c1413744d
1 changed files with 3 additions and 1 deletions
|
|
@ -2,7 +2,7 @@
|
|||
// CRUD des questions manuelles écrites en base (source 'manual').
|
||||
|
||||
import { randomUUID } from "node:crypto"
|
||||
import { writeFile } from "node:fs/promises"
|
||||
import { mkdir, writeFile } from "node:fs/promises"
|
||||
import { extname, resolve } from "node:path"
|
||||
import type { FastifyInstance } from "fastify"
|
||||
import { desc, eq } from "drizzle-orm"
|
||||
|
|
@ -109,6 +109,8 @@ export async function adminRoutes(app: FastifyInstance) {
|
|||
const safeExt = IMAGE_EXT.includes(ext) ? ext : ".jpg"
|
||||
const name = `${randomUUID()}${safeExt}`
|
||||
const buffer = await file.toBuffer()
|
||||
// Crée le dossier si besoin (résilient s'il a été supprimé après le démarrage).
|
||||
await mkdir(resolve(env.uploadsDir), { recursive: true })
|
||||
await writeFile(resolve(env.uploadsDir, name), buffer)
|
||||
return { url: `/uploads/${name}` }
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue