审查生成的头像上传器

来自 文件上传
Node 24 高级 6分钟 找出 4处问题

在这个生成的上传处理器接收头像前完成代码审查。

接收已认证用户不超过 8 MiB 的 PNG,以服务端生成的键流式写入私有隔离区,完整验证并扫描图像,只发布干净结果,并清理失败数据。

JavaScript
async function acceptUpload(req, db, scan) {
  const filename = req.headers['x-file-name'];
  const path = `/srv/public/uploads/${filename}`;
  const chunks = [];
  for await (const chunk of req) chunks.push(chunk);
  const body = Buffer.concat(chunks);

  if (req.headers['content-type'] !== 'image/png') {
    throw new Error('unsupported type');
  }

  await writeFile(path, body);
  const row = await db.files.insert({
    ownerId: req.user.id,
    path,
    contentType: req.headers['content-type'],
    status: 'available',
  });
  await scan(path);
  return { id: row.id, url: `/uploads/${filename}` };
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误