【问题标题】:how to use spring webflux for file streaming如何使用spring webflux进行文件流式传输
【发布时间】:2018-01-13 21:28:23
【问题描述】:

我想使用 spring webflux 以反应方式流式传输文件。
我的端点应该看起来更具体什么是对象的类型?

@GetMapping("/file")
Flux<???> file() {
    //Read file content into this ??? thing . 
}

【问题讨论】:

    标签: spring-webflux


    【解决方案1】:

    您可以像这样返回Resource 实例:

    @GetMapping("/file")
    Mono<Resource> file() {
        //Create a ClassPathResource, for example
    }
    

    请注意,这会自动支持字节范围 HTTP 请求。

    【讨论】:

    • 您介意对自动字节范围请求多加评论吗?如果在stackoverflow.com/questions/20634603/… 中阅读 bgraves 的答案,似乎相反?
    • bgraves 提到了jira.spring.io/browse/SPR-13834,现已解决。这个问题是关于 Spring MVC 的,但现在同样适用于 Spring WebFlux(后来出现)
    • 太好了,非常感谢。那是好消息。现在我只需要了解如何让 Videogular 了解 GridFsResource。不知何故,这似乎不起作用,而 FileSystemResource 起作用了。
    • 该资源实现是否提供其内容长度信息?如果不是,则资源范围算法可能会在这种情况下选择退出。尝试针对显示示例应用程序提出一个新问题。
    • 是的,它确实有contentLength() 方法。但是,我可能很快会问另一个问题。无论如何感谢您的提示。
    猜你喜欢
    • 2019-12-03
    • 2022-01-21
    • 2021-11-12
    • 2018-06-05
    • 2013-05-31
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 2014-01-28
    相关资源
    最近更新 更多