✅ What I Did This Week
Chunked Image Upload
- After discussing with Vicky, we realized that Blues Notehub’s 8KB file size limit requires us to use chunked uploads for images (~45KB).
- Initially researched S3’s multipart upload, but it requires larger file sizes, so we decided to implement the logic from scratch.
Overview of Chunked Upload Protocol (details in PR description):
- Splitting: Dashcam splits the image into ≤8KB chunks, each containing metadata (
image_id
,chunk_id
,total_chunks
, anddata
). - Uploading: Chunks are uploaded individually to the backend via API Gateway → Lambda → temporary S3 bucket.
- Tracking: Lambda tracks received chunks in DynamoDB to monitor progress.
- Assembly: Once all chunks are uploaded, a Lambda function assembles the image and stores it permanently in S3. Temporary chunks are cleaned up afterward.
Progress on Implementation:
- I’ve set up the skeleton for the entire process: splitting, uploading, tracking, and preparing for assembly.
- Still need to write the Lambda function for assembling the image and test the full workflow.
Improved Observability
- Added more logging using CloudWatch X-Ray to monitor API Gateway usage in real time.
- Tracks failure rates and latency to help identify performance bottlenecks.
🚧 What I’m Working on Next Week
- Interim Demo
- Finish Implementing Chunked Upload
- Write and test the Lambda function that assembles image chunks into a complete image.
- Debug and test the entire process end-to-end.
- Integrate Chunked Upload with Dashcam System
- Work on integrating the chunked upload process with the dashcam system.
- Coordinate with the team to ensure everything works smoothly.
📌 Overall Status
- On Track: The chunked image upload is the most complex part of the system, but we have a solid design in place. While there’s still work left to finish and test the implementation, I’m confident we’re moving in the right direction.