spring-boot - 是否可以从 Spring Boot 流式传输视频并通过获取来使用它?
问题描述
我有一个在资源区域传输视频的后端,但是当尝试通过 fetch 访问它时,它只会打一个电话,之后什么也没有发生。我需要进行提取,因为我使用多个标头向后面发出请求。
@GetMapping("/stream/{name}")
public ResponseEntity<ResourceRegion> videoStream(@PathVariable("name") String name,
@RequestHeader HttpHeaders httpHeaders) throws IOException {
Resource resource = this.fileStorageService.readFile(name);
ResourceRegion resourceRegion = this.fileStorageService.streamFileVideo(new UrlResource(resource.getURL()), httpHeaders);
HttpHeaders headers = new HttpHeaders();
headers.add(CONTENT_TYPE, MediaTypeFactory.getMediaType(resource).orElse(MediaType.APPLICATION_OCTET_STREAM).toString());
headers.add(CONTENT_LENGTH, Long.toString(resource.contentLength()));
return new ResponseEntity<>(resourceRegion, headers, HttpStatus.PARTIAL_CONTENT);
}
解决方案
推荐阅读
- android - 为什么在这个自定义版本的 android 中有些 UI 按钮是可点击的,而另一些是不可点击的?
- intellij-idea - Intellij - 无法克隆存储库“克隆失败 - 无法访问 '<
> ':接收失败:连接已重置 - javascript - 如何有条件地渲染对话框 Material-ui
- python - 设置从 github 导入的库时遇到问题
- java - Eclipse 市场的 Spring 工具套件上没有 SQL 开发工具
- c++ - 类模板和友谊
- concurrent.futures - python Future 对象到底是什么?
- docker - Gitlab CI 将文件从 repo 复制到管道并将其提取到路径
- android - React Native - NSExceptionMinimumTLSVersion 等价于 Android
- javascript - 一个新手问题。什么是 **.config.js 和 **.vue.js 文件?它与普通的 .js 文件有何不同?