ws_bucket/api/maintenance.go
2019-03-23 15:06:30 -04:00

31 lines
637 B
Go

package api
import (
"github.com/sirupsen/logrus"
"os"
"path/filepath"
"time"
)
func (api *WebApi) DisposeStaleUploadSlots() {
var toDispose []UploadSlot
api.db.Where("? >= to_dispose_date", time.Now().Unix()).Find(&toDispose)
for _, slot := range toDispose {
path := filepath.Join(WorkDir, slot.FileName)
err := os.Remove(path)
api.db.Where("token = ?", slot.Token).Delete(UploadSlot{})
logrus.WithFields(logrus.Fields{
"fileName": slot.FileName,
"err": err,
}).Trace("Deleted file")
}
logrus.WithFields(logrus.Fields{
"staleUploadSlots": len(toDispose),
}).Info("Disposed stale upload slots")
}