Play Framework 2.1アプリケーションをappfogにデプロイしました(基本的に同じであるため、cloudfoundryにも同じ問題が存在します)。アプリケーションでファイルのアップロードが許可されていますが、ファイルの取得中にエラーが発生しました。play runを使用してローカルで実行すると、正常に動作します。
私のコードは次のとおりです。
MultipartFormData body = request().body().asMultipartFormData();
FilePart midi = body.getFile("midi");
File file = midi.getFile();
ログのエラーメッセージは次のとおりです。
play.api.Application$$anon$1: Execution exception[[IOException: No such file or directory]]
at play.api.Application$class.handleError(Application.scala:289) ~[play.play_2.10-2.1.0.jar:2.1.0]
at play.api.DefaultApplication.handleError(Application.scala:383) [play.play_2.10-2.1.0.jar:2.1.0]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$handleAction$1$4$$anonfun$apply$28.apply(PlayDefaultUpstreamHandler.scala:391) [play.play_2.10-2.1.0.jar:2.1.0]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$handleAction$1$4$$anonfun$apply$28.apply(PlayDefaultUpstreamHandler.scala:391) [play.play_2.10-2.1.0.jar:2.1.0]
at scala.Option.map(Option.scala:145) [org.scala-lang.scala-library-2.10.0.jar:na]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$handleAction$1$4.apply(PlayDefaultUpstreamHandler.scala:391) [play.play_2.10-2.1.0.jar:2.1.0]
Caused by: java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[na:1.7.0_11]
at java.io.File.createTempFile(Unknown Source) ~[na:1.7.0_11]
at java.io.File.createTempFile(Unknown Source) ~[na:1.7.0_11]
at play.api.libs.Files$TemporaryFile$.apply(Files.scala:60) ~[play.play_2.10-2.1.0.jar:2.1.0]
at play.api.mvc.BodyParsers$parse$Multipart$$anonfun$handleFilePartAsTemporaryFile$1.apply(ContentTypes.scala:624) ~[play.play_2.10-2.1.0.jar:2.1.0]
at play.api.mvc.BodyParsers$parse$Multipart$$anonfun$handleFilePartAsTemporaryFile$1.apply(ContentTypes.scala:622) ~[play.play_2.10-2.1.0.jar:2.1.0]
multipartFormから一時ファイルを作成する際に問題が発生しているようです。これを解決する良い方法はありますか?私のアプリケーションはAWSに保存され、appfogを介して設定されます。