[server] Copy thumb and file in parallel

This commit is contained in:
Neeraj Gupta 2024-04-20 12:49:28 +05:30
parent 91620965b0
commit cbdd116cea

View file

@ -12,6 +12,7 @@ import (
"github.com/gin-contrib/requestid"
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
"golang.org/x/sync/errgroup"
"sync"
"time"
)
@ -166,12 +167,14 @@ func (fc *FileCopyController) createCopy(c *gin.Context, fcInternal fileCopyInte
// using HotS3Client copy the File and Thumbnail
s3Client := fc.S3Config.GetHotS3Client()
hotBucket := fc.S3Config.GetHotBucket()
err := copyS3Object(s3Client, hotBucket, fcInternal.FileCopyReq)
if err != nil {
return nil, err
}
err = copyS3Object(s3Client, hotBucket, fcInternal.ThumbCopyReq)
if err != nil {
g := new(errgroup.Group)
g.Go(func() error {
return copyS3Object(s3Client, hotBucket, fcInternal.FileCopyReq)
})
g.Go(func() error {
return copyS3Object(s3Client, hotBucket, fcInternal.ThumbCopyReq)
})
if err := g.Wait(); err != nil {
return nil, err
}
file := fcInternal.newFile(userID)