Upload one or multiple files to AWS S3 based on the resource type. Each resource type has specific required parameters.
Resource Types & Required Parameters:
lesson_material - Requires
lessonId- Upload learning materials for a specific lesson
- Examples: PDFs, videos, presentations, documents
assignment_material - Requires
assignmentId- Upload assignment instructions, templates, or reference materials
- Examples: instruction PDFs, starter code, rubrics
assignment_submission - Requires
submissionId- Upload student assignment submission files
- Examples: student code, reports, project files
- Note: The submission record must already exist
exam_material - Requires
examId- Upload exam-related materials
- Examples: exam papers, reference materials
cat_material - Requires
catId- Upload CAT (Continuous Assessment Test) materials
- Examples: CAT papers, study guides
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
Query parameters
-
Type of resource being uploaded
Values are
lesson_material,assignment_material,assignment_submission,exam_material,cat_material, orother. -
UUID of the lesson (required when resourceType is "lesson_material")
-
UUID of the assignment (required when resourceType is "assignment_material")
-
UUID of the assignment submission (required when resourceType is "assignment_submission")
-
UUID of the exam (required when resourceType is "exam_material")
-
UUID of the CAT (required when resourceType is "cat_material")
curl \
--request POST 'http://localhost:3500/api/v1/file-uploader/upload?resourceType=lesson_material' \
--header "Content-Type: multipart/form-data" \
--form "files[]=@file"
{
"message": "Files uploaded successfully",
"lessonId": "123e4567-e89b-12d3-a456-426614174000",
"resourceType": "lesson_material",
"uploadedFiles": [
{
"id": "file-abc123",
"fileUrl": "https://s3.amazonaws.com/bucket/files/lecture_notes.pdf",
"fileSize": 1048576,
"mimeType": "application/pdf",
"uploadedAt": "2025-11-21T10:00:00Z",
"originalName": "lecture_notes.pdf"
}
]
}
{
"error": "Bad Request",
"message": "lessonId is required when resourceType is \"lesson_material\"",
"statusCode": 400
}