0

リクエストの本文にファイルが含まれているリクエストに 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 バケットから取得されているため、私にとっては意味がありません。

私はこのコードをデバッグしました。実稼働環境では、「読み取り」が完了したときに利用可能なファイルがあります。

本番環境からファイルを読み取れないのはなぜですか?

よろしく

4

1 に答える 1