File uploads introduce security risks and performance challenges. Here's how to handle them properly—from validation to storage to serving files.
Basic Upload with Multer#
Direct Upload to S3#
Security Validation#
Image Processing#
Streaming Large Files#
Cleanup#
Best Practices#
Security:
✓ Validate file type by content, not extension
✓ Scan for malware
✓ Use presigned URLs for direct upload
✓ Never trust user-provided filenames
✓ Set appropriate file size limits
Performance:
✓ Use streaming for large files
✓ Process images asynchronously
✓ Generate variants/thumbnails
✓ Use CDN for serving files
Storage:
✓ Store files outside web root
✓ Use unique filenames (UUID)
✓ Organize by date/user
✓ Clean up temporary files
Conclusion#
File uploads require careful handling of security, storage, and performance. Validate thoroughly, store securely, and process asynchronously for the best user experience.
Never trust uploaded files—always validate content type and scan for threats.