From bb2770e6bdd521a6de525106e256e6d462586b2b Mon Sep 17 00:00:00 2001 From: Darius Rapalis Date: Fri, 14 Mar 2025 00:28:09 +0200 Subject: [PATCH] unique names for thumbnails --- handler_upload_thumbnail.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/handler_upload_thumbnail.go b/handler_upload_thumbnail.go index a0e66f5..3332a9b 100644 --- a/handler_upload_thumbnail.go +++ b/handler_upload_thumbnail.go @@ -2,6 +2,8 @@ package main import ( "bytes" + "crypto/rand" + "encoding/base64" "fmt" "io" "mime" @@ -89,7 +91,15 @@ func (cfg *apiConfig) handlerUploadThumbnail(w http.ResponseWriter, r *http.Requ return } - path := filepath.Join(cfg.assetsRoot, videoIDString+"."+extension) + thumbnailName := make([]byte, 32) + _, err = rand.Read(thumbnailName) + if err != nil { + respondWithError(w, http.StatusBadRequest, "Couldn't generate random name", err) + } + + thumbnailPathName := base64.RawURLEncoding.EncodeToString(thumbnailName) + + path := filepath.Join(cfg.assetsRoot, thumbnailPathName+extension) f, err := os.Create(path) if err != nil { @@ -103,7 +113,7 @@ func (cfg *apiConfig) handlerUploadThumbnail(w http.ResponseWriter, r *http.Requ return } - url := fmt.Sprintf("http://localhost:%s/assets/%s.%s", cfg.port, videoID, extension) + url := fmt.Sprintf("http://localhost:%s/assets/%s%s", cfg.port, thumbnailPathName, extension) video.ThumbnailURL = &url