Currently, StaticFileHandler uses Files.readAllBytes() to load entire files into memory before sending them to clients. This causes severe memory issues with large files.
Proposed Solution
Implement streaming with a buffered approach for files exceeding a threshold (e.g., 1MB):
For small files (< 1MB): Continue using readAllBytes() (fast, simple)
For large files (≥ 1MB): Stream directly to OutputStream using 8KB buffer
Files to Modify
src/main/java/org/example/StaticFileHandler.java
src/test/java/org/example/StaticFileHandlerTest.java (add streaming tests)
Currently, StaticFileHandler uses Files.readAllBytes() to load entire files into memory before sending them to clients. This causes severe memory issues with large files.
Proposed Solution
Implement streaming with a buffered approach for files exceeding a threshold (e.g., 1MB):
For small files (< 1MB): Continue using readAllBytes() (fast, simple)
For large files (≥ 1MB): Stream directly to OutputStream using 8KB buffer
Files to Modify
src/main/java/org/example/StaticFileHandler.java
src/test/java/org/example/StaticFileHandlerTest.java (add streaming tests)