gpt4 book ai didi

java - 从运行 Java Jersey Rest API 的 HTTP 服务器传输大文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:57:59 27 4
gpt4 key购买 nike

我正在使用 Java JDK 1.7 和 Jersey Web 服务框架编写 Web 服务。我需要提供的其中一件事是允许经过身份验证的客户端下载某些大型数据文件(1-3 GB)的方法。理想情况下,我希望这是一个暂停和恢复类型的可下载选项。我尝试了 jersey multi-part API,并能够让它在我的客户端机器上运行高达 400 MB,但超过 400 MB 时它会遇到内存不足的问题。我还担心服务器在面临同时下载请求时可能会失败。关于如何做到这一点的任何想法? Netty 是一个选择吗?关于如何将 Netty 集成到现有的基于 Jersey 的 Web 服务中的任何指示?是否有其他框架可以帮助实现这一目标?我确实必须将 java 用于 Web 服务。任何指针都会有所帮助。

最佳答案

如果您遇到内存不足的问题,您应该检查您是如何处理正在下载的数据的。如果您使用的是 Jersey 的 ClientResponse,请确保您使用的是 getEntityInputStream() 而不是 getEntity()。通过这种方式,您可以流式传输数据,将其写入文件,然后将其丢弃,而不是让它在 Java 堆空间中堆积。

关于您同时下载的问题我真的不能说,但是如果您使用的是 Web 服务框架,那么它应该妥善处理。

对于这两个问题,有关具体实现的更多信息,尤其是代码,将有助于您获得更好的响应。

关于java - 从运行 Java Jersey Rest API 的 HTTP 服务器传输大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14864939/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com