Sto scrivendo un'applicazione java di gioco 2.0 che consente agli utenti di caricare file. Questi file sono memorizzati su un servizio di terze parti accedo utilizzando una libreria Java, il metodo che uso in questa API ha la seguente firma:Caricamento file come stream in gioco framework 2.0
void store(InputStream stream, String path, String contentType)
Sono riuscito a fare upload di lavoro utilizzando il seguente controller semplice:
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();
}
la mia preoccupazione è che questa soluzione non è efficace perché per impostazione predefinita i negozi quadro di gioco tutti i dati caricati dal cliente in un file temporaneo sul server poi chiama il metodo mia UploadFile() nel controller.
In un'applicazione servlet tradizionale avrei scritto un servlet comportarsi in questo modo:
myApi.store(request.getInputStream(), ...)
ho cercato dappertutto e non ho trovato alcuna soluzione. L'esempio più vicino che ho trovato è Why makes calling error or done in a BodyParser's Iteratee the request hang in Play Framework 2.0? ma non ho trovato come modificarlo per adattarlo alle mie esigenze.
Esiste un modo per giocare in questo gioco2, ovvero disporre dei dati caricati dal client per passare "attraverso" l'applicazione Web direttamente a un altro sistema?
Grazie.
Esiste comunque la possibilità di farlo in Java anziché in Scala? :( – by0