Spring Boot - StreamingResponseBody

목차

참고

StreamingResponseBody

Spring 에서 제공하는 비동기 요청 처리를 위한 객체, 응답값을 Byte 로 변환해 Streaming 형태로 줄 때 사용하는 객체

@GetMapping("/video3")
public ResponseEntity<StreamingResponseBody> handleRbe() throws FileNotFoundException {
File file = new File("/Users/dongwoo-yang/spring-file/mysong.mp4");
InputStream inputStream = new FileInputStream(file);

StreamingResponseBody stream = out -> {
byte[] data = new byte[1024];
int length = 0;

while((length = inputStream.read(data)) >= 0){
out.write(data, 0, length);
}
inputStream.close();
out.flush();
};
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "video/mp4");
headers.add("Content-Length", Long.toString(file.length()));

return ResponseEntity.ok().headers(headers).body(stream);
}

Share