아까 질문 올려서 뭐가 문제인지도 어떻게 해결해야하는지도 알아냈는데 해결하는데 계속 애를 먹고있어서 다시 질문 올립니다..
@ResponseBody
@RequestMapping("download.do")
public void download(Locale locale, Model model, HttpServletRequest request, HttpServletResponse response) {
String spec = "http://서버주소:포트번호/video/20210730/202107301750_1800.mp4";
String outputDir = "C:/output";
URI url = URI.create(spec);
RestTemplate rt = new RestTemplate();
ResponseEntity<byte[]> res = rt.getForEntity(url, byte[].class);
byte[] buffer = new byte[1024];
buffer = res.getBody();
try {
String originFileName = URLDecoder.decode(spec, "UTF-8");
String onlyFileName = originFileName.substring(originFileName.lastIndexOf("/") + 1);
Path target = Paths.get(outputDir, onlyFileName);
FileCopyUtils.copy(buffer, target.toFile());
} catch(Exception e) {
e.printStackTrace();
}
}
OOM 오류로 파일 내용을 끊어서 보내려고 계속 시도중입니다.
여기서 질문이 byte[] buffer = new byte[1024] 이렇게 하면 1024 바이트씩 끊어서 담아져야 하는거 아닌가요?
buffer.length를 콘솔에 찍어보니 그냥 파일 전체 용량이 나오더라구요.
1024 바이트씩 나눠서 보내려면 어떻게 해야하는지 조언 다시 한 번 부탁드립니다..