nestjs-file-uploads
Secure file handling, Validation, and S3 streaming.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
File Upload Patterns
Priority: P0 (FOUNDATIONAL)
Secure file upload handling with validation and storage patterns.
-
Magic Bytes: NEVER trust
content-typeheader or file extension.-
Tool: Use
file-typeormmmagicto verify the actual buffer signature.
-
Tool: Use
-
Limits: Set strict
limits: { fileSize: 5000000 }(5MB) in Multer config to prevent DoS.
Streaming (Scalability)
-
Memory Warning: Default Multer
MemoryStoragecrashes servers with large files. -
Pattern: Use Streaming for any file > 10MB.
-
Library:
multer-s3(direct upload to bucket) orbusboy(raw stream processing). -
Architecture:
- Client requests Signed URL from API.
- Client uploads directly to S3/GCS (Bypassing API server completely).
- Pro Tip: This is the only way to scale file uploads infinitely.
-
Library:
Processing
- Async: Don't process images/videos in the HTTP Request.
-
Flow:
- Upload file.
- Push
FileUploadedEventto Queue (BullMQ). - Worker downloads, resizes/converts, and re-uploads.
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!