| 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() | |
| } | |