mirror of https://github.com/Xhofe/alist
30 lines
735 B
Go
30 lines
735 B
Go
package webdav
|
|
|
|
import (
|
|
log "github.com/sirupsen/logrus"
|
|
"net/http"
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
func (h *Handler) getModTime(r *http.Request) time.Time {
|
|
return h.getHeaderTime(r, "X-OC-Mtime")
|
|
}
|
|
|
|
// owncloud/ nextcloud haven't impl this, but we can add the support since rclone may support this soon
|
|
func (h *Handler) getCreateTime(r *http.Request) time.Time {
|
|
return h.getHeaderTime(r, "X-OC-Ctime")
|
|
}
|
|
|
|
func (h *Handler) getHeaderTime(r *http.Request, header string) time.Time {
|
|
hVal := r.Header.Get(header)
|
|
if hVal != "" {
|
|
modTimeUnix, err := strconv.ParseInt(hVal, 10, 64)
|
|
if err == nil {
|
|
return time.Unix(modTimeUnix, 0)
|
|
}
|
|
log.Warnf("getModTime in Webdav, failed to parse %s, %s", header, err)
|
|
}
|
|
return time.Now()
|
|
}
|