func main() { var err error box.ParseFlags() // Box connections var ( database *box.Database storage *box.Storage ) // Connect to database database, err = box.ConnectDatabase() if err != nil { box.LogFatal("%v", err) } defer database.Close() // Connect to storage storage, err = box.ConnectStorage() if err != nil { box.LogFatal("%v", err) } defer storage.Close() // Open transaction var transaction *box.Transaction transaction, err = database.BeginTransaction() if err != nil { box.LogFatal("%v", err) } defer transaction.Rollback() // Find all expired uploads var ids []string // Get all ids in storage ids, err = storage.List() if err != nil { box.LogFatal("%v", err) } // Remove all expired uploads from storage for _, id := range ids { var expired bool // Query if the file is expired expired, err = transaction.QueryExpiredUpload(id) if err != nil { box.LogFatal("%v", err) } if expired { box.LogDebug("Removing file: %s", id) err = storage.Remove(id) if err != os.ErrNotExist { // File is already gone - ignore it } else if err != nil { box.LogError("%v", err) } } } }