我在Go中有一个带有fasthttp的文件服务器,该服务器用于发布和删除文件。
当我创建并发布文件时,服务器可以正确删除它,但是当我在创建并发布文件后提供文件时,我无法删除它,因为我收到一个“该进程无法访问文件,因为正在使用该文件另一个过程”错误。
似乎fasthttp缓存文件并保持打开状态以供以后请求。我该如何解决?
我正在使用fasthttp.ServeFile进行服务,删除文件的功能是:
requestAuth(ctx)
targetPath := path.Join(RootDirPath, string(ctx.Path()))
removeAll := false
{
all := string(ctx.Request.Header.Peek("All"))
if len(all) > 0 {
if all == "1" || all == "?1" {
removeAll = true
}
}
}
var e error
if removeAll {
e = os.RemoveAll(targetPath)
} else {
e = os.Remove(targetPath)
}
if e != nil {
panic(e)
}
sendDoneResponse(ctx)