Estoy escribiendo una aplicación java 2.0 que permite a los usuarios subir archivos. Estos archivos se almacenan en un servicio de terceros que accede mediante una biblioteca de Java, el método que utilizo en este API tiene la siguiente firma:Cargando archivos como transmisión en play framework 2.0
void store(InputStream stream, String path, String contentType)
He conseguido hacer cargas de trabajo con el siguiente controlador simple:
public static Result uploadFile(String path) {
MultipartFormData body = request().body().asMultipartFormData();
FilePart filePart = body.getFile("files[]");
InputStream is = new FileInputStream(filePart.getFile())
myApi.store(is,path,filePart.getContentType());
return ok();
}
mi preocupación es que esta solución no es eficaz, ya que por defecto las tiendas marco de juego todos los datos cargados por el cliente en un archivo temporal en el servidor a continuación, llama mi método uploadfile() en el controlador.
En una aplicación tradicional servlet habría escrito un servlet comportarse de esta manera:
myApi.store(request.getInputStream(), ...)
He estado buscando por todos lados y no encontrar ninguna solución. El ejemplo más cercano que encontré es Why makes calling error or done in a BodyParser's Iteratee the request hang in Play Framework 2.0? pero no encontré cómo modificarlo para adaptarlo a mis necesidades.
¿Hay alguna forma en el juego2 para lograr este comportamiento, es decir, hacer que los datos cargados por el cliente pasen directamente por la aplicación web a otro sistema?
Gracias.
¿Hay alguna forma de hacerlo en Java en lugar de en Scala? :( – by0