La directive Akka "fileUpload" copie-t-elle en mémoire le fichier entier de l'entité en entrée? Existe-t-il un moyen de télécharger en plusieurs parties un gros fichier de 1 Go sans consommer 1 Go de mémoire?Akka directive fileUpload copie le fichier entier de l'entité en entrée dans la mémoire?
approche val uploadFile = File.createTempFile("uploadFile", ".txt")
extractRequestContext { ctx =>
implicit val materializer = ctx.materializer
implicit val ec = ctx.executionContext
fileUpload("csv") {
case (metadata, byteSource) =>
val sumF = byteSource.runFold(ByteString.empty) { case (acc, i) => acC++ i }.map(s => s.utf8String)
onSuccess(sumF) { sum =>
Files.write(Paths.get(uploadFile.getAbsolutePath), sum.toString.getBytes)
logger.info(StatusCodes.OK + "Successfully completed fileUpload ")
complete(s"Successfully completed fileUpload") }}
}