维护oss 数据大小
continuous-integration/drone/push Build is passing Details

Uat_IRC_Net8
hang 2025-03-20 13:15:50 +08:00
parent 81ecd9ff7f
commit 2ffb24d630
2 changed files with 31 additions and 7 deletions

View File

@ -158,7 +158,7 @@ public interface IOSSService
public Task MoveObject(string sourcePath, string destPath, bool overwrite = true); public Task MoveObject(string sourcePath, string destPath, bool overwrite = true);
public Task<long> GetObjectSizeAsync(string sourcePath); public Task<long> GetObjectSizeAsync(string sourcePath);
} }
@ -1000,9 +1000,15 @@ public class OSSService : IOSSService
} }
} }
private bool isFirstCall = true;
public async Task<long> GetObjectSizeAsync(string sourcePath) public async Task<long> GetObjectSizeAsync(string sourcePath)
{ {
GetObjectStoreTempToken(); if (isFirstCall)
{
GetObjectStoreTempToken();
isFirstCall = false;
}
var objectkey = sourcePath.Trim('/'); var objectkey = sourcePath.Trim('/');

View File

@ -218,22 +218,40 @@ namespace IRaCIS.Core.Application.Service
{ {
var noneDicomList = _noneDicomStudyFileRepository.Where(t => t.FileSize == 0 || t.FileSize == null).Select(t => new { t.Path, t.Id }).ToList(); var noneDicomList = _noneDicomStudyFileRepository.Where(t => t.FileSize == 0 || t.FileSize == null).Select(t => new { t.Path, t.Id }).ToList();
var clinicalDataPDFList = _readingClinicalDataPDFRepository.Where(t => t.Size == 0).Select(t => new { t.Path, t.Id }).ToList();
foreach (var item in noneDicomList) foreach (var item in noneDicomList)
{ {
var fileSize = await _oSSService.GetObjectSizeAsync(item.Path); try
{
var fileSize = await _oSSService.GetObjectSizeAsync(item.Path);
await _noneDicomStudyFileRepository.BatchUpdateNoTrackingAsync(t => t.Id == item.Id, u => new NoneDicomStudyFile() { FileSize = fileSize });
}
catch (Exception)
{
}
await _noneDicomStudyFileRepository.BatchUpdateNoTrackingAsync(t => t.Id == item.Id, u => new NoneDicomStudyFile() { FileSize = fileSize });
} }
var clinicalDataPDFList = _readingClinicalDataPDFRepository.Where(t => t.Size == 0).Select(t => new { t.Path, t.Id }).ToList();
foreach (var item in clinicalDataPDFList) foreach (var item in clinicalDataPDFList)
{ {
var fileSize = await _oSSService.GetObjectSizeAsync(item.Path); try
{
var fileSize = await _oSSService.GetObjectSizeAsync(item.Path);
await _readingClinicalDataPDFRepository.BatchUpdateNoTrackingAsync(t => t.Id == item.Id, u => new ReadingClinicalDataPDF() { Size = (int)fileSize });
}
catch (Exception)
{
}
await _readingClinicalDataPDFRepository.BatchUpdateNoTrackingAsync(t => t.Id == item.Id, u => new ReadingClinicalDataPDF() { Size = (int)fileSize });
} }