From 0afcaa7d707848f07dcf88b3cfec8ecbe34a4ab5 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Mon, 12 Jan 2026 15:13:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E6=A5=9Adir=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRC.Core.SCP/Service/CStoreSCPService.cs | 2 +- IRaCIS.Core.Application/Helper/OSSService.cs | 20 +++++++++++++++++--- IRaCIS.Core.Application/TestService.cs | 12 ++++++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/IRC.Core.SCP/Service/CStoreSCPService.cs b/IRC.Core.SCP/Service/CStoreSCPService.cs index 9aa44bcf9..4ffb31d38 100644 --- a/IRC.Core.SCP/Service/CStoreSCPService.cs +++ b/IRC.Core.SCP/Service/CStoreSCPService.cs @@ -394,7 +394,7 @@ namespace IRaCIS.Core.SCP.Service { var pid = dataset.GetSingleValueOrDefault(DicomTag.PatientID, string.Empty); - dataset.AddOrUpdate(DicomTag.PatientID, trialSiteInfo.TrialCode + "_" + pid); + dataset.AddOrUpdate(DicomTag.PatientID, trialSiteInfo.TrialCode + "-" + pid); } diff --git a/IRaCIS.Core.Application/Helper/OSSService.cs b/IRaCIS.Core.Application/Helper/OSSService.cs index 2339f8df6..018b7f26e 100644 --- a/IRaCIS.Core.Application/Helper/OSSService.cs +++ b/IRaCIS.Core.Application/Helper/OSSService.cs @@ -160,7 +160,7 @@ public interface IOSSService public Task DeleteFromPrefix(string prefix, bool isCache = false); - public Task DeleteObjects(List objectKeys); + public Task DeleteObjects(List objectKeys, bool isCache = false); List GetRootFolderNames(); @@ -1591,7 +1591,7 @@ public class OSSService : IOSSService } } - public async Task DeleteObjects(List objectKeys) + public async Task DeleteObjects(List objectKeys, bool isCache = false) { GetObjectStoreTempToken(); @@ -1601,9 +1601,23 @@ public class OSSService : IOSSService var _ossClient = new OssClient(RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? aliConfig.EndPoint : aliConfig.InternalEndpoint, AliyunOSSTempToken.AccessKeyId, AliyunOSSTempToken.AccessKeySecret, AliyunOSSTempToken.SecurityToken); + var bucketName = string.Empty; + + if (isCache) + { + Uri uri = new Uri(aliConfig.ViewEndpoint); + string host = uri.Host; // 获取 "zy-irc-test-dev-cache.oss-cn-shanghai.aliyuncs.com" + string[] parts = host.Split('.'); + bucketName = parts[0]; + } + else + { + bucketName = aliConfig.BucketName; + } + if (objectKeys.Count > 0) { - var result = _ossClient.DeleteObjects(new Aliyun.OSS.DeleteObjectsRequest(aliConfig.BucketName, objectKeys, false)); + var result = _ossClient.DeleteObjects(new Aliyun.OSS.DeleteObjectsRequest(bucketName, objectKeys, false)); } } diff --git a/IRaCIS.Core.Application/TestService.cs b/IRaCIS.Core.Application/TestService.cs index d7fba97a9..7f1a56c7e 100644 --- a/IRaCIS.Core.Application/TestService.cs +++ b/IRaCIS.Core.Application/TestService.cs @@ -95,6 +95,18 @@ namespace IRaCIS.Core.Application.Service return ResponseOutput.Ok(); } + [AllowAnonymous] + + public async Task DeleteCacheDIR() + { + var list= _dicomStudyRepository.Where(t => t.StudyDIRPath!="").Select(t => t.StudyDIRPath).ToList(); + + + await _IOSSService.DeleteObjects(list.Select(t => t.TrimStart('/')).ToList(),true); + + return ResponseOutput.Ok(); + } + [AllowAnonymous] public async Task TestOSS(StorageClass storageClass) {