Ответ 1
Большие запросы и временные файлы
Играть! уже хранит большие HTTP-запросы в файлах temp, названных в честь UUID (таким образом уменьшая объем памяти сервера). Как только запрос будет выполнен, этот файл будет удален.
Контроль загрузки в Play!
Играть! использует (удивительный) проект Netty для своего стека HTTP-сервера (а также в стеке клиента, если вы рассматриваете Асинхронный HTTP-клиент.
Netty:
- асинхронный
- событийного
- 100% HTTP
С учетом игры! стек, вы должны иметь возможность реализовать свой "индикатор выполнения загрузки" или что-то еще. На самом деле, Async HTTP-клиент уже достигает отслеживания прогресса для файлов uplaods и возобновляемой загрузки (см. краткое руководство по началу работы).
Но play.server, похоже, не предоставляет такую функциональность/точку расширения.
Контроль загрузки в любом случае
Я думаю, что играть! должен находиться за "настоящим" HTTP-сервером в режиме обратного прокси (например, nginx или lighthttpd).
Итак, вам лучше использовать модуль выполнения загрузки для одного из этих серверов (например, HttpUploadProgressModule для nginx), чем возиться с Play! HTTP-стек.