后端长时间下载,临时token 续期bug 修复
continuous-integration/drone/push Build is running

This commit is contained in:
2026-06-03 14:34:25 +08:00
parent ff2c619df7
commit 8b046e61ab
2 changed files with 41 additions and 19 deletions
+33 -13
View File
@@ -220,7 +220,7 @@ public class OSSService(IOptionsMonitor<ObjectStoreServiceOptions> options,
public object result { get; private set; }
private static readonly object _tokenLock = new();
/// <summary>
/// 将指定前缀下的所有现有文件立即转为目标存储类型
@@ -934,32 +934,52 @@ public class OSSService(IOptionsMonitor<ObjectStoreServiceOptions> options,
//后端批量上传 或者下载,不每个文件获取临时token
private void BackBatchGetToken()
{
if (ObjectStoreServiceOptions.ObjectStoreUse == "AliyunOSS")
{
if (AliyunOSSTempToken == null)
if (AliyunOSSTempToken != null && AliyunOSSTempToken.Expiration > DateTime.UtcNow.AddMinutes(15))
{
GetObjectStoreTempToken();
}
//token 过期了
if (AliyunOSSTempToken?.Expiration.AddSeconds(10) <= DateTime.Now)
{
GetObjectStoreTempToken();
return;
}
lock (_tokenLock)
{
if (AliyunOSSTempToken == null ||
AliyunOSSTempToken.Expiration <= DateTime.UtcNow.AddMinutes(15))
{
GetObjectStoreTempToken();
Log.Logger.Warning("后端获取阿里云临时 Token");
}
}
}
else if (ObjectStoreServiceOptions.ObjectStoreUse == "AWS")
{
if (AWSTempToken == null)
if (AWSTempToken != null && AWSTempToken.Expiration > DateTime.UtcNow.AddMinutes(15))
{
GetObjectStoreTempToken();
return;
}
//token 过期了
if (AWSTempToken.Expiration?.AddSeconds(10) <= DateTime.Now)
lock (_tokenLock)
{
GetObjectStoreTempToken();
if (AWSTempToken == null ||
AWSTempToken.Expiration <= DateTime.UtcNow.AddMinutes(15))
{
GetObjectStoreTempToken();
Log.Logger.Warning("后端获取s3 临时 Token");
}
}
}
}