gpt4 book ai didi

java - 如何使用 Play! 执行文件上传监控框架

转载 作者:搜寻专家 更新时间:2023-10-30 21:34:34 25 4
gpt4 key购买 nike

是否可以通过 Play! 以某种方式监控文件上传?框架? 此外,如果文件应该很大(即 +500MB),是否可以将接收到的字节保存到临时文件中而不是将其保存在内存中? (请参阅下面的更新)

注意:没有代码可以显示,因为我想知道这些问题并且似乎无法通过 Google 找到答案

谢谢!

** 更新 **

(我差点忘了这个问题。)好吧,显然,上传的文件存储在临时文件中,文件不是作为字节数组(或其他东西)传递的,而是作为 Java File object to the action controller .

但即使在 RESTful 环境中,也可以实现文件监控。

** 更新 2 **

有没有办法在传入的 HTTP 请求上获得早期事件监听器?这可以允许监控请求数据传输。

最佳答案

大请求和临时文件

玩吧!已经将大型 HTTP 请求存储在以 UUID 命名的临时文件中(从而减少了服务器的内存占用)。请求完成后,该文件将被删除。

在 Play 中监控上传!

玩吧!正在使用(很棒的)Netty项目的 HTTP 服务器堆栈(如果您正在考虑 Async HTTP client,也在客户端堆栈上。

Netty 是:

  • 异步
  • 事件驱动
  • 100% HTTP

给定 Play! 的堆栈,您应该能够实现您的“上传进度条”或其他东西。实际上,异步 HTTP 客户端已经实现了文件上传的进度监听器断点续传(参见quick start guide)。

但是 play.server包似乎不提供这样的功能/扩展点。

监控上传

我想玩!旨在以反向代理模式(如 nginx 或 lighthttpd)位于“真正的”HTTP 服务器后面。

因此,您最好为其中一台服务器使用上传进度模块(例如 HttpUploadProgressModule 用于 nginx),而不是弄乱 Play! 的 HTTP 堆栈。

关于java - 如何使用 Play! 执行文件上传监控框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6302340/

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