# Upload files for different resource types **POST /api/v1/file-uploader/upload** Upload one or multiple files to AWS S3 based on the resource type. Each resource type has specific required parameters. **Resource Types & Required Parameters:** 1. **lesson_material** - Requires `lessonId` - Upload learning materials for a specific lesson - Examples: PDFs, videos, presentations, documents 2. **assignment_material** - Requires `assignmentId` - Upload assignment instructions, templates, or reference materials - Examples: instruction PDFs, starter code, rubrics 3. **assignment_submission** - Requires `submissionId` - Upload student assignment submission files - Examples: student code, reports, project files - Note: The submission record must already exist 4. **exam_material** - Requires `examId` - Upload exam-related materials - Examples: exam papers, reference materials 5. **cat_material** - Requires `catId` - Upload CAT (Continuous Assessment Test) materials - Examples: CAT papers, study guides 6. **other** - No required parameters - Generic file uploads - Examples: profile pictures, miscellaneous documents **File Specifications:** - Maximum file size: 1GB per file - Supported formats: PDF, DOC, DOCX, PPT, PPTX, XLS, XLSX, images, videos, archives, code files - Blocked formats: Executables (.exe, .bat, .dll), system files - Multiple files can be uploaded in a single request ## Servers - Local server: http://localhost:3500 (Local server) - Production server: https://api.echoplain.social (Production server) ## Parameters ### Query parameters - **resourceType** (string) Type of resource being uploaded - **lessonId** (string) UUID of the lesson (required when resourceType is "lesson_material") - **assignmentId** (string) UUID of the assignment (required when resourceType is "assignment_material") - **submissionId** (string) UUID of the assignment submission (required when resourceType is "assignment_submission") - **examId** (string) UUID of the exam (required when resourceType is "exam_material") - **catId** (string) UUID of the CAT (required when resourceType is "cat_material") ### Body: multipart/form-data (object) Multipart form data containing one or more files - **files** (array[string(binary)]) Files to upload (max 1GB each) ## Responses ### 201 Files uploaded successfully ### 400 Bad Request - Missing required parameters or invalid files ### 413 Payload Too Large - File size exceeds 1GB limit [Powered by Bump.sh](https://bump.sh)