feat: receive lastModified from upload api

This commit is contained in:
Andy Hsu 2023-08-27 23:03:09 +08:00
parent a3748af772
commit 19d34e2eb8

View File

@ -1,12 +1,13 @@
package handles package handles
import ( import (
"github.com/alist-org/alist/v3/internal/stream"
"net/url" "net/url"
stdpath "path" stdpath "path"
"strconv" "strconv"
"time" "time"
"github.com/alist-org/alist/v3/internal/stream"
"github.com/alist-org/alist/v3/internal/fs" "github.com/alist-org/alist/v3/internal/fs"
"github.com/alist-org/alist/v3/internal/model" "github.com/alist-org/alist/v3/internal/model"
"github.com/alist-org/alist/v3/server/common" "github.com/alist-org/alist/v3/server/common"
@ -34,11 +35,18 @@ func FsStream(c *gin.Context) {
common.ErrorResp(c, err, 400) common.ErrorResp(c, err, 400)
return 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{ s := &stream.FileStream{
Obj: &model.Object{ Obj: &model.Object{
Name: name, Name: name,
Size: size, Size: size,
Modified: time.Now(), Modified: lastModified,
}, },
Reader: c.Request.Body, Reader: c.Request.Body,
Mimetype: c.GetHeader("Content-Type"), Mimetype: c.GetHeader("Content-Type"),
@ -64,6 +72,13 @@ func FsForm(c *gin.Context) {
common.ErrorResp(c, err, 400) common.ErrorResp(c, err, 400)
return 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" asTask := c.GetHeader("As-Task") == "true"
user := c.MustGet("user").(*model.User) user := c.MustGet("user").(*model.User)
path, err = user.JoinPath(path) path, err = user.JoinPath(path)
@ -95,7 +110,7 @@ func FsForm(c *gin.Context) {
Obj: &model.Object{ Obj: &model.Object{
Name: name, Name: name,
Size: file.Size, Size: file.Size,
Modified: time.Now(), Modified: lastModified,
}, },
Reader: f, Reader: f,
Mimetype: file.Header.Get("Content-Type"), Mimetype: file.Header.Get("Content-Type"),