【发布时间】:2020-05-28 16:32:33
【问题描述】:
我有如下文件控制器;
@RestController
@RequestMapping("/files")
@RequiredArgsConstructor
public class FileController {
private final SftpRemoteFileTemplate sftpRemoteFileTemplate;
@PostMapping("/generate/{exportId}")
public void generate(@PathVariable("exportId") String exportId) {
File csvFile = createCsvFile(System.getProperty(JAVA_IO_TMPDIR));
CsvUtils.write(csvFile, prepareExports(exportId));
Message<File> message = MessageBuilder.withPayload(file).build();
String path = remoteFileTemplate.send(message, FileExistsMode.REPLACE);
//store path to download after etc...
}
@GetMapping("/download/{filePath}")
public ResponseEntity<Resource> download(@PathVariable("filePath") String filePath) {
//I didn't imagine how can i use it to download response?
sftpRemoteFileTemplate.get(filePath, stream -> {
});
}
}
我可以使用 ; 将文件上传到我的 SFTP 服务器remoteFileTemplate.send(message, FileExistsMode.REPLACE)
但我无法想象如何通过 sftpRemoteFileTemplate.get 方法下载它。
它需要InputStreamCallback,我如何使用它来做出下载响应?
【问题讨论】:
-
请查看stackoverflow.com/questions/26847113/… 它显示了如何实现'InputStreamCallback'
标签: spring-boot spring-mvc spring-integration spring-integration-sftp