|
|
package main
import ( "time"
"github.com/andreimarcu/linx-server/expiry" "github.com/dustin/go-humanize" )
var defaultExpiryList = []uint64{ 60, 300, 3600, 86400, 604800, 2419200, 31536000, }
type ExpirationTime struct { Seconds uint64 Human string }
// Determine if the given filename is expired
func isFileExpired(filename string) (bool, error) { metadata, err := storageBackend.Head(filename) if err != nil { return false, err }
return expiry.IsTsExpired(metadata.Expiry), nil }
// Return a list of expiration times and their humanized versions
func listExpirationTimes() []ExpirationTime { epoch := time.Now() actualExpiryInList := false var expiryList []ExpirationTime
for _, expiryEntry := range defaultExpiryList { if Config.maxExpiry == 0 || expiryEntry <= Config.maxExpiry { if expiryEntry == Config.maxExpiry { actualExpiryInList = true }
duration := time.Duration(expiryEntry) * time.Second expiryList = append(expiryList, ExpirationTime{ Seconds: expiryEntry, Human: humanize.RelTime(epoch, epoch.Add(duration), "", ""), }) } }
if Config.maxExpiry == 0 { expiryList = append(expiryList, ExpirationTime{ 0, "never", }) } else if actualExpiryInList == false { duration := time.Duration(Config.maxExpiry) * time.Second expiryList = append(expiryList, ExpirationTime{ Config.maxExpiry, humanize.RelTime(epoch, epoch.Add(duration), "", ""), }) }
return expiryList }
|