import { existsSync, readFileSync } from 'node:fs' import { join } from 'node:path' export default defineEventHandler((event) => { const projectId = param(event, 'projectId') const file = param(event, 'file') if (!/^[\w-]+\.png$/.test(file) || !/^[\w-]+$/.test(projectId)) throw createError({ statusCode: 400, message: '非法文件名' }) const p = join(projectDir(projectId), 'avatars', file) if (!existsSync(p)) throw createError({ statusCode: 404, message: '头像不存在' }) setHeader(event, 'Content-Type', 'image/png') setHeader(event, 'Cache-Control', 'public, max-age=86400') return readFileSync(p) })