From bb689c62e1c67157cff73a4011d29fd8cf6e47bb Mon Sep 17 00:00:00 2001 From: Rogee Date: Tue, 6 May 2025 11:13:49 +0800 Subject: [PATCH] feat: add upload timeout --- backend/app/jobs/download_from_alioss.go | 2 +- backend/app/jobs/video_extract_head_image.go | 2 +- backend/app/jobs/video_store_short.go | 2 +- backend/providers/ali/oss_client.go | 9 ++++++--- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/backend/app/jobs/download_from_alioss.go b/backend/app/jobs/download_from_alioss.go index 0f67d23..969dd45 100644 --- a/backend/app/jobs/download_from_alioss.go +++ b/backend/app/jobs/download_from_alioss.go @@ -84,7 +84,7 @@ func (w *DownloadFromAliOSSWorker) Work(ctx context.Context, job *Job[DownloadFr } log.Infof("Starting download for file: %s", media.Path) - if err := w.oss.Download(ctx, media.Path, dst, ali.WithInternal(true)); err != nil { + if err := w.oss.Download(ctx, media.Path, dst, ali.WithInternal()); err != nil { log.Errorf("Error downloading file: %v", err) return err } diff --git a/backend/app/jobs/video_extract_head_image.go b/backend/app/jobs/video_extract_head_image.go index 10785d7..c6d63e5 100644 --- a/backend/app/jobs/video_extract_head_image.go +++ b/backend/app/jobs/video_extract_head_image.go @@ -101,7 +101,7 @@ func (w *VideoExtractHeadImageWorker) Work(ctx context.Context, job *Job[VideoEx } // upload to oss - if err := w.oss.Upload(ctx, output, imageMedia.Path, ali.WithInternal(true)); err != nil { + if err := w.oss.Upload(ctx, output, imageMedia.Path, ali.WithInternal()); err != nil { log.Errorf("Error uploading image to OSS: %v", err) return JobCancel(err) } diff --git a/backend/app/jobs/video_store_short.go b/backend/app/jobs/video_store_short.go index 5911265..b5130b4 100644 --- a/backend/app/jobs/video_store_short.go +++ b/backend/app/jobs/video_store_short.go @@ -101,7 +101,7 @@ func (w *VideoStoreShortWorker) Work(ctx context.Context, job *Job[VideoStoreSho } // upload to oss - if err := w.oss.Upload(ctx, job.Args.FilePath, filePath, ali.WithInternal(true)); err != nil { + if err := w.oss.Upload(ctx, job.Args.FilePath, filePath, ali.WithInternal()); err != nil { log.Errorf("Error uploading file to OSS: %v", err) return err } diff --git a/backend/providers/ali/oss_client.go b/backend/providers/ali/oss_client.go index 2754f6b..bea8390 100644 --- a/backend/providers/ali/oss_client.go +++ b/backend/providers/ali/oss_client.go @@ -22,9 +22,9 @@ func WithExpire(expire time.Duration) OSSOption { } } -func WithInternal(internal bool) OSSOption { +func WithInternal() OSSOption { return func(o *OSSOptions) { - o.internal = internal + o.internal = true } } @@ -152,7 +152,10 @@ func (c *OSSClient) Upload(ctx context.Context, input, dst string, opts ...OSSOp client = c.internalClient } - if _, err := client.PutObjectFromFile(ctx, request, input); err != nil { + ossFuncs := []func(*oss.Options){ + oss.OpReadWriteTimeout(time.Minute * 20), + } + if _, err := client.PutObjectFromFile(ctx, request, input, ossFuncs...); err != nil { return err } return nil