使用 akka-stream-alpakka 从 s3 下载 pdf 文件

Download pdf file from s3 using akka-stream-alpakka

我正在尝试使用 akka-stream-alpakka 连接器从 S3 下载 pdf 文件。我有 s3 路径并尝试在 alpakka s3Client 上使用包装方法下载 pdf。

def getSource(s3Path: String): Source[ByteString, NotUsed] = {
    val (source, _) = s3Client.download(s3Bucket, s3Path)
    source
  }

从我的主要代码中,我调用了上面的方法并尝试将其转换为文件

               val file = new File("certificate.pdf")
               val res: Future[IOResult] = getSource(data.s3PdfPath)
                                            .runWith(FileIO.toFile(file))

但是,我没有将它转换为文件,而是使用了一种 IOResult。有人可以指导我在这方面哪里出错了吗?

检查 IOResult,如果成功,您可以使用您的文件:

res.foreach { 
  case IOResult(bytes, Success(_)) => 
    println(s"$bytes bytes written to $file")

    ... // do whatever you want with your file

  case _ =>
    println("some error occurred.")
}
  def download(bucket: String, bucketKey: String, filePath: String) = {
    val (s3Source: Source[ByteString, _], _) = s3Client.download(bucket, bucketKey)
    val result = s3Source.toMat(FileIO.toPath(Paths.get(filePath)))(Keep.right)
      .run()

    result
  }


download(s3Bucket, key, newSigFilepath).onComplete {

}