使用包含大数据 (100 MB) 的 REST api 下载内容的最佳方法是什么 - Java
What is the best approach to download content using REST api's containing large data(100 MB) - Java
我使用 Mapr Apis 将日志文件中的内容读入 Stream 对象。
// 读取日志文件的代码.......
// 然后将内容获取到 Stream 对象中,如下所示。
FSDataInputStream 流 = FileSystem.get(URI.create(uri),conf);
// 现在我已在 UI 中提供此内容供下载。
// 我可以将其转换为 byte[],然后转换为 String as
字节[] bs = 新字节[stream.available()];
字符串内容=新字符串(bs);
我的要求是创建一个 Rest Api 来下载此内容。下载此内容的最佳方法是什么?
提前致谢
@RequestMapping(value = "api/download/{id}",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public ResponseEntity<?> downloadReportFile(@PathVariable Long id) {
log.debug("To download log file from remote server.");
try {
Long idparam = id;
// -----------------------
// Code to get FSDataInputStream
// -----------------------
FSDataInputStream stream =FileSystem.get(URI.create(uri),conf);
byte[] byteArray = new byte[stream.avilable()];
stream.read(byteArray)
return new ResponseEntity<>(new ByteArrayResource(byteArray), HttpStatus.OK);
} catch (IOException e) {
log.error("Failed to download file ", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
我使用 Mapr Apis 将日志文件中的内容读入 Stream 对象。
// 读取日志文件的代码....... // 然后将内容获取到 Stream 对象中,如下所示。
FSDataInputStream 流 = FileSystem.get(URI.create(uri),conf);
// 现在我已在 UI 中提供此内容供下载。
// 我可以将其转换为 byte[],然后转换为 String as
字节[] bs = 新字节[stream.available()];
字符串内容=新字符串(bs);
我的要求是创建一个 Rest Api 来下载此内容。下载此内容的最佳方法是什么?
提前致谢
@RequestMapping(value = "api/download/{id}",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public ResponseEntity<?> downloadReportFile(@PathVariable Long id) {
log.debug("To download log file from remote server.");
try {
Long idparam = id;
// -----------------------
// Code to get FSDataInputStream
// -----------------------
FSDataInputStream stream =FileSystem.get(URI.create(uri),conf);
byte[] byteArray = new byte[stream.avilable()];
stream.read(byteArray)
return new ResponseEntity<>(new ByteArrayResource(byteArray), HttpStatus.OK);
} catch (IOException e) {
log.error("Failed to download file ", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}