From 6c4736fc8f99b584c6533d203692a88123af9525 Mon Sep 17 00:00:00 2001 From: Andy Hsu Date: Mon, 28 Aug 2023 16:33:09 +0800 Subject: [PATCH] fix: allow no `Last-Modified` on upload api --- server/handles/fsup.go | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/server/handles/fsup.go b/server/handles/fsup.go index b27dd5ed..df1a5dee 100644 --- a/server/handles/fsup.go +++ b/server/handles/fsup.go @@ -14,6 +14,17 @@ import ( "github.com/gin-gonic/gin" ) +func getLastModified(c *gin.Context) time.Time { + now := time.Now() + lastModifiedStr := c.GetHeader("Last-Modified") + lastModifiedMillisecond, err := strconv.ParseInt(lastModifiedStr, 10, 64) + if err != nil { + return now + } + lastModified := time.UnixMilli(lastModifiedMillisecond) + return lastModified +} + func FsStream(c *gin.Context) { path := c.GetHeader("File-Path") path, err := url.PathUnescape(path) @@ -35,18 +46,11 @@ func FsStream(c *gin.Context) { common.ErrorResp(c, err, 400) return } - lastModifiedStr := c.GetHeader("Last-Modified") - lastModifiedMillisecond, err := strconv.ParseInt(lastModifiedStr, 10, 64) - if err != nil { - common.ErrorResp(c, err, 400) - return - } - lastModified := time.UnixMilli(lastModifiedMillisecond) s := &stream.FileStream{ Obj: &model.Object{ Name: name, Size: size, - Modified: lastModified, + Modified: getLastModified(c), }, Reader: c.Request.Body, Mimetype: c.GetHeader("Content-Type"), @@ -72,13 +76,6 @@ func FsForm(c *gin.Context) { common.ErrorResp(c, err, 400) return } - lastModifiedStr := c.GetHeader("Last-Modified") - lastModifiedMillisecond, err := strconv.ParseInt(lastModifiedStr, 10, 64) - if err != nil { - common.ErrorResp(c, err, 400) - return - } - lastModified := time.UnixMilli(lastModifiedMillisecond) asTask := c.GetHeader("As-Task") == "true" user := c.MustGet("user").(*model.User) path, err = user.JoinPath(path) @@ -110,7 +107,7 @@ func FsForm(c *gin.Context) { Obj: &model.Object{ Name: name, Size: file.Size, - Modified: lastModified, + Modified: getLastModified(c), }, Reader: f, Mimetype: file.Header.Get("Content-Type"),