From 209f1cb1fef17b689b788e37cc3c47c87aec9f0a Mon Sep 17 00:00:00 2001 From: Kevin Nielsen Date: Thu, 14 Dec 2023 08:09:17 +0100 Subject: [PATCH] [Feature] Change the filename from uuid to existing or declared filename (#11) * chore: change filename to unique * feat: change filename to existing or declared filename instead of uuid --- models/docModel.go | 2 +- models/imageModel.go | 2 +- util/handlers/docs/handleDocsUpload.go | 9 +++++++-- util/handlers/image/handleImageUpload.go | 13 +++++++++++-- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/models/docModel.go b/models/docModel.go index 2aa393f..185caa6 100644 --- a/models/docModel.go +++ b/models/docModel.go @@ -5,6 +5,6 @@ import "gorm.io/gorm" type Doc struct { gorm.Model - FileName string `json:"file_name"` + FileName string `json:"file_name" gorm:"unique"` Checksum []byte `json:"checksum"` } diff --git a/models/imageModel.go b/models/imageModel.go index b1a793b..ea412fd 100644 --- a/models/imageModel.go +++ b/models/imageModel.go @@ -5,6 +5,6 @@ import "gorm.io/gorm" type Image struct { gorm.Model - FileName string `json:"file_name"` + FileName string `json:"file_name" gorm:"unique"` Checksum []byte `json:"checksum"` } diff --git a/util/handlers/docs/handleDocsUpload.go b/util/handlers/docs/handleDocsUpload.go index e7c5c2b..bfc6d9e 100644 --- a/util/handlers/docs/handleDocsUpload.go +++ b/util/handlers/docs/handleDocsUpload.go @@ -8,11 +8,11 @@ import ( "github.com/gin-gonic/gin" "github.com/go-fast-cdn/database" "github.com/go-fast-cdn/util" - "github.com/google/uuid" ) func HandleDocsUpload(c *gin.Context) { fileHeader, err := c.FormFile("doc") + newName := c.PostForm("filename") if err != nil { c.String(http.StatusBadRequest, "Failed to read file: %s", err.Error()) @@ -51,7 +51,12 @@ func HandleDocsUpload(c *gin.Context) { } fileHashBuffer := md5.Sum(fileBuffer) - fileName := uuid.NewString() + filepath.Ext(fileHeader.Filename) + var fileName string + if newName == "" { + fileName = fileHeader.Filename + } else { + fileName = newName + filepath.Ext(fileHeader.Filename) + } savedFileName, alreadyExists := database.AddDoc(fileName, fileHashBuffer[:]) if !alreadyExists { diff --git a/util/handlers/image/handleImageUpload.go b/util/handlers/image/handleImageUpload.go index e1dbe7a..c67879b 100644 --- a/util/handlers/image/handleImageUpload.go +++ b/util/handlers/image/handleImageUpload.go @@ -8,11 +8,11 @@ import ( "github.com/gin-gonic/gin" "github.com/go-fast-cdn/database" "github.com/go-fast-cdn/util" - "github.com/google/uuid" ) func HandleImageUpload(c *gin.Context) { fileHeader, err := c.FormFile("image") + newName := c.PostForm("filename") if err != nil { c.String(http.StatusBadRequest, "Failed to read file: %s", err.Error()) @@ -49,7 +49,16 @@ func HandleImageUpload(c *gin.Context) { } fileHashBuffer := md5.Sum(fileBuffer) - fileName := uuid.NewString() + filepath.Ext(fileHeader.Filename) + + var fileName string + + if newName == "" { + + fileName = fileHeader.Filename + } else { + fileName = newName + filepath.Ext(fileHeader.Filename) + } + savedFileName, alreadyExists := database.AddImage(fileName, fileHashBuffer[:]) if !alreadyExists {