如何使用Play执行文件上传监控!骨架

Yan*_*hon 11 java playframework

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

注意:没有代码显示,因为我想知道这些问题,似乎无法找到谷歌的答案

谢谢!

**更新**

(我差点忘了这个问题.)好吧,显然,上传的文件存储在临时文件中,文件不作为字节数组(或其他东西)传递,而是作为动作控制器的Java File对象传递.

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

**更新2**

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

Bri*_*zel 2

大请求和临时文件

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

监控 Play 中的上传!

玩!正在使用(很棒的)Netty项目作为其 HTTP 服务器堆栈(如果您正在考虑异步 HTTP 客户端,那么也会在客户端堆栈上使用)。

内蒂是:

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

鉴于 Play! 的堆栈,您应该能够实现“上传进度条”或其他东西。实际上,异步 HTTP 客户端已经实现了文件上传和断点下载的进度监听器(请参阅快速入门指南)。

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

无论如何监控上传

我想玩!意味着位于反向代理模式下的“真实”HTTP 服务器后面(例如 nginx 或 lighthttpd)。

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