diff --git a/server/upload/internal/config/config.go b/server/upload/internal/config/config.go index 59ee1720..64fa35ad 100644 --- a/server/upload/internal/config/config.go +++ b/server/upload/internal/config/config.go @@ -25,4 +25,12 @@ type Config struct { Version string Urls []string } + AliyunOSS struct { + Endpoint string `json:"endpoint"` + AccessKeyId string `json:"access_key_id"` + AccessKeySecret string `json:"access_key_secret"` + BucketName string `json:"bucket_name"` + BucketUrl string `json:"bucket_url"` + BasePath string `json:"base_path"` + } } diff --git a/server/upload/internal/logic/uploadfilebackendlogic.go b/server/upload/internal/logic/uploadfilebackendlogic.go index 4587d643..c5f7168c 100644 --- a/server/upload/internal/logic/uploadfilebackendlogic.go +++ b/server/upload/internal/logic/uploadfilebackendlogic.go @@ -7,6 +7,7 @@ import ( "fusenapi/utils/hash" "io" "net/http" + "time" "context" @@ -107,7 +108,19 @@ func (l *UploadFileBackendLogic) UploadFileBackend(req *types.UploadFileBackendR } // 是否备份--异步任务 + if req.BackupType != "" { + time.AfterFunc(time.Second*1, func() { + upload.UploadType = "oss" + upload.AliyunOSS.Endpoint = l.svcCtx.Config.AliyunOSS.Endpoint + upload.AliyunOSS.AccessKeyId = l.svcCtx.Config.AliyunOSS.AccessKeyId + upload.AliyunOSS.AccessKeySecret = l.svcCtx.Config.AliyunOSS.AccessKeySecret + upload.AliyunOSS.BucketName = l.svcCtx.Config.AliyunOSS.BucketName + upload.AliyunOSS.BucketUrl = l.svcCtx.Config.AliyunOSS.BucketUrl + upload.AliyunOSS.BasePath = l.svcCtx.Config.AliyunOSS.BasePath + err = upload.UploadFileByUrl(resourceId, uploadRes.ResourceUrl) + }) + } // 返回成功的响应和上传URL return resp.SetStatus(basic.CodeOK, map[string]interface{}{ "upload_data": UploadUrl{ diff --git a/server/upload/internal/logic/uploadfilebaselogic.go b/server/upload/internal/logic/uploadfilebaselogic.go index 1a25fa1b..05502299 100644 --- a/server/upload/internal/logic/uploadfilebaselogic.go +++ b/server/upload/internal/logic/uploadfilebaselogic.go @@ -5,6 +5,7 @@ import ( "fusenapi/utils/basic" "fusenapi/utils/file" "fusenapi/utils/hash" + "time" "context" @@ -88,6 +89,21 @@ func (l *UploadFileBaseLogic) UploadFileBase(req *types.UploadFileBaseReq, useri return resp.SetStatus(basic.CodeFileUploadErr, "upload file failed") } + // 是否备份--异步任务 + if req.BackupType != "" { + time.AfterFunc(time.Second*1, func() { + upload.UploadType = "oss" + upload.AliyunOSS.Endpoint = l.svcCtx.Config.AliyunOSS.Endpoint + upload.AliyunOSS.AccessKeyId = l.svcCtx.Config.AliyunOSS.AccessKeyId + upload.AliyunOSS.AccessKeySecret = l.svcCtx.Config.AliyunOSS.AccessKeySecret + upload.AliyunOSS.BucketName = l.svcCtx.Config.AliyunOSS.BucketName + upload.AliyunOSS.BucketUrl = l.svcCtx.Config.AliyunOSS.BucketUrl + upload.AliyunOSS.BasePath = l.svcCtx.Config.AliyunOSS.BasePath + + err = upload.UploadFileByUrl(resourceId, uploadRes.ResourceUrl) + }) + } + // 返回成功的响应和上传URL return resp.SetStatus(basic.CodeOK, map[string]interface{}{ "upload_data": UploadUrl{