Я пытаюсь загрузить pdf-файл с S3, используя соединитель akka-stream-alpakka. У меня есть путь s3, и я пытаюсь скачать pdf с помощью метода-обертки над alpakka s3Client.
def getSource(s3Path: String): Source[ByteString, NotUsed] = {
val (source, _) = s3Client.download(s3Bucket, s3Path)
source
}
Из моего основного кода я вызываю вышеуказанный метод, получаю исходный код pdf и могу загрузить PDF. Однако вместо загрузки файла мне теперь нужно иметь pdf в виде массива байтов в памяти, чтобы я мог выполнить какую-то другую обработку.
Мой текущий код выглядит примерно так
val filePath = "certificate.pdf"
val value1: Future[IOResult] =
awsS3Bucket
.getSource(data.s3PdfPath)
.toMat(FileIO.toPath(Paths.get(filePath)))(Keep.right)
.run()
Я пробовал несколько комбинаций, но безуспешно. Может кто-нибудь указать, какие изменения необходимо внести в приведенный выше код, чтобы иметь тип value1
Future[Array[Bytes]]
вместо Future[IOResult]
.
TIA.