From f3d123ee3bacda8d4c7343e427814c2c7feea254 Mon Sep 17 00:00:00 2001 From: nquidox Date: Sat, 18 Oct 2025 16:07:56 +0300 Subject: [PATCH] replace domain for links --- internal/api/merch/handler.go | 2 +- internal/mediaStorage/service.go | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/internal/api/merch/handler.go b/internal/api/merch/handler.go index b9b8227..a442f9a 100644 --- a/internal/api/merch/handler.go +++ b/internal/api/merch/handler.go @@ -21,7 +21,7 @@ type Deps struct { func NewHandler(deps Deps) *Handler { packageBucketName := "user-merch-images" - expires := time.Minute * 1 + expires := time.Minute * 5 r := NewRepo(deps.DB) s := newService(r, deps.Media, packageBucketName, expires) diff --git a/internal/mediaStorage/service.go b/internal/mediaStorage/service.go index a55b6fc..3a3d7c5 100644 --- a/internal/mediaStorage/service.go +++ b/internal/mediaStorage/service.go @@ -7,7 +7,6 @@ import ( log "github.com/sirupsen/logrus" "io" "net/url" - "strings" "time" ) @@ -46,12 +45,21 @@ func (s *Service) Get(ctx context.Context, bucket, object string, expires time.D return "", err } - link := presigned.String() - if s.domain != "" { - link = strings.Replace(link, fmt.Sprintf("http://%s", s.endpoint), s.domain, 1) + u, err := url.Parse(presigned.String()) + if err != nil { + return "", err } - return link, nil + if s.domain != "" { + domainURL, err := url.Parse(s.domain) + if err != nil { + return "", fmt.Errorf("invalid domain URL: %w", err) + } + u.Scheme = domainURL.Scheme + u.Host = domainURL.Host + } + + return u.String(), nil } func (s *Service) Delete(ctx context.Context, bucket, object string) error {