У меня есть список файлов gzip в папке S3, и я должен читать файлы, используя scala. Выполните итерацию каждого файла и сохраните содержимое файла в списке буфера String.
Это метод для чтения одного файла и возврата в виде String.
def getDecompressedData(bucket: String, key: String) : String= {
val getObjectRequest = new GetObjectRequest(bucket, key)
val s3Object = s3Client.getObject(getObjectRequest)
val byteArray = IOUtils.toByteArray(s3Object.getObjectContent)
val inputStream = new GZIPInputStream(new ByteArrayInputStream(byteArray))
val data = scala.io.Source.fromInputStream(inputStream).mkString
inputStream.close()
data
}
Я получаю ошибку
Exception in thread "main" java.io.EOFException: Unexpected end of ZLIB input stream
at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:240)
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:117)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
at com.amazonaws.util.IOUtils.toByteArray(IOUtils.java:44)
at com.amazonaws.util.IOUtils.toString(IOUtils.java:58)
при val data = scala.io.Source.fromInputStream(inputStream).mkString