From 695de70894de9277e4c4789a8bb9e6cb55ab150e Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 7 Aug 2025 16:00:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E7=AB=AF=E6=89=B9=E9=87=8F=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Application/Helper/OSSService.cs | 74 ++++++++++---------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/IRaCIS.Core.Application/Helper/OSSService.cs b/IRaCIS.Core.Application/Helper/OSSService.cs index 6138d2cfc..2f084d214 100644 --- a/IRaCIS.Core.Application/Helper/OSSService.cs +++ b/IRaCIS.Core.Application/Helper/OSSService.cs @@ -190,7 +190,7 @@ public class OSSService : IOSSService /// public async Task UploadToOSSAsync(Stream fileStream, string oosFolderPath, string fileRealName, bool isFileNameAddGuid = true) { - GetObjectStoreTempToken(); + BackBatchGetToken(); var ossRelativePath = isFileNameAddGuid ? $"{oosFolderPath}/{Guid.NewGuid()}_{fileRealName}" : $"{oosFolderPath}/{fileRealName}"; @@ -280,6 +280,37 @@ public class OSSService : IOSSService } + //后端批量上传 或者下载,不每个文件获取临时token + private void BackBatchGetToken() + { + if (ObjectStoreServiceOptions.ObjectStoreUse == "AliyunOSS") + { + if(AliyunOSSTempToken == null) + { + GetObjectStoreTempToken(); + } + //token 过期了 + else if (AliyunOSSTempToken.Expiration.AddSeconds(10) <= DateTime.Now) + { + GetObjectStoreTempToken(); + } + + + } + else if (ObjectStoreServiceOptions.ObjectStoreUse == "AWS") + { + if (AWSTempToken == null) + { + GetObjectStoreTempToken(); + } + //token 过期了 + else if (AWSTempToken.Expiration?.AddSeconds(10) <= DateTime.Now) + { + GetObjectStoreTempToken(); + } + } + } + /// /// oosFolderPath 不要 "/ "开头 应该: TempFolder/ChildFolder @@ -291,7 +322,7 @@ public class OSSService : IOSSService /// public async Task UploadToOSSAsync(string localFilePath, string oosFolderPath, bool isFileNameAddGuid = true) { - GetObjectStoreTempToken(); + BackBatchGetToken(); var localFileName = Path.GetFileName(localFilePath); @@ -361,22 +392,7 @@ public class OSSService : IOSSService public async Task DownLoadFromOSSAsync(string ossRelativePath, string localFilePath) { - if (isFirstCall) - { - GetObjectStoreTempToken(); - isFirstCall = false; - } - else - { - //判断是否过期了 - if (ObjectStoreServiceOptions.ObjectStoreUse == "AliyunOSS") - { - if (AliyunOSSTempToken != null && AliyunOSSTempToken.Expiration <= DateTime.Now) - { - GetObjectStoreTempToken(); - } - } - } + BackBatchGetToken(); ossRelativePath = ossRelativePath.TrimStart('/'); try @@ -394,7 +410,7 @@ public class OSSService : IOSSService // 将下载的文件流保存到本地文件 using (var fs = File.OpenWrite(localFilePath)) { - await result.Content.CopyToAsync(fs); + await result.Content.CopyToAsync(fs); } } @@ -1014,25 +1030,9 @@ public class OSSService : IOSSService } } - private bool isFirstCall = true; public async Task GetObjectSizeAsync(string sourcePath) { - if (isFirstCall) - { - GetObjectStoreTempToken(); - isFirstCall = false; - } - else - { - //判断是否过期了 - if (ObjectStoreServiceOptions.ObjectStoreUse == "AliyunOSS") - { - if(AliyunOSSTempToken != null && AliyunOSSTempToken.Expiration <= DateTime.Now) - { - GetObjectStoreTempToken(); - } - } - } + BackBatchGetToken(); var objectkey = sourcePath.Trim('/'); @@ -1046,7 +1046,7 @@ public class OSSService : IOSSService var key = HttpUtility.UrlDecode(objectkey); var metadata = _ossClient.GetObjectMetadata(aliConfig.BucketName, key); - long fileSize = metadata?.ContentLength??0; // 文件大小(字节) + long fileSize = metadata?.ContentLength ?? 0; // 文件大小(字节) return fileSize; }