我发现了一些有趣的答案。但我也发现了如何使用SpringWebFlux轻松实现这一点。
This post
概述了可怕的
MultipartFileSender
来自戴文·凯文,虽然有效,但仍然有点慢。改变
InputStream
到
RandomAccessFile
现在知道了更多关于我试图在谷歌上搜索的内容,我找到了
Jira ticket
@GetMapping(value = "/videos/p/{id}")
public ResponseEntity<UrlResource> getFullVideo(@PathVariable String id) throws MalformedURLException {
Optional<Video> optionalVideo = videoRepository.findById(id);
if (optionalVideo.isPresent()) {
final String videoPath = optionalVideo.get().getAbsolutePath();
final UrlResource video = new UrlResource(String.format("file:%s", videoPath));
return ResponseEntity.status(HttpStatus.PARTIAL_CONTENT)
.contentType(MediaTypeFactory.getMediaType(video)
.orElse(MediaType.APPLICATION_OCTET_STREAM))
.body(video);
}
return ResponseEntity.noContent().build();
}