diff --git a/expiry.go b/expiry.go index d8b4ba5..cea3c3b 100644 --- a/expiry.go +++ b/expiry.go @@ -4,10 +4,12 @@ import ( "time" ) +var neverExpire = time.Unix(0, 0) + // Determine if a file with expiry set to "ts" has expired yet func isTsExpired(ts time.Time) bool { now := time.Now() - return !ts.IsZero() && now.After(ts) + return ts != neverExpire && now.After(ts) } // Determine if the given filename is expired diff --git a/meta.go b/meta.go index adfb969..b92171b 100644 --- a/meta.go +++ b/meta.go @@ -23,7 +23,7 @@ func metadataWrite(filename string, upload *Upload) error { w := bufio.NewWriter(file) - fmt.Fprintln(w, upload.Expiry) + fmt.Fprintln(w, upload.Expiry.Unix()) fmt.Fprintln(w, upload.DeleteKey) return w.Flush() diff --git a/upload.go b/upload.go index b7ced73..06392fc 100644 --- a/upload.go +++ b/upload.go @@ -199,8 +199,8 @@ func processUpload(upReq UploadRequest) (upload Upload, err error) { if len(extension) == 0 { // Pull the first 512 bytes off for use in MIME detection header = make([]byte, 512) - n, err := upReq.src.Read(header) - if n == 0 || err != nil { + n, _ := upReq.src.Read(header) + if n == 0 { return upload, errors.New("Empty file") } header = header[:n] @@ -246,7 +246,10 @@ func processUpload(upReq UploadRequest) (upload Upload, err error) { defer dst.Close() // Get the rest of the metadata needed for storage - if upReq.expiry != 0 { + if upReq.expiry == 0 { + upload.Expiry = neverExpire + + } else { upload.Expiry = time.Now().Add(upReq.expiry) }