私はユーザーがファイルをアップロードできるplay 2.0 Javaアプリケーションを作成しています。再生フレームワーク2.0でファイルをストリームとしてアップロードする
void store(InputStream stream, String path, String contentType)
私は以下のような簡単なコントローラを使用して作業アップロードを作ることができた。これらのファイルは、私はJavaライブラリを使用してアクセスするサードパーティのサービスに保存されている、私はこのAPIで使用するメソッドのシグネチャは次のとおりです。
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();
}
私の関心は、サーバー上の一時ファイルにクライアントによってアップロードされたすべてのデータは、コントローラの私のuploadFile()メソッドを呼び出しているため、デフォルトでは、このソリューションは、効率的ではないことを遊びの枠組み店です。私はこのように振る舞うサーブレットを書かれていた伝統的なサーブレットアプリケーションで
:
myApi.store(request.getInputStream(), ...)
私はどこでも検索されていますし、任意の解決策を見つけることができませんでした。私が見つけた最も近い例はWhy makes calling error or done in a BodyParser's Iteratee the request hang in Play Framework 2.0?ですが、私のニーズに合わせて修正する方法は見つかりませんでした。
この動作を実現する方法はありますか?つまり、クライアントからアップロードされたデータを別のシステムに直接渡すことですか?
ありがとうございました。
これをScalaではなくJavaで実行する方法はありますか? :( – by0