Ich möchte eine mgo-Sitzung beenden, nachdem sie vollständig an den Client gestreamt wurde. Zuerst dachte ich, das könnte funktionieren, aber es scheint, dass die defer
nur wartet, bis der Func beginnt oder etwas zurückkehrt.Wie verschiebt man eine mgo Session, bis sie vollständig an den Client gestreamt wurde?
func (c App) OpenFile(fileId string) revel.Result {
// convert string to bson.ObjectId
objId := bson.ObjectIdHex(fileId)
file, session := OpenFile(objId)
defer session.Close()
// memfile io.Reader, filename string, delivery ContentDisposition, modtime time.Time
var now = time.Now()
return c.RenderBinary(file, "filename", "inline", now)
}