文件上传
规则
- 使用预签名URL直接上传到存储服务 — 不要通过你的服务器代理
- 大于5MB的文件使用分片上传 — 将文件切分成多个部分,并行上传
- 客户端验证:文件类型、文件大小限制 — 服务器再次验证
- 图片优化:上传时调整大小(最大2048px)、转换为WebP格式、剥离EXIF信息
- 进度追踪:使用
XMLHttpRequest或带有ReadableStream的fetch实现上传进度 - 存储:S3、R2 (Cloudflare) 或 Supabase Storage — 预签名URL模式相同
- 服务端文件类型验证:检查文件魔数(magic bytes),而不仅仅是文件扩展名
- 高安全场景下对用户上传文件进行病毒扫描