diff --git a/packages/api/src/routes/avatars.ts b/packages/api/src/routes/avatars.ts index bc3c084..44df89a 100644 --- a/packages/api/src/routes/avatars.ts +++ b/packages/api/src/routes/avatars.ts @@ -1,6 +1,6 @@ import { FastifyInstance } from "fastify"; -import { existsSync, mkdirSync, createReadStream } from "node:fs"; -import { unlink, writeFile, realpath } from "node:fs/promises"; +import { existsSync, mkdirSync } from "node:fs"; +import { unlink, writeFile, realpath, readFile } from "node:fs/promises"; import { resolve, extname, sep } from "node:path"; import { randomBytes } from "node:crypto"; import prisma from "../lib/prisma.js"; @@ -172,11 +172,13 @@ export default async function avatarRoutes(app: FastifyInstance) { ".png": "image/png", ".webp": "image/webp", }; + const buf = await readFile(realFile); reply .header("Content-Type", mimeMap[ext] || "application/octet-stream") + .header("Content-Length", buf.length) .header("Cache-Control", "public, max-age=3600, stale-while-revalidate=86400") .header("X-Content-Type-Options", "nosniff") - .send(createReadStream(filePath)); + .send(buf); } ); }