リクエストの本文にファイルが含まれているリクエストに POST を作成します。
私の方法では、このファイルを取得します
if(request.body.file("imageFile").getOrElse(null) != null) {
request.body.file("imageFile").map{ case FilePart(key, name, contentType, content) =>
try{
val in:InputStream = new BufferedInputStream(new ByteArrayInputStream(content))
image = ImageIO.read(in)
} catch {
case e => Logger.debug(e.printStackTrace.toString); throw new Exception(e.getMessage)
}
}
}
リクエスト本文にファイルが含まれている場合は、それを取得しようとします。それ以外の場合は、S3 からファイルを取得しようとします。
else {
try{
val in:InputStream = new BufferedInputStream(new ByteArrayInputStream(S3Storage.retrieveS3File("facebook.jpg").content))
image = ImageIO.read(in)
} catch {
case e:IOException => Logger.debug("Failed to retrieve facebook image"); throw new IOException(e.getMessage)
}
コンピューターで実行すると、これはすべて正常に機能しますが、これをチェックインしてAmazonサーバーでテストするとimage = ImageIO.read(in)
、エラーが発生します。Can't read input file!
.
ファイルはリクエスト本文にあるか、S3 バケットから取得されているため、私にとっては意味がありません。
私はこのコードをデバッグしました。実稼働環境では、「読み取り」が完了したときに利用可能なファイルがあります。
本番環境からファイルを読み取れないのはなぜですか?
よろしく