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;
}