Spray:发送响应后删除临时文件
Spray: delete temporary file after response is sent
我使用 getFromFile
来响应临时文件。写入响应流后如何删除此文件?
底层服务器是spray-servlet。
终于找到了解决办法:
case class CleanupFile(file: java.io.File)
def sendFileAndCleanup(file: java.io.File) =
mapRequestContext { ctx =>
ctx.withRouteResponseMapped {
case r: spray.http.HttpResponse => r.withAck(CleanupFile(file))
case x => x
}
} {
getFromFile(file)
}
然后在 actor 中用 runRoute
处理 CleanupFile
:
def receive = runRoute(routes) orElse {
case CleanupFile(file) => Try(file.delete())
}
我使用 getFromFile
来响应临时文件。写入响应流后如何删除此文件?
底层服务器是spray-servlet。
终于找到了解决办法:
case class CleanupFile(file: java.io.File)
def sendFileAndCleanup(file: java.io.File) =
mapRequestContext { ctx =>
ctx.withRouteResponseMapped {
case r: spray.http.HttpResponse => r.withAck(CleanupFile(file))
case x => x
}
} {
getFromFile(file)
}
然后在 actor 中用 runRoute
处理 CleanupFile
:
def receive = runRoute(routes) orElse {
case CleanupFile(file) => Try(file.delete())
}