我可以在春季从mongodb流式传输二进制文件吗?

时间:2019-04-24 09:16:29

标签: spring-mongodb

我正在寻找一种改善弹簧启动服务的方法,尤其是内存消耗。与二进制数据相比,最好将它们从源流传输到响应,相比之下,将整个byte[]加载到内存中。 对于文件系统中的文件,这很容易(只是一个愚蠢的例子):

@GetMapping("/download/{fileName}")
public ResponseEntity<FileSystemResource > downloadFile(@PathVariable("fileName") String fileName) {
    FileSystemResource fileResource= new FileSystemResource(STORAGE_LOCATION + fileName);
    HttpHeaders headers = new HttpHeaders();
    headers.setContentDisposition(ContentDisposition.parse("attachment; filename=" + fileName));
    headers.setContentLength(fileResource.contentLength());
    return new ResponseEntity<>(fileResource, headers, HttpStatus.OK);
}

但是我也使用org.bson.types.Binary类型在mongodb中存储了一些二进制数据。我的问题是,当我加载“文档”时,还是将其加载到内存中?还是可以直接从mongodb中流式传输?

我只看到getData()上已有一个Binary的{​​{1}}方法。

0 个答案:

没有答案